| OLD | NEW |
| 1 // Copyright (c) 2011 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_BROWSER_ACTIONS_CONTAINER_H_ | 5 #ifndef CHROME_BROWSER_UI_VIEWS_BROWSER_ACTIONS_CONTAINER_H_ |
| 6 #define CHROME_BROWSER_UI_VIEWS_BROWSER_ACTIONS_CONTAINER_H_ | 6 #define CHROME_BROWSER_UI_VIEWS_BROWSER_ACTIONS_CONTAINER_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| 11 #include <vector> | 11 #include <vector> |
| 12 | 12 |
| 13 #include "base/basictypes.h" | 13 #include "base/basictypes.h" |
| 14 #include "base/compiler_specific.h" | 14 #include "base/compiler_specific.h" |
| 15 #include "base/memory/weak_ptr.h" | 15 #include "base/memory/weak_ptr.h" |
| 16 #include "base/message_loop_helpers.h" | 16 #include "base/message_loop_helpers.h" |
| 17 #include "chrome/browser/extensions/extension_context_menu_model.h" | 17 #include "chrome/browser/extensions/extension_context_menu_model.h" |
| 18 #include "chrome/browser/extensions/extension_keybinding_registry.h" |
| 18 #include "chrome/browser/extensions/extension_toolbar_model.h" | 19 #include "chrome/browser/extensions/extension_toolbar_model.h" |
| 19 #include "chrome/browser/extensions/image_loading_tracker.h" | 20 #include "chrome/browser/extensions/image_loading_tracker.h" |
| 20 #include "chrome/browser/ui/views/extensions/browser_action_overflow_menu_contro
ller.h" | 21 #include "chrome/browser/ui/views/extensions/browser_action_overflow_menu_contro
ller.h" |
| 21 #include "chrome/browser/ui/views/extensions/extension_popup.h" | 22 #include "chrome/browser/ui/views/extensions/extension_popup.h" |
| 22 #include "content/public/browser/notification_observer.h" | 23 #include "content/public/browser/notification_observer.h" |
| 23 #include "content/public/browser/notification_registrar.h" | 24 #include "content/public/browser/notification_registrar.h" |
| 25 #include "ui/base/accelerators/accelerator.h" |
| 24 #include "ui/base/animation/animation_delegate.h" | 26 #include "ui/base/animation/animation_delegate.h" |
| 25 #include "ui/base/animation/tween.h" | 27 #include "ui/base/animation/tween.h" |
| 26 #include "ui/views/controls/button/menu_button.h" | 28 #include "ui/views/controls/button/menu_button.h" |
| 27 #include "ui/views/controls/menu/view_menu_delegate.h" | 29 #include "ui/views/controls/menu/view_menu_delegate.h" |
| 28 #include "ui/views/controls/resize_area_delegate.h" | 30 #include "ui/views/controls/resize_area_delegate.h" |
| 29 #include "ui/views/drag_controller.h" | 31 #include "ui/views/drag_controller.h" |
| 30 #include "ui/views/view.h" | 32 #include "ui/views/view.h" |
| 31 | 33 |
| 32 class Browser; | 34 class Browser; |
| 33 class BrowserActionOverflowMenuController; | 35 class BrowserActionOverflowMenuController; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 // button will stay in the pushed state until the "menu" (a popup in this | 99 // button will stay in the pushed state until the "menu" (a popup in this |
| 98 // case) is dismissed. | 100 // case) is dismissed. |
| 99 virtual bool Activate() OVERRIDE; | 101 virtual bool Activate() OVERRIDE; |
| 100 virtual bool OnMousePressed(const views::MouseEvent& event) OVERRIDE; | 102 virtual bool OnMousePressed(const views::MouseEvent& event) OVERRIDE; |
| 101 virtual void OnMouseReleased(const views::MouseEvent& event) OVERRIDE; | 103 virtual void OnMouseReleased(const views::MouseEvent& event) OVERRIDE; |
| 102 virtual void OnMouseExited(const views::MouseEvent& event) OVERRIDE; | 104 virtual void OnMouseExited(const views::MouseEvent& event) OVERRIDE; |
| 103 virtual bool OnKeyReleased(const views::KeyEvent& event) OVERRIDE; | 105 virtual bool OnKeyReleased(const views::KeyEvent& event) OVERRIDE; |
| 104 virtual void ShowContextMenu(const gfx::Point& p, | 106 virtual void ShowContextMenu(const gfx::Point& p, |
| 105 bool is_mouse_gesture) OVERRIDE; | 107 bool is_mouse_gesture) OVERRIDE; |
| 106 | 108 |
| 109 // Overridden from ui::AcceleratorTarget. |
| 110 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; |
| 111 |
| 107 // Notifications when to set button state to pushed/not pushed (for when the | 112 // Notifications when to set button state to pushed/not pushed (for when the |
| 108 // popup/context menu is hidden or shown by the container). | 113 // popup/context menu is hidden or shown by the container). |
| 109 void SetButtonPushed(); | 114 void SetButtonPushed(); |
| 110 void SetButtonNotPushed(); | 115 void SetButtonNotPushed(); |
| 111 | 116 |
| 112 protected: | 117 protected: |
| 113 // Overridden from views::View: | 118 // Overridden from views::View: |
| 114 virtual void ViewHierarchyChanged(bool is_add, | 119 virtual void ViewHierarchyChanged(bool is_add, |
| 115 View* parent, | 120 View* parent, |
| 116 View* child) OVERRIDE; | 121 View* child) OVERRIDE; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 134 SkBitmap default_icon_; | 139 SkBitmap default_icon_; |
| 135 | 140 |
| 136 // The browser action shelf. | 141 // The browser action shelf. |
| 137 BrowserActionsContainer* panel_; | 142 BrowserActionsContainer* panel_; |
| 138 | 143 |
| 139 // The context menu. This member is non-NULL only when the menu is shown. | 144 // The context menu. This member is non-NULL only when the menu is shown. |
| 140 views::MenuItemView* context_menu_; | 145 views::MenuItemView* context_menu_; |
| 141 | 146 |
| 142 content::NotificationRegistrar registrar_; | 147 content::NotificationRegistrar registrar_; |
| 143 | 148 |
| 149 // The extension keybinding accelerator this browser action is listening for |
| 150 // (to show the popup). |
| 151 scoped_ptr<ui::Accelerator> keybinding_; |
| 152 |
| 144 friend class base::DeleteHelper<BrowserActionButton>; | 153 friend class base::DeleteHelper<BrowserActionButton>; |
| 145 | 154 |
| 146 DISALLOW_COPY_AND_ASSIGN(BrowserActionButton); | 155 DISALLOW_COPY_AND_ASSIGN(BrowserActionButton); |
| 147 }; | 156 }; |
| 148 | 157 |
| 149 | 158 |
| 150 //////////////////////////////////////////////////////////////////////////////// | 159 //////////////////////////////////////////////////////////////////////////////// |
| 151 // BrowserActionView | 160 // BrowserActionView |
| 152 // A single section in the browser action container. This contains the actual | 161 // A single section in the browser action container. This contains the actual |
| 153 // BrowserActionButton, as well as the logic to paint the badge. | 162 // BrowserActionButton, as well as the logic to paint the badge. |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 488 // The resize area for the container. | 497 // The resize area for the container. |
| 489 views::ResizeArea* resize_area_; | 498 views::ResizeArea* resize_area_; |
| 490 | 499 |
| 491 // The chevron for accessing the overflow items. | 500 // The chevron for accessing the overflow items. |
| 492 views::MenuButton* chevron_; | 501 views::MenuButton* chevron_; |
| 493 | 502 |
| 494 // The menu to show for the overflow button (chevron). This class manages its | 503 // The menu to show for the overflow button (chevron). This class manages its |
| 495 // own lifetime so that it can stay alive during drag and drop operations. | 504 // own lifetime so that it can stay alive during drag and drop operations. |
| 496 BrowserActionOverflowMenuController* overflow_menu_; | 505 BrowserActionOverflowMenuController* overflow_menu_; |
| 497 | 506 |
| 507 // The class that registers for keyboard shortcuts for extension commands. |
| 508 ExtensionKeybindingRegistry extension_keybinding_registry_; |
| 509 |
| 498 // The animation that happens when the container snaps to place. | 510 // The animation that happens when the container snaps to place. |
| 499 scoped_ptr<ui::SlideAnimation> resize_animation_; | 511 scoped_ptr<ui::SlideAnimation> resize_animation_; |
| 500 | 512 |
| 501 // Don't show the chevron while animating. | 513 // Don't show the chevron while animating. |
| 502 bool suppress_chevron_; | 514 bool suppress_chevron_; |
| 503 | 515 |
| 504 // This is used while the user is resizing (and when the animations are in | 516 // This is used while the user is resizing (and when the animations are in |
| 505 // progress) to know how wide the delta is between the current state and what | 517 // progress) to know how wide the delta is between the current state and what |
| 506 // we should draw. | 518 // we should draw. |
| 507 int resize_amount_; | 519 int resize_amount_; |
| 508 | 520 |
| 509 // Keeps track of the absolute pixel width the container should have when we | 521 // Keeps track of the absolute pixel width the container should have when we |
| 510 // are done animating. | 522 // are done animating. |
| 511 int animation_target_size_; | 523 int animation_target_size_; |
| 512 | 524 |
| 513 // The x position for where to draw the drop indicator. -1 if no indicator. | 525 // The x position for where to draw the drop indicator. -1 if no indicator. |
| 514 int drop_indicator_position_; | 526 int drop_indicator_position_; |
| 515 | 527 |
| 516 base::WeakPtrFactory<BrowserActionsContainer> task_factory_; | 528 base::WeakPtrFactory<BrowserActionsContainer> task_factory_; |
| 517 | 529 |
| 518 // Handles delayed showing of the overflow menu when hovering. | 530 // Handles delayed showing of the overflow menu when hovering. |
| 519 base::WeakPtrFactory<BrowserActionsContainer> show_menu_task_factory_; | 531 base::WeakPtrFactory<BrowserActionsContainer> show_menu_task_factory_; |
| 520 | 532 |
| 521 DISALLOW_COPY_AND_ASSIGN(BrowserActionsContainer); | 533 DISALLOW_COPY_AND_ASSIGN(BrowserActionsContainer); |
| 522 }; | 534 }; |
| 523 | 535 |
| 524 #endif // CHROME_BROWSER_UI_VIEWS_BROWSER_ACTIONS_CONTAINER_H_ | 536 #endif // CHROME_BROWSER_UI_VIEWS_BROWSER_ACTIONS_CONTAINER_H_ |
| OLD | NEW |