| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_H_ | 5 #ifndef CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_H_ |
| 6 #define CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_H_ | 6 #define CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_H_ |
| 7 | 7 |
| 8 #include <list> | 8 #include <list> |
| 9 #include <map> | 9 #include <map> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 // windows. Launcher items have a type, an optional app id, and a controller. | 68 // windows. Launcher items have a type, an optional app id, and a controller. |
| 69 // This incarnation groups running tabs/windows in application specific lists. | 69 // This incarnation groups running tabs/windows in application specific lists. |
| 70 // * Browser app windows have BrowserLauncherItemController, owned by the | 70 // * Browser app windows have BrowserLauncherItemController, owned by the |
| 71 // BrowserView instance. | 71 // BrowserView instance. |
| 72 // * App shell windows have ShellWindowLauncherItemController, owned by | 72 // * App shell windows have ShellWindowLauncherItemController, owned by |
| 73 // ShellWindowLauncherController. | 73 // ShellWindowLauncherController. |
| 74 // * Shortcuts have no LauncherItemController. | 74 // * Shortcuts have no LauncherItemController. |
| 75 // TODO(simon.hong81): Move LauncherItemDelegate out from | 75 // TODO(simon.hong81): Move LauncherItemDelegate out from |
| 76 // ChromeLauncherController and makes separate subclass with it. | 76 // ChromeLauncherController and makes separate subclass with it. |
| 77 class ChromeLauncherController : public ash::LauncherDelegate, | 77 class ChromeLauncherController : public ash::LauncherDelegate, |
| 78 public ash::LauncherItemDelegate, | |
| 79 public ash::LauncherModelObserver, | 78 public ash::LauncherModelObserver, |
| 80 public ash::ShellObserver, | 79 public ash::ShellObserver, |
| 81 public ash::DisplayController::Observer, | 80 public ash::DisplayController::Observer, |
| 82 public content::NotificationObserver, | 81 public content::NotificationObserver, |
| 83 public extensions::AppIconLoader::Delegate, | 82 public extensions::AppIconLoader::Delegate, |
| 84 public PrefServiceSyncableObserver, | 83 public PrefServiceSyncableObserver, |
| 85 public AppSyncUIStateObserver, | 84 public AppSyncUIStateObserver, |
| 86 public ExtensionEnableFlowDelegate, | 85 public ExtensionEnableFlowDelegate, |
| 87 public ash::ShelfLayoutManagerObserver { | 86 public ash::ShelfLayoutManagerObserver { |
| 88 public: | 87 public: |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 virtual ash::LauncherID GetIDByWindow(aura::Window* window) OVERRIDE; | 270 virtual ash::LauncherID GetIDByWindow(aura::Window* window) OVERRIDE; |
| 272 virtual void OnLauncherCreated(ash::Launcher* launcher) OVERRIDE; | 271 virtual void OnLauncherCreated(ash::Launcher* launcher) OVERRIDE; |
| 273 virtual void OnLauncherDestroyed(ash::Launcher* launcher) OVERRIDE; | 272 virtual void OnLauncherDestroyed(ash::Launcher* launcher) OVERRIDE; |
| 274 virtual ash::LauncherID GetLauncherIDForAppID( | 273 virtual ash::LauncherID GetLauncherIDForAppID( |
| 275 const std::string& app_id) OVERRIDE; | 274 const std::string& app_id) OVERRIDE; |
| 276 virtual const std::string& GetAppIDForLauncherID(ash::LauncherID id) OVERRIDE; | 275 virtual const std::string& GetAppIDForLauncherID(ash::LauncherID id) OVERRIDE; |
| 277 virtual void PinAppWithID(const std::string& app_id) OVERRIDE; | 276 virtual void PinAppWithID(const std::string& app_id) OVERRIDE; |
| 278 virtual bool IsAppPinned(const std::string& app_id) OVERRIDE; | 277 virtual bool IsAppPinned(const std::string& app_id) OVERRIDE; |
| 279 virtual void UnpinAppWithID(const std::string& app_id) OVERRIDE; | 278 virtual void UnpinAppWithID(const std::string& app_id) OVERRIDE; |
| 280 | 279 |
| 281 // ash::LauncherItemDelegate overrides: | |
| 282 virtual void ItemSelected(const ash::LauncherItem& item, | |
| 283 const ui::Event& event) OVERRIDE; | |
| 284 virtual string16 GetTitle(const ash::LauncherItem& item) OVERRIDE; | |
| 285 virtual ui::MenuModel* CreateContextMenu( | |
| 286 const ash::LauncherItem& item, aura::RootWindow* root) OVERRIDE; | |
| 287 virtual ash::LauncherMenuModel* CreateApplicationMenu( | |
| 288 const ash::LauncherItem& item, | |
| 289 int event_flags) OVERRIDE; | |
| 290 virtual bool IsDraggable(const ash::LauncherItem& item) OVERRIDE; | |
| 291 virtual bool ShouldShowTooltip(const ash::LauncherItem& item) OVERRIDE; | |
| 292 | |
| 293 // ash::LauncherModelObserver overrides: | 280 // ash::LauncherModelObserver overrides: |
| 294 virtual void LauncherItemAdded(int index) OVERRIDE; | 281 virtual void LauncherItemAdded(int index) OVERRIDE; |
| 295 virtual void LauncherItemRemoved(int index, ash::LauncherID id) OVERRIDE; | 282 virtual void LauncherItemRemoved(int index, ash::LauncherID id) OVERRIDE; |
| 296 virtual void LauncherItemMoved(int start_index, int target_index) OVERRIDE; | 283 virtual void LauncherItemMoved(int start_index, int target_index) OVERRIDE; |
| 297 virtual void LauncherItemChanged(int index, | 284 virtual void LauncherItemChanged(int index, |
| 298 const ash::LauncherItem& old_item) OVERRIDE; | 285 const ash::LauncherItem& old_item) OVERRIDE; |
| 299 virtual void LauncherStatusChanged() OVERRIDE; | 286 virtual void LauncherStatusChanged() OVERRIDE; |
| 300 | 287 |
| 301 // content::NotificationObserver overrides: | 288 // content::NotificationObserver overrides: |
| 302 virtual void Observe(int type, | 289 virtual void Observe(int type, |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 357 gfx::Image GetAppListIcon(content::WebContents* web_contents) const; | 344 gfx::Image GetAppListIcon(content::WebContents* web_contents) const; |
| 358 | 345 |
| 359 // Get the title for the applicatoin list entry for |web_contents|. | 346 // Get the title for the applicatoin list entry for |web_contents|. |
| 360 // If |web_contents| has not loaded, returns "Net Tab". | 347 // If |web_contents| has not loaded, returns "Net Tab". |
| 361 string16 GetAppListTitle(content::WebContents* web_contents) const; | 348 string16 GetAppListTitle(content::WebContents* web_contents) const; |
| 362 | 349 |
| 363 // Returns the LauncherItemController of BrowserShortcut. | 350 // Returns the LauncherItemController of BrowserShortcut. |
| 364 BrowserShortcutLauncherItemController* | 351 BrowserShortcutLauncherItemController* |
| 365 GetBrowserShortcutLauncherItemController(); | 352 GetBrowserShortcutLauncherItemController(); |
| 366 | 353 |
| 354 LauncherItemController* GetLauncherItemController(const ash::LauncherID id); |
| 355 |
| 367 protected: | 356 protected: |
| 368 // Creates a new app shortcut item and controller on the launcher at |index|. | 357 // Creates a new app shortcut item and controller on the launcher at |index|. |
| 369 // Use kInsertItemAtEnd to add a shortcut as the last item. | 358 // Use kInsertItemAtEnd to add a shortcut as the last item. |
| 370 ash::LauncherID CreateAppShortcutLauncherItem(const std::string& app_id, | 359 ash::LauncherID CreateAppShortcutLauncherItem(const std::string& app_id, |
| 371 int index); | 360 int index); |
| 372 | 361 |
| 373 // Sets the AppTabHelper/AppIconLoader, taking ownership of the helper class. | 362 // Sets the AppTabHelper/AppIconLoader, taking ownership of the helper class. |
| 374 // These are intended for testing. | 363 // These are intended for testing. |
| 375 void SetAppTabHelperForTest(AppTabHelper* helper); | 364 void SetAppTabHelperForTest(AppTabHelper* helper); |
| 376 void SetAppIconLoaderForTest(extensions::AppIconLoader* loader); | 365 void SetAppIconLoaderForTest(extensions::AppIconLoader* loader); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 454 | 443 |
| 455 // Close all windowed V1 applications of a certain extension which was already | 444 // Close all windowed V1 applications of a certain extension which was already |
| 456 // deleted. | 445 // deleted. |
| 457 void CloseWindowedAppsFromRemovedExtension(const std::string& app_id); | 446 void CloseWindowedAppsFromRemovedExtension(const std::string& app_id); |
| 458 | 447 |
| 459 // Move a launcher item ignoring the pinned state changes from |index| to | 448 // Move a launcher item ignoring the pinned state changes from |index| to |
| 460 // |target_index|. | 449 // |target_index|. |
| 461 void MoveItemWithoutPinnedStateChangeNotification(int source_index, | 450 void MoveItemWithoutPinnedStateChangeNotification(int source_index, |
| 462 int target_index); | 451 int target_index); |
| 463 | 452 |
| 464 // Register LauncherItemDelegate. | 453 // Register LauncherItemDelegate |item_delegate| for |id|. |
| 465 void RegisterLauncherItemDelegate(); | 454 void RegisterLauncherItemDelegate(ash::LauncherID id, |
| 455 ash::LauncherItemDelegate* item_delegate); |
| 456 |
| 457 // Update LauncherItemDelegate for |id| with |item_delegate|. |
| 458 void UpdateLauncherItemDelegate(ash::LauncherID id, |
| 459 ash::LauncherItemDelegate* item_delegate); |
| 466 | 460 |
| 467 static ChromeLauncherController* instance_; | 461 static ChromeLauncherController* instance_; |
| 468 | 462 |
| 469 ash::LauncherModel* model_; | 463 ash::LauncherModel* model_; |
| 470 | 464 |
| 471 // Profile used for prefs and loading extensions. This is NOT necessarily the | 465 // Profile used for prefs and loading extensions. This is NOT necessarily the |
| 472 // profile new windows are created with. | 466 // profile new windows are created with. |
| 473 Profile* profile_; | 467 Profile* profile_; |
| 474 | 468 |
| 475 IDToItemControllerMap id_to_item_controller_map_; | 469 IDToItemControllerMap id_to_item_controller_map_; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 493 | 487 |
| 494 PrefChangeRegistrar pref_change_registrar_; | 488 PrefChangeRegistrar pref_change_registrar_; |
| 495 | 489 |
| 496 AppSyncUIState* app_sync_ui_state_; | 490 AppSyncUIState* app_sync_ui_state_; |
| 497 | 491 |
| 498 scoped_ptr<ExtensionEnableFlow> extension_enable_flow_; | 492 scoped_ptr<ExtensionEnableFlow> extension_enable_flow_; |
| 499 | 493 |
| 500 // Launchers that are currently being observed. | 494 // Launchers that are currently being observed. |
| 501 std::set<ash::Launcher*> launchers_; | 495 std::set<ash::Launcher*> launchers_; |
| 502 | 496 |
| 503 // The owned browser shortcut item. | |
| 504 scoped_ptr<BrowserShortcutLauncherItemController> browser_item_controller_; | |
| 505 | |
| 506 // The owned browser status monitor. | 497 // The owned browser status monitor. |
| 507 scoped_ptr<BrowserStatusMonitor> browser_status_monitor_; | 498 scoped_ptr<BrowserStatusMonitor> browser_status_monitor_; |
| 508 | 499 |
| 509 // If true, incoming pinned state changes should be ignored. | 500 // If true, incoming pinned state changes should be ignored. |
| 510 bool ignore_persist_pinned_state_change_; | 501 bool ignore_persist_pinned_state_change_; |
| 511 | 502 |
| 512 DISALLOW_COPY_AND_ASSIGN(ChromeLauncherController); | 503 DISALLOW_COPY_AND_ASSIGN(ChromeLauncherController); |
| 513 }; | 504 }; |
| 514 | 505 |
| 515 #endif // CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_H_ | 506 #endif // CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_H_ |
| OLD | NEW |