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

Side by Side Diff: chrome/browser/ui/views/ash/launcher/launcher_updater.h

Issue 9702072: Second try for (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 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
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 #ifndef CHROME_BROWSER_UI_VIEWS_ASH_LAUNCHER_LAUNCHER_UPDATER_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_ASH_LAUNCHER_LAUNCHER_UPDATER_H_
6 #define CHROME_BROWSER_UI_VIEWS_ASH_LAUNCHER_LAUNCHER_UPDATER_H_ 6 #define CHROME_BROWSER_UI_VIEWS_ASH_LAUNCHER_LAUNCHER_UPDATER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 17 matching lines...) Expand all
28 28
29 namespace aura { 29 namespace aura {
30 class Window; 30 class Window;
31 } 31 }
32 32
33 // LauncherUpdater is responsible for keeping the launcher representation of a 33 // LauncherUpdater is responsible for keeping the launcher representation of a
34 // window up to date as the tab strip changes. 34 // window up to date as the tab strip changes.
35 class LauncherUpdater : public TabStripModelObserver, 35 class LauncherUpdater : public TabStripModelObserver,
36 public LauncherFaviconLoader::Delegate { 36 public LauncherFaviconLoader::Delegate {
37 public: 37 public:
38 // This API is to be used as part of testing only.
39 class TestApi {
40 public:
41 explicit TestApi(LauncherUpdater* launcher_updater)
42 : launcher_updater_(launcher_updater) {}
43 virtual ~TestApi() {}
44
45 // Returns the launcher id for |tab| if it's an app otherwise returns the
46 // id for the browser itself.
47 ash::LauncherID GetLauncherID(TabContentsWrapper* tab) {
48 return launcher_updater_->GetLauncherID(tab);
49 }
50
51 // Returns the launcher id for the browser window.
52 ash::LauncherID item_id() const { return launcher_updater_->item_id_; }
53
54 private:
55 LauncherUpdater* launcher_updater_;
56 };
57
38 enum Type { 58 enum Type {
39 TYPE_APP, 59 TYPE_APP,
40 TYPE_PANEL, 60 TYPE_PANEL,
41 TYPE_TABBED 61 TYPE_TABBED
42 }; 62 };
43 63
44 LauncherUpdater(aura::Window* window, 64 LauncherUpdater(aura::Window* window,
45 TabStripModel* tab_model, 65 TabStripModel* tab_model,
46 ChromeLauncherDelegate* launcher_delegate, 66 ChromeLauncherDelegate* launcher_delegate,
47 Type type, 67 Type type,
(...skipping 13 matching lines...) Expand all
61 81
62 Type type() const { return type_; } 82 Type type() const { return type_; }
63 83
64 TabContentsWrapper* GetTab(ash::LauncherID id); 84 TabContentsWrapper* GetTab(ash::LauncherID id);
65 85
66 LauncherFaviconLoader* favicon_loader() const { 86 LauncherFaviconLoader* favicon_loader() const {
67 return favicon_loader_.get(); 87 return favicon_loader_.get();
68 } 88 }
69 89
70 // TabStripModelObserver overrides: 90 // TabStripModelObserver overrides:
91 void ActivationChanged(TabContentsWrapper* tab, bool active);
92 // Call to indicate that the window the tabcontents are in has changed its
93 // activation state.
94 void BrowserActivationStateChanged();
95
96 // TabStripModel overrides:
71 virtual void ActiveTabChanged(TabContentsWrapper* old_contents, 97 virtual void ActiveTabChanged(TabContentsWrapper* old_contents,
72 TabContentsWrapper* new_contents, 98 TabContentsWrapper* new_contents,
73 int index, 99 int index,
74 bool user_gesture) OVERRIDE; 100 bool user_gesture) OVERRIDE;
75 virtual void TabChangedAt( 101 virtual void TabChangedAt(
76 TabContentsWrapper* tab, 102 TabContentsWrapper* tab,
77 int index, 103 int index,
78 TabStripModelObserver::TabChangeType change_type) OVERRIDE; 104 TabStripModelObserver::TabChangeType change_type) OVERRIDE;
79 virtual void TabInsertedAt(TabContentsWrapper* contents, 105 virtual void TabInsertedAt(TabContentsWrapper* contents,
80 int index, 106 int index,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 void RegisterAppItem(ash::LauncherID id, TabContentsWrapper* tab); 149 void RegisterAppItem(ash::LauncherID id, TabContentsWrapper* tab);
124 150
125 // Creates a tabbed launcher item. 151 // Creates a tabbed launcher item.
126 void CreateTabbedItem(); 152 void CreateTabbedItem();
127 153
128 // Returns true if this LauncherUpdater created the launcher item with the 154 // Returns true if this LauncherUpdater created the launcher item with the
129 // specified id. Returns true if it did. If the id corresponds to an app tab, 155 // specified id. Returns true if it did. If the id corresponds to an app tab,
130 // |tab| is set to the TabContentsWrapper for the app tab. 156 // |tab| is set to the TabContentsWrapper for the app tab.
131 bool ContainsID(ash::LauncherID id, TabContentsWrapper** tab); 157 bool ContainsID(ash::LauncherID id, TabContentsWrapper** tab);
132 158
159 // Returns the launcher id for |tab| if it's an app otherwise returns the
160 // id for the browser itself.
161 ash::LauncherID GetLauncherID(TabContentsWrapper* tab);
162
163 // Retrieves the running status of |tab|.
164 ash::LauncherItemStatus GetStatusForTab(TabContentsWrapper* tab);
165
133 ash::LauncherModel* launcher_model(); 166 ash::LauncherModel* launcher_model();
134 167
135 // Browser window we're in. 168 // Browser window we're in.
136 aura::Window* window_; 169 aura::Window* window_;
137 170
138 TabStripModel* tab_model_; 171 TabStripModel* tab_model_;
139 172
140 ChromeLauncherDelegate* launcher_delegate_; 173 ChromeLauncherDelegate* launcher_delegate_;
141 174
142 // Whether this corresponds to an app or tabbed browser. 175 // Whether this corresponds to an app or tabbed browser.
(...skipping 13 matching lines...) Expand all
156 // Used for any app tabs. 189 // Used for any app tabs.
157 AppTabMap app_map_; 190 AppTabMap app_map_;
158 191
159 // Loads launcher sized favicons for panels. 192 // Loads launcher sized favicons for panels.
160 scoped_ptr<LauncherFaviconLoader> favicon_loader_; 193 scoped_ptr<LauncherFaviconLoader> favicon_loader_;
161 194
162 DISALLOW_COPY_AND_ASSIGN(LauncherUpdater); 195 DISALLOW_COPY_AND_ASSIGN(LauncherUpdater);
163 }; 196 };
164 197
165 #endif // CHROME_BROWSER_UI_VIEWS_ASH_LAUNCHER_LAUNCHER_UPDATER_H_ 198 #endif // CHROME_BROWSER_UI_VIEWS_ASH_LAUNCHER_LAUNCHER_UPDATER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698