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

Side by Side Diff: chrome/browser/views/browser_actions_container.h

Issue 553084: re-try r37061 with fix for browser tests... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 11 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 | chrome/browser/views/browser_actions_container.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 (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_VIEWS_BROWSER_ACTIONS_CONTAINER_H_ 5 #ifndef CHROME_BROWSER_VIEWS_BROWSER_ACTIONS_CONTAINER_H_
6 #define CHROME_BROWSER_VIEWS_BROWSER_ACTIONS_CONTAINER_H_ 6 #define CHROME_BROWSER_VIEWS_BROWSER_ACTIONS_CONTAINER_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/task.h" 10 #include "base/task.h"
11 #include "chrome/browser/extensions/extension_toolbar_model.h"
11 #include "chrome/browser/extensions/image_loading_tracker.h" 12 #include "chrome/browser/extensions/image_loading_tracker.h"
12 #include "chrome/browser/views/browser_bubble.h" 13 #include "chrome/browser/views/browser_bubble.h"
13 #include "chrome/browser/views/extensions/extension_action_context_menu.h" 14 #include "chrome/browser/views/extensions/extension_action_context_menu.h"
14 #include "chrome/common/notification_observer.h" 15 #include "chrome/common/notification_observer.h"
15 #include "chrome/common/notification_registrar.h" 16 #include "chrome/common/notification_registrar.h"
16 #include "views/controls/button/menu_button.h" 17 #include "views/controls/button/menu_button.h"
17 #include "views/controls/menu/view_menu_delegate.h" 18 #include "views/controls/menu/view_menu_delegate.h"
18 #include "views/controls/resize_gripper.h" 19 #include "views/controls/resize_gripper.h"
19 #include "views/view.h" 20 #include "views/view.h"
20 21
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 // animation ends and we don't want the chevron to flash into view while we are 211 // animation ends and we don't want the chevron to flash into view while we are
211 // growing the container. 212 // growing the container.
212 // 213 //
213 //////////////////////////////////////////////////////////////////////////////// 214 ////////////////////////////////////////////////////////////////////////////////
214 class BrowserActionsContainer 215 class BrowserActionsContainer
215 : public views::View, 216 : public views::View,
216 public NotificationObserver, 217 public NotificationObserver,
217 public BrowserBubble::Delegate, 218 public BrowserBubble::Delegate,
218 public views::ViewMenuDelegate, 219 public views::ViewMenuDelegate,
219 public views::ResizeGripper::ResizeGripperDelegate, 220 public views::ResizeGripper::ResizeGripperDelegate,
220 public AnimationDelegate { 221 public AnimationDelegate,
222 public ExtensionToolbarModel::Observer {
221 public: 223 public:
222 BrowserActionsContainer(Profile* profile, ToolbarView* toolbar); 224 BrowserActionsContainer(Profile* profile, ToolbarView* toolbar);
223 virtual ~BrowserActionsContainer(); 225 virtual ~BrowserActionsContainer();
224 226
225 static void RegisterUserPrefs(PrefService* prefs); 227 static void RegisterUserPrefs(PrefService* prefs);
226 228
227 // Get the number of browser actions being displayed. 229 // Get the number of browser actions being displayed.
228 int num_browser_actions() const { return browser_action_views_.size(); } 230 int num_browser_actions() const { return browser_action_views_.size(); }
229 231
230 // Whether we are performing resize animation on the container. 232 // Whether we are performing resize animation on the container.
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 void HidePopup(); 292 void HidePopup();
291 293
292 // Simulate a click on a browser action button. This should only be 294 // Simulate a click on a browser action button. This should only be
293 // used by unit tests. 295 // used by unit tests.
294 void TestExecuteBrowserAction(int index); 296 void TestExecuteBrowserAction(int index);
295 297
296 // Retrieve the current popup. This should only be used by unit tests. 298 // Retrieve the current popup. This should only be used by unit tests.
297 ExtensionPopup* TestGetPopup() { return popup_; } 299 ExtensionPopup* TestGetPopup() { return popup_; }
298 300
299 private: 301 private:
300 // Adds a browser action view for the extension if it needs one. DCHECK if 302 // ExtensionToolbarModel::Observer implementation.
301 // it has already been added. 303 virtual void BrowserActionAdded(Extension* extension, int index);
302 void AddBrowserAction(Extension* extension); 304 virtual void BrowserActionRemoved(Extension* extension);
303
304 // Removes the browser action view for an extension if it has one. DCHECK if
305 // no such view.
306 void RemoveBrowserAction(Extension* extension);
307 305
308 // Closes the overflow menu if open. 306 // Closes the overflow menu if open.
309 void CloseOverflowMenu(); 307 void CloseOverflowMenu();
310 308
311 // Takes a width in pixels, calculates how many icons fit within that space 309 // Takes a width in pixels, calculates how many icons fit within that space
312 // (up to the maximum number of icons in our vector) and shaves off the 310 // (up to the maximum number of icons in our vector) and shaves off the
313 // excess pixels. 311 // excess pixels.
314 int ClampToNearestIconCount(int pixels) const; 312 int ClampToNearestIconCount(int pixels) const;
315 313
316 // Calculates the width of the container area NOT used to show the icons (the 314 // Calculates the width of the container area NOT used to show the icons (the
(...skipping 22 matching lines...) Expand all
339 // The toolbar that owns us. 337 // The toolbar that owns us.
340 ToolbarView* toolbar_; 338 ToolbarView* toolbar_;
341 339
342 // The current popup and the button it came from. NULL if no popup. 340 // The current popup and the button it came from. NULL if no popup.
343 ExtensionPopup* popup_; 341 ExtensionPopup* popup_;
344 342
345 // The button that triggered the current popup (just a reference to a button 343 // The button that triggered the current popup (just a reference to a button
346 // from browser_action_views_). 344 // from browser_action_views_).
347 BrowserActionButton* popup_button_; 345 BrowserActionButton* popup_button_;
348 346
347 // The model that tracks the order of the toolbar icons.
348 ExtensionToolbarModel* model_;
349
349 // The current size of the container. 350 // The current size of the container.
350 gfx::Size container_size_; 351 gfx::Size container_size_;
351 352
352 // The resize gripper for the container. 353 // The resize gripper for the container.
353 views::ResizeGripper* resize_gripper_; 354 views::ResizeGripper* resize_gripper_;
354 355
355 // The chevron for accessing the overflow items. 356 // The chevron for accessing the overflow items.
356 views::MenuButton* chevron_; 357 views::MenuButton* chevron_;
357 358
358 // The menu to show for the overflow button (chevron). 359 // The menu to show for the overflow button (chevron).
(...skipping 13 matching lines...) Expand all
372 // Keeps track of the absolute pixel width the container should have when we 373 // Keeps track of the absolute pixel width the container should have when we
373 // are done animating. 374 // are done animating.
374 int animation_target_size_; 375 int animation_target_size_;
375 376
376 ScopedRunnableMethodFactory<BrowserActionsContainer> task_factory_; 377 ScopedRunnableMethodFactory<BrowserActionsContainer> task_factory_;
377 378
378 DISALLOW_COPY_AND_ASSIGN(BrowserActionsContainer); 379 DISALLOW_COPY_AND_ASSIGN(BrowserActionsContainer);
379 }; 380 };
380 381
381 #endif // CHROME_BROWSER_VIEWS_BROWSER_ACTIONS_CONTAINER_H_ 382 #endif // CHROME_BROWSER_VIEWS_BROWSER_ACTIONS_CONTAINER_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/views/browser_actions_container.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698