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

Side by Side Diff: trunk/src/chrome/browser/ui/ash/launcher/chrome_launcher_controller.h

Issue 24227010: Revert 224514 "Fixed problems with pin/unpin preferences changin..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | trunk/src/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 // ChromeLauncherController manages the launcher items needed for content 79 // ChromeLauncherController manages the launcher items needed for content
80 // windows. Launcher items have a type, an optional app id, and a controller. 80 // windows. Launcher items have a type, an optional app id, and a controller.
81 // This incarnation groups running tabs/windows in application specific lists. 81 // This incarnation groups running tabs/windows in application specific lists.
82 // * Browser app windows have BrowserLauncherItemController, owned by the 82 // * Browser app windows have BrowserLauncherItemController, owned by the
83 // BrowserView instance. 83 // BrowserView instance.
84 // * App shell windows have ShellWindowLauncherItemController, owned by 84 // * App shell windows have ShellWindowLauncherItemController, owned by
85 // ShellWindowLauncherController. 85 // ShellWindowLauncherController.
86 // * Shortcuts have no LauncherItemController. 86 // * Shortcuts have no LauncherItemController.
87 // TODO(simon.hong81): Move LauncherItemDelegate out from 87 // TODO(simon.hong81): Move LauncherItemDelegate out from
88 // ChromeLauncherController and makes separate subclass with it. 88 // ChromeLauncherController and makes separate subclass with it.
89 class ChromeLauncherController : public ash::LauncherDelegate, 89 class ChromeLauncherController
90 public ash::LauncherItemDelegate, 90 : public ash::LauncherDelegate,
91 public ash::LauncherModelObserver, 91 public ash::LauncherItemDelegate,
92 public ash::ShellObserver, 92 public ash::LauncherModelObserver,
93 public ash::DisplayController::Observer, 93 public ash::ShellObserver,
94 public content::NotificationObserver, 94 public ash::DisplayController::Observer,
95 public extensions::AppIconLoader::Delegate, 95 public content::NotificationObserver,
96 public PrefServiceSyncableObserver, 96 public extensions::AppIconLoader::Delegate,
97 public AppSyncUIStateObserver, 97 public PrefServiceSyncableObserver,
98 public ExtensionEnableFlowDelegate, 98 public AppSyncUIStateObserver,
99 public ash::ShelfLayoutManagerObserver { 99 public ExtensionEnableFlowDelegate,
100 public ash::ShelfLayoutManagerObserver {
100 public: 101 public:
101 // Indicates if a launcher item is incognito or not. 102 // Indicates if a launcher item is incognito or not.
102 enum IncognitoState { 103 enum IncognitoState {
103 STATE_INCOGNITO, 104 STATE_INCOGNITO,
104 STATE_NOT_INCOGNITO, 105 STATE_NOT_INCOGNITO,
105 }; 106 };
106 107
107 // Used to update the state of non plaform apps, as web contents change. 108 // Used to update the state of non plaform apps, as web contents change.
108 enum AppState { 109 enum AppState {
109 APP_STATE_ACTIVE, 110 APP_STATE_ACTIVE,
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 Profile* GetProfileForNewWindows(); 413 Profile* GetProfileForNewWindows();
413 414
414 // Invoked when the associated browser or app is closed. 415 // Invoked when the associated browser or app is closed.
415 void LauncherItemClosed(ash::LauncherID id); 416 void LauncherItemClosed(ash::LauncherID id);
416 417
417 // Internal helpers for pinning and unpinning that handle both 418 // Internal helpers for pinning and unpinning that handle both
418 // client-triggered and internal pinning operations. 419 // client-triggered and internal pinning operations.
419 void DoPinAppWithID(const std::string& app_id); 420 void DoPinAppWithID(const std::string& app_id);
420 void DoUnpinAppWithID(const std::string& app_id); 421 void DoUnpinAppWithID(const std::string& app_id);
421 422
422 // Pin a running app with |launcher_id| internally to |index|. It returns
423 // the index where the item was pinned.
424 int PinRunningAppInternal(int index, ash::LauncherID launcher_id);
425
426 // Unpin a locked application. This is an internal call which converts the
427 // model type of the given app index from a shortcut into an unpinned running
428 // app.
429 void UnpinRunningAppInternal(int index);
430
431 // Re-syncs launcher model with prefs::kPinnedLauncherApps. 423 // Re-syncs launcher model with prefs::kPinnedLauncherApps.
432 void UpdateAppLaunchersFromPref(); 424 void UpdateAppLaunchersFromPref();
433 425
434 // Persists the shelf auto-hide behavior to prefs. 426 // Persists the shelf auto-hide behavior to prefs.
435 void SetShelfAutoHideBehaviorPrefs(ash::ShelfAutoHideBehavior behavior, 427 void SetShelfAutoHideBehaviorPrefs(ash::ShelfAutoHideBehavior behavior,
436 aura::RootWindow* root_window); 428 aura::RootWindow* root_window);
437 429
438 // Sets the shelf auto-hide behavior from prefs. 430 // Sets the shelf auto-hide behavior from prefs.
439 void SetShelfAutoHideBehaviorFromPrefs(); 431 void SetShelfAutoHideBehaviorFromPrefs();
440 432
(...skipping 19 matching lines...) Expand all
460 bool HasItemController(ash::LauncherID id) const; 452 bool HasItemController(ash::LauncherID id) const;
461 453
462 // Enumerate all Web contents which match a given shortcut |controller|. 454 // Enumerate all Web contents which match a given shortcut |controller|.
463 std::vector<content::WebContents*> GetV1ApplicationsFromController( 455 std::vector<content::WebContents*> GetV1ApplicationsFromController(
464 LauncherItemController* controller); 456 LauncherItemController* controller);
465 457
466 // Create LauncherItem for Browser Shortcut. 458 // Create LauncherItem for Browser Shortcut.
467 ash::LauncherID CreateBrowserShortcutLauncherItem(); 459 ash::LauncherID CreateBrowserShortcutLauncherItem();
468 460
469 // Check if the given |web_contents| is in incognito mode. 461 // Check if the given |web_contents| is in incognito mode.
470 bool IsIncognito(const content::WebContents* web_contents) const; 462 bool IsIncognito(content::WebContents* web_contents) const;
471 463
472 // Update browser shortcut's index. 464 // Update browser shortcut's index.
473 void PersistChromeItemIndex(int index); 465 void PersistChromeItemIndex(int index);
474 466
475 // Get browser shortcut's index from pref. 467 // Get browser shortcut's index from pref.
476 int GetChromeIconIndexFromPref() const; 468 int GetChromeIconIndexFromPref() const;
477 469
478 // Get the browser shortcut's index in the shelf using the current's systems
479 // configuration of pinned and known (but not running) apps.
480 int GetChromeIconIndexForCreation();
481
482 // Get the list of pinned programs from the preferences.
483 std::vector<std::string> GetListOfPinnedAppsAndBrowser();
484
485 // Close all windowed V1 applications of a certain extension which was already 470 // Close all windowed V1 applications of a certain extension which was already
486 // deleted. 471 // deleted.
487 void CloseWindowedAppsFromRemovedExtension(const std::string& app_id); 472 void CloseWindowedAppsFromRemovedExtension(const std::string& app_id);
488 473
474 // Move a launcher item ignoring the pinned state changes from |index| to
475 // |target_index|.
476 void MoveItemWithoutPinnedStateChangeNotification(int source_index,
477 int target_index);
478
489 // Register LauncherItemDelegate. 479 // Register LauncherItemDelegate.
490 void RegisterLauncherItemDelegate(); 480 void RegisterLauncherItemDelegate();
491 481
492 // Attach to a specific profile. 482 // Attach to a specific profile.
493 void AttachProfile(Profile* proifile); 483 void AttachProfile(Profile* proifile);
494 484
495 // Forget the current profile to allow attaching to a new one. 485 // Forget the current profile to allow attaching to a new one.
496 void ReleaseProfile(); 486 void ReleaseProfile();
497 487
498 static ChromeLauncherController* instance_; 488 static ChromeLauncherController* instance_;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 // A special observer class to detect user switches. 530 // A special observer class to detect user switches.
541 scoped_ptr<ChromeLauncherControllerUserSwitchObserver> user_switch_observer_; 531 scoped_ptr<ChromeLauncherControllerUserSwitchObserver> user_switch_observer_;
542 532
543 // If true, incoming pinned state changes should be ignored. 533 // If true, incoming pinned state changes should be ignored.
544 bool ignore_persist_pinned_state_change_; 534 bool ignore_persist_pinned_state_change_;
545 535
546 DISALLOW_COPY_AND_ASSIGN(ChromeLauncherController); 536 DISALLOW_COPY_AND_ASSIGN(ChromeLauncherController);
547 }; 537 };
548 538
549 #endif // CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_H_ 539 #endif // CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_H_
OLDNEW
« no previous file with comments | « no previous file | trunk/src/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698