Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: ash/shell.cc

Issue 25823002: Refactor LauncherItemController and LauncherItemDelegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "ash/shell.h" 5 #include "ash/shell.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "ash/accelerators/accelerator_controller.h" 10 #include "ash/accelerators/accelerator_controller.h"
(...skipping 20 matching lines...) Expand all
31 #include "ash/launcher/launcher_item_delegate.h" 31 #include "ash/launcher/launcher_item_delegate.h"
32 #include "ash/launcher/launcher_item_delegate_manager.h" 32 #include "ash/launcher/launcher_item_delegate_manager.h"
33 #include "ash/launcher/launcher_model.h" 33 #include "ash/launcher/launcher_model.h"
34 #include "ash/magnifier/magnification_controller.h" 34 #include "ash/magnifier/magnification_controller.h"
35 #include "ash/magnifier/partial_magnification_controller.h" 35 #include "ash/magnifier/partial_magnification_controller.h"
36 #include "ash/root_window_controller.h" 36 #include "ash/root_window_controller.h"
37 #include "ash/screen_ash.h" 37 #include "ash/screen_ash.h"
38 #include "ash/session_state_delegate.h" 38 #include "ash/session_state_delegate.h"
39 #include "ash/shelf/app_list_shelf_item_delegate.h" 39 #include "ash/shelf/app_list_shelf_item_delegate.h"
40 #include "ash/shelf/shelf_layout_manager.h" 40 #include "ash/shelf/shelf_layout_manager.h"
41 #include "ash/shelf/shelf_util.h"
41 #include "ash/shelf/shelf_widget.h" 42 #include "ash/shelf/shelf_widget.h"
42 #include "ash/shell_delegate.h" 43 #include "ash/shell_delegate.h"
43 #include "ash/shell_factory.h" 44 #include "ash/shell_factory.h"
44 #include "ash/shell_window_ids.h" 45 #include "ash/shell_window_ids.h"
45 #include "ash/system/locale/locale_notification_controller.h" 46 #include "ash/system/locale/locale_notification_controller.h"
46 #include "ash/system/status_area_widget.h" 47 #include "ash/system/status_area_widget.h"
47 #include "ash/system/tray/system_tray_delegate.h" 48 #include "ash/system/tray/system_tray_delegate.h"
48 #include "ash/system/tray/system_tray_notifier.h" 49 #include "ash/system/tray/system_tray_notifier.h"
49 #include "ash/wm/app_list_controller.h" 50 #include "ash/wm/app_list_controller.h"
50 #include "ash/wm/ash_focus_rules.h" 51 #include "ash/wm/ash_focus_rules.h"
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 ShelfWidget* shelf = GetPrimaryRootWindowController()->shelf(); 478 ShelfWidget* shelf = GetPrimaryRootWindowController()->shelf();
478 return shelf && shelf->status_area_widget(); 479 return shelf && shelf->status_area_widget();
479 } 480 }
480 481
481 SystemTray* Shell::GetPrimarySystemTray() { 482 SystemTray* Shell::GetPrimarySystemTray() {
482 return GetPrimaryRootWindowController()->GetSystemTray(); 483 return GetPrimaryRootWindowController()->GetSystemTray();
483 } 484 }
484 485
485 LauncherDelegate* Shell::GetLauncherDelegate() { 486 LauncherDelegate* Shell::GetLauncherDelegate() {
486 if (!launcher_delegate_) { 487 if (!launcher_delegate_) {
488 launcher_model_.reset(new LauncherModel);
487 // Creates LauncherItemDelegateManager before LauncherDelegate. 489 // Creates LauncherItemDelegateManager before LauncherDelegate.
488 launcher_item_delegate_manager_.reset(new LauncherItemDelegateManager); 490 launcher_item_delegate_manager_.reset(
489 launcher_model_.reset(new LauncherModel); 491 new LauncherItemDelegateManager(launcher_model_.get()));
492
490 launcher_delegate_.reset( 493 launcher_delegate_.reset(
491 delegate_->CreateLauncherDelegate(launcher_model_.get())); 494 delegate_->CreateLauncherDelegate(launcher_model_.get()));
492 app_list_shelf_item_delegate_.reset( 495 scoped_ptr<LauncherItemDelegate> controller(
493 new internal::AppListShelfItemDelegate); 496 new internal::AppListShelfItemDelegate);
497
498 ash::LauncherID app_list_id = 0;
499 // TODO(simon.hong81): Make function for this in shelf_util.h
500 // Finding the launcher model's location of the app list and setting its
501 // LauncherItemDelegate.
502 for (size_t i = 0; i < launcher_model_->items().size(); ++i) {
503 if (launcher_model_->items()[i].type == ash::TYPE_APP_LIST) {
504 app_list_id = launcher_model_->items()[i].id;
505 break;
506 }
507 }
508 DCHECK(app_list_id);
509 launcher_item_delegate_manager_->SetLauncherItemDelegate(
510 app_list_id,
511 controller.Pass());
494 } 512 }
495 return launcher_delegate_.get(); 513 return launcher_delegate_.get();
496 } 514 }
497 515
498 void Shell::SetTouchHudProjectionEnabled(bool enabled) { 516 void Shell::SetTouchHudProjectionEnabled(bool enabled) {
499 if (is_touch_hud_projection_enabled_ == enabled) 517 if (is_touch_hud_projection_enabled_ == enabled)
500 return; 518 return;
501 519
502 is_touch_hud_projection_enabled_ = enabled; 520 is_touch_hud_projection_enabled_ = enabled;
503 FOR_EACH_OBSERVER(ShellObserver, observers_, 521 FOR_EACH_OBSERVER(ShellObserver, observers_,
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 partial_magnification_controller_.reset(); 655 partial_magnification_controller_.reset();
638 resize_shadow_controller_.reset(); 656 resize_shadow_controller_.reset();
639 shadow_controller_.reset(); 657 shadow_controller_.reset();
640 tooltip_controller_.reset(); 658 tooltip_controller_.reset();
641 event_client_.reset(); 659 event_client_.reset();
642 window_cycle_controller_.reset(); 660 window_cycle_controller_.reset();
643 nested_dispatcher_controller_.reset(); 661 nested_dispatcher_controller_.reset();
644 user_action_client_.reset(); 662 user_action_client_.reset();
645 visibility_controller_.reset(); 663 visibility_controller_.reset();
646 launcher_delegate_.reset(); 664 launcher_delegate_.reset();
665 // |launcher_item_delegate_manager_| observes |launcher_model_|. It must be
666 // destroyed before |launcher_model_| is destroyed.
667 launcher_item_delegate_manager_.reset();
647 launcher_model_.reset(); 668 launcher_model_.reset();
648 video_detector_.reset(); 669 video_detector_.reset();
649 670
650 power_button_controller_.reset(); 671 power_button_controller_.reset();
651 lock_state_controller_.reset(); 672 lock_state_controller_.reset();
652 mru_window_tracker_.reset(); 673 mru_window_tracker_.reset();
653 674
654 resolution_notification_controller_.reset(); 675 resolution_notification_controller_.reset();
655 desktop_background_controller_.reset(); 676 desktop_background_controller_.reset();
656 677
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
980 //////////////////////////////////////////////////////////////////////////////// 1001 ////////////////////////////////////////////////////////////////////////////////
981 // Shell, aura::client::ActivationChangeObserver implementation: 1002 // Shell, aura::client::ActivationChangeObserver implementation:
982 1003
983 void Shell::OnWindowActivated(aura::Window* gained_active, 1004 void Shell::OnWindowActivated(aura::Window* gained_active,
984 aura::Window* lost_active) { 1005 aura::Window* lost_active) {
985 if (gained_active) 1006 if (gained_active)
986 target_root_window_ = gained_active->GetRootWindow(); 1007 target_root_window_ = gained_active->GetRootWindow();
987 } 1008 }
988 1009
989 } // namespace ash 1010 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698