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 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 : delegate_(delegate), | 205 : delegate_(delegate), |
206 app_list_main_view_(nullptr), | 206 app_list_main_view_(nullptr), |
207 speech_view_(nullptr), | 207 speech_view_(nullptr), |
208 search_box_focus_host_(nullptr), | 208 search_box_focus_host_(nullptr), |
209 search_box_widget_(nullptr), | 209 search_box_widget_(nullptr), |
210 search_box_view_(nullptr), | 210 search_box_view_(nullptr), |
211 overlay_view_(nullptr), | 211 overlay_view_(nullptr), |
212 animation_observer_(new HideViewAnimationObserver()) { | 212 animation_observer_(new HideViewAnimationObserver()) { |
213 CHECK(delegate); | 213 CHECK(delegate); |
214 | 214 |
215 delegate_->AddObserver(this); | |
216 delegate_->GetSpeechUI()->AddObserver(this); | 215 delegate_->GetSpeechUI()->AddObserver(this); |
217 } | 216 } |
218 | 217 |
219 AppListView::~AppListView() { | 218 AppListView::~AppListView() { |
220 delegate_->GetSpeechUI()->RemoveObserver(this); | 219 delegate_->GetSpeechUI()->RemoveObserver(this); |
221 delegate_->RemoveObserver(this); | |
222 animation_observer_.reset(); | 220 animation_observer_.reset(); |
223 // Remove child views first to ensure no remaining dependencies on delegate_. | 221 // Remove child views first to ensure no remaining dependencies on delegate_. |
224 RemoveAllChildViews(true); | 222 RemoveAllChildViews(true); |
225 } | 223 } |
226 | 224 |
227 void AppListView::InitAsBubbleAttachedToAnchor( | 225 void AppListView::InitAsBubbleAttachedToAnchor( |
228 gfx::NativeView parent, | 226 gfx::NativeView parent, |
229 int initial_apps_page, | 227 int initial_apps_page, |
230 views::View* anchor, | 228 views::View* anchor, |
231 const gfx::Vector2d& anchor_offset, | 229 const gfx::Vector2d& anchor_offset, |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 .Contains(location); | 375 .Contains(location); |
378 | 376 |
379 return views::BubbleDialogDelegateView:: | 377 return views::BubbleDialogDelegateView:: |
380 ShouldDescendIntoChildForEventHandling(child, location); | 378 ShouldDescendIntoChildForEventHandling(child, location); |
381 } | 379 } |
382 | 380 |
383 void AppListView::Prerender() { | 381 void AppListView::Prerender() { |
384 app_list_main_view_->Prerender(); | 382 app_list_main_view_->Prerender(); |
385 } | 383 } |
386 | 384 |
387 void AppListView::OnProfilesChanged() { | |
388 app_list_main_view_->search_box_view()->InvalidateMenu(); | |
389 } | |
390 | |
391 void AppListView::OnShutdown() { | |
392 // Nothing to do on views - the widget will soon be closed, which will tear | |
393 // everything down. | |
394 } | |
395 | |
396 void AppListView::SetProfileByPath(const base::FilePath& profile_path) { | 385 void AppListView::SetProfileByPath(const base::FilePath& profile_path) { |
397 delegate_->SetProfileByPath(profile_path); | 386 delegate_->SetProfileByPath(profile_path); |
398 app_list_main_view_->ModelChanged(); | 387 app_list_main_view_->ModelChanged(); |
399 } | 388 } |
400 | 389 |
401 void AppListView::AddObserver(AppListViewObserver* observer) { | 390 void AppListView::AddObserver(AppListViewObserver* observer) { |
402 observers_.AddObserver(observer); | 391 observers_.AddObserver(observer); |
403 } | 392 } |
404 | 393 |
405 void AppListView::RemoveObserver(AppListViewObserver* observer) { | 394 void AppListView::RemoveObserver(AppListViewObserver* observer) { |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 | 451 |
463 // Speech recognition is available only when the start page exists. | 452 // Speech recognition is available only when the start page exists. |
464 if (delegate_ && delegate_->IsSpeechRecognitionEnabled()) { | 453 if (delegate_ && delegate_->IsSpeechRecognitionEnabled()) { |
465 speech_view_ = new SpeechView(delegate_); | 454 speech_view_ = new SpeechView(delegate_); |
466 speech_view_->SetVisible(false); | 455 speech_view_->SetVisible(false); |
467 speech_view_->SetPaintToLayer(true); | 456 speech_view_->SetPaintToLayer(true); |
468 speech_view_->layer()->SetFillsBoundsOpaquely(false); | 457 speech_view_->layer()->SetFillsBoundsOpaquely(false); |
469 speech_view_->layer()->SetOpacity(0.0f); | 458 speech_view_->layer()->SetOpacity(0.0f); |
470 AddChildView(speech_view_); | 459 AddChildView(speech_view_); |
471 } | 460 } |
472 | |
473 OnProfilesChanged(); | |
474 } | 461 } |
475 | 462 |
476 void AppListView::InitChildWidgets() { | 463 void AppListView::InitChildWidgets() { |
477 DCHECK(search_box_view_); | 464 DCHECK(search_box_view_); |
478 | 465 |
479 // Create the search box widget. | 466 // Create the search box widget. |
480 views::Widget::InitParams search_box_widget_params( | 467 views::Widget::InitParams search_box_widget_params( |
481 views::Widget::InitParams::TYPE_CONTROL); | 468 views::Widget::InitParams::TYPE_CONTROL); |
482 search_box_widget_params.parent = GetWidget()->GetNativeView(); | 469 search_box_widget_params.parent = GetWidget()->GetNativeView(); |
483 search_box_widget_params.opacity = | 470 search_box_widget_params.opacity = |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
779 app_list_main_view_->SetVisible(true); | 766 app_list_main_view_->SetVisible(true); |
780 // Refocus the search box. However, if the app list widget does not have | 767 // Refocus the search box. However, if the app list widget does not have |
781 // focus, it means another window has already taken focus, and we *must not* | 768 // focus, it means another window has already taken focus, and we *must not* |
782 // focus the search box (or we would steal focus back into the app list). | 769 // focus the search box (or we would steal focus back into the app list). |
783 if (GetWidget()->IsActive()) | 770 if (GetWidget()->IsActive()) |
784 search_box_view_->search_box()->RequestFocus(); | 771 search_box_view_->search_box()->RequestFocus(); |
785 } | 772 } |
786 } | 773 } |
787 | 774 |
788 } // namespace app_list | 775 } // namespace app_list |
OLD | NEW |