OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/app_list/views/app_list_view.h" | 5 #include "ui/app_list/views/app_list_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 #include "ui/app_list/views/contents_view.h" | 23 #include "ui/app_list/views/contents_view.h" |
24 #include "ui/app_list/views/custom_launcher_page_view.h" | 24 #include "ui/app_list/views/custom_launcher_page_view.h" |
25 #include "ui/app_list/views/search_box_view.h" | 25 #include "ui/app_list/views/search_box_view.h" |
26 #include "ui/app_list/views/speech_view.h" | 26 #include "ui/app_list/views/speech_view.h" |
27 #include "ui/app_list/views/start_page_view.h" | 27 #include "ui/app_list/views/start_page_view.h" |
28 #include "ui/aura/window.h" | 28 #include "ui/aura/window.h" |
29 #include "ui/aura/window_tree_host.h" | 29 #include "ui/aura/window_tree_host.h" |
30 #include "ui/base/ui_base_switches.h" | 30 #include "ui/base/ui_base_switches.h" |
31 #include "ui/compositor/layer.h" | 31 #include "ui/compositor/layer.h" |
32 #include "ui/compositor/layer_animation_observer.h" | 32 #include "ui/compositor/layer_animation_observer.h" |
| 33 #include "ui/compositor/layer_type.h" |
33 #include "ui/compositor/scoped_layer_animation_settings.h" | 34 #include "ui/compositor/scoped_layer_animation_settings.h" |
34 #include "ui/gfx/canvas.h" | 35 #include "ui/gfx/canvas.h" |
35 #include "ui/gfx/geometry/insets.h" | 36 #include "ui/gfx/geometry/insets.h" |
36 #include "ui/gfx/image/image_skia.h" | 37 #include "ui/gfx/image/image_skia.h" |
37 #include "ui/gfx/path.h" | 38 #include "ui/gfx/path.h" |
38 #include "ui/gfx/skia_util.h" | 39 #include "ui/gfx/skia_util.h" |
39 #include "ui/resources/grit/ui_resources.h" | 40 #include "ui/resources/grit/ui_resources.h" |
40 #include "ui/views/bubble/bubble_frame_view.h" | 41 #include "ui/views/bubble/bubble_frame_view.h" |
41 #include "ui/views/bubble/bubble_window_targeter.h" | 42 #include "ui/views/bubble/bubble_window_targeter.h" |
42 #include "ui/views/controls/image_view.h" | 43 #include "ui/views/controls/image_view.h" |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 | 80 |
80 DISALLOW_COPY_AND_ASSIGN(SearchBoxFocusHost); | 81 DISALLOW_COPY_AND_ASSIGN(SearchBoxFocusHost); |
81 }; | 82 }; |
82 | 83 |
83 // The view for the App List overlay, which appears as a white rounded | 84 // The view for the App List overlay, which appears as a white rounded |
84 // rectangle with the given radius. | 85 // rectangle with the given radius. |
85 class AppListOverlayView : public views::View { | 86 class AppListOverlayView : public views::View { |
86 public: | 87 public: |
87 explicit AppListOverlayView(int corner_radius) | 88 explicit AppListOverlayView(int corner_radius) |
88 : corner_radius_(corner_radius) { | 89 : corner_radius_(corner_radius) { |
89 SetPaintToLayer(true); | 90 SetPaintToLayer(ui::LAYER_TEXTURED); |
90 SetVisible(false); | 91 SetVisible(false); |
91 layer()->SetOpacity(0.0f); | 92 layer()->SetOpacity(0.0f); |
92 } | 93 } |
93 | 94 |
94 ~AppListOverlayView() override {} | 95 ~AppListOverlayView() override {} |
95 | 96 |
96 // Overridden from views::View: | 97 // Overridden from views::View: |
97 void OnPaint(gfx::Canvas* canvas) override { | 98 void OnPaint(gfx::Canvas* canvas) override { |
98 SkPaint paint; | 99 SkPaint paint; |
99 paint.setStyle(SkPaint::kFill_Style); | 100 paint.setStyle(SkPaint::kFill_Style); |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 | 362 |
362 void AppListView::InitContents(gfx::NativeView parent, int initial_apps_page) { | 363 void AppListView::InitContents(gfx::NativeView parent, int initial_apps_page) { |
363 // TODO(vadimt): Remove ScopedTracker below once crbug.com/440224 and | 364 // TODO(vadimt): Remove ScopedTracker below once crbug.com/440224 and |
364 // crbug.com/441028 are fixed. | 365 // crbug.com/441028 are fixed. |
365 tracked_objects::ScopedTracker tracking_profile( | 366 tracked_objects::ScopedTracker tracking_profile( |
366 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 367 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
367 "440224, 441028 AppListView::InitContents")); | 368 "440224, 441028 AppListView::InitContents")); |
368 | 369 |
369 app_list_main_view_ = new AppListMainView(delegate_); | 370 app_list_main_view_ = new AppListMainView(delegate_); |
370 AddChildView(app_list_main_view_); | 371 AddChildView(app_list_main_view_); |
371 app_list_main_view_->SetPaintToLayer(true); | 372 app_list_main_view_->SetPaintToLayer(ui::LAYER_TEXTURED); |
372 app_list_main_view_->layer()->SetFillsBoundsOpaquely(false); | 373 app_list_main_view_->layer()->SetFillsBoundsOpaquely(false); |
373 app_list_main_view_->layer()->SetMasksToBounds(true); | 374 app_list_main_view_->layer()->SetMasksToBounds(true); |
374 | 375 |
375 // This will be added to the |search_box_widget_| after the app list widget is | 376 // This will be added to the |search_box_widget_| after the app list widget is |
376 // initialized. | 377 // initialized. |
377 search_box_view_ = new SearchBoxView(app_list_main_view_, delegate_); | 378 search_box_view_ = new SearchBoxView(app_list_main_view_, delegate_); |
378 search_box_view_->SetPaintToLayer(true); | 379 search_box_view_->SetPaintToLayer(ui::LAYER_TEXTURED); |
379 search_box_view_->layer()->SetFillsBoundsOpaquely(false); | 380 search_box_view_->layer()->SetFillsBoundsOpaquely(false); |
380 search_box_view_->layer()->SetMasksToBounds(true); | 381 search_box_view_->layer()->SetMasksToBounds(true); |
381 | 382 |
382 // TODO(vadimt): Remove ScopedTracker below once crbug.com/440224 and | 383 // TODO(vadimt): Remove ScopedTracker below once crbug.com/440224 and |
383 // crbug.com/441028 are fixed. | 384 // crbug.com/441028 are fixed. |
384 tracked_objects::ScopedTracker tracking_profile1( | 385 tracked_objects::ScopedTracker tracking_profile1( |
385 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 386 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
386 "440224, 441028 AppListView::InitContents1")); | 387 "440224, 441028 AppListView::InitContents1")); |
387 | 388 |
388 app_list_main_view_->Init(parent, initial_apps_page, search_box_view_); | 389 app_list_main_view_->Init(parent, initial_apps_page, search_box_view_); |
389 | 390 |
390 // TODO(vadimt): Remove ScopedTracker below once crbug.com/440224 and | 391 // TODO(vadimt): Remove ScopedTracker below once crbug.com/440224 and |
391 // crbug.com/441028 are fixed. | 392 // crbug.com/441028 are fixed. |
392 tracked_objects::ScopedTracker tracking_profile2( | 393 tracked_objects::ScopedTracker tracking_profile2( |
393 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 394 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
394 "440224, 441028 AppListView::InitContents2")); | 395 "440224, 441028 AppListView::InitContents2")); |
395 | 396 |
396 // Speech recognition is available only when the start page exists. | 397 // Speech recognition is available only when the start page exists. |
397 if (delegate_ && delegate_->IsSpeechRecognitionEnabled()) { | 398 if (delegate_ && delegate_->IsSpeechRecognitionEnabled()) { |
398 speech_view_ = new SpeechView(delegate_); | 399 speech_view_ = new SpeechView(delegate_); |
399 speech_view_->SetVisible(false); | 400 speech_view_->SetVisible(false); |
400 speech_view_->SetPaintToLayer(true); | 401 speech_view_->SetPaintToLayer(ui::LAYER_TEXTURED); |
401 speech_view_->layer()->SetFillsBoundsOpaquely(false); | 402 speech_view_->layer()->SetFillsBoundsOpaquely(false); |
402 speech_view_->layer()->SetOpacity(0.0f); | 403 speech_view_->layer()->SetOpacity(0.0f); |
403 AddChildView(speech_view_); | 404 AddChildView(speech_view_); |
404 } | 405 } |
405 } | 406 } |
406 | 407 |
407 void AppListView::InitChildWidgets() { | 408 void AppListView::InitChildWidgets() { |
408 DCHECK(search_box_view_); | 409 DCHECK(search_box_view_); |
409 | 410 |
410 // Create the search box widget. | 411 // Create the search box widget. |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
595 app_list_main_view_->SetVisible(true); | 596 app_list_main_view_->SetVisible(true); |
596 // Refocus the search box. However, if the app list widget does not have | 597 // Refocus the search box. However, if the app list widget does not have |
597 // focus, it means another window has already taken focus, and we *must not* | 598 // focus, it means another window has already taken focus, and we *must not* |
598 // focus the search box (or we would steal focus back into the app list). | 599 // focus the search box (or we would steal focus back into the app list). |
599 if (GetWidget()->IsActive()) | 600 if (GetWidget()->IsActive()) |
600 search_box_view_->search_box()->RequestFocus(); | 601 search_box_view_->search_box()->RequestFocus(); |
601 } | 602 } |
602 } | 603 } |
603 | 604 |
604 } // namespace app_list | 605 } // namespace app_list |
OLD | NEW |