summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/toolbar_view.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/views/toolbar_view.h')
-rw-r--r--chrome/browser/views/toolbar_view.h229
1 files changed, 3 insertions, 226 deletions
diff --git a/chrome/browser/views/toolbar_view.h b/chrome/browser/views/toolbar_view.h
index c9b92bd..da47f0f 100644
--- a/chrome/browser/views/toolbar_view.h
+++ b/chrome/browser/views/toolbar_view.h
@@ -6,231 +6,8 @@
#define CHROME_BROWSER_VIEWS_TOOLBAR_VIEW_H_
#pragma once
-#include <vector>
-
-#include "app/menus/accelerator.h"
-#include "app/slide_animation.h"
-#include "base/ref_counted.h"
-#include "base/scoped_ptr.h"
-#include "chrome/browser/back_forward_menu_model.h"
-#include "chrome/browser/command_updater.h"
-#include "chrome/browser/prefs/pref_member.h"
-#include "chrome/browser/views/accessible_pane_view.h"
-#include "chrome/browser/views/location_bar/location_bar_view.h"
-#include "chrome/browser/views/reload_button.h"
-#include "views/controls/button/menu_button.h"
-#include "views/controls/menu/menu.h"
-#include "views/controls/menu/menu_wrapper.h"
-#include "views/controls/menu/view_menu_delegate.h"
-#include "views/view.h"
-
-class BrowserActionsContainer;
-class Browser;
-class Profile;
-#if defined(OS_CHROMEOS)
-namespace views {
-class Menu2;
-} // namespace views
-#endif
-class WrenchMenu;
-
-// The Browser Window's toolbar.
-class ToolbarView : public AccessiblePaneView,
- public views::ViewMenuDelegate,
- public menus::AcceleratorProvider,
- public LocationBarView::Delegate,
- public AnimationDelegate,
- public NotificationObserver,
- public CommandUpdater::CommandObserver,
- public views::ButtonListener {
- public:
- explicit ToolbarView(Browser* browser);
- virtual ~ToolbarView();
-
- // Create the contents of the Browser Toolbar
- void Init(Profile* profile);
-
- // Sets the profile which is active on the currently-active tab.
- void SetProfile(Profile* profile);
- Profile* profile() { return profile_; }
-
- // Updates the toolbar (and transitively the location bar) with the states of
- // the specified |tab|. If |should_restore_state| is true, we're switching
- // (back?) to this tab and should restore any previous location bar state
- // (such as user editing) as well.
- void Update(TabContents* tab, bool should_restore_state);
-
- // Set focus to the toolbar with complete keyboard access, with the
- // focus initially set to the location bar. Focus will be restored
- // to the ViewStorage with id |view_storage_id| if the user escapes.
- void SetPaneFocusAndFocusLocationBar(int view_storage_id);
-
- // Set focus to the toolbar with complete keyboard access, with the
- // focus initially set to the app menu. Focus will be restored
- // to the ViewStorage with id |view_storage_id| if the user escapes.
- void SetPaneFocusAndFocusAppMenu(int view_storage_id);
-
- // Returns true if the app menu is focused.
- bool IsAppMenuFocused();
-
- // Add a listener to receive a callback when the menu opens.
- void AddMenuListener(views::MenuListener* listener);
-
- // Remove a menu listener.
- void RemoveMenuListener(views::MenuListener* listener);
-
- // Accessors...
- Browser* browser() const { return browser_; }
- BrowserActionsContainer* browser_actions() const { return browser_actions_; }
- ReloadButton* reload_button() const { return reload_; }
- LocationBarView* location_bar() const { return location_bar_; }
- views::MenuButton* app_menu() const { return app_menu_; }
-
- // Overridden from AccessiblePaneView
- virtual bool SetPaneFocus(int view_storage_id, View* initial_focus);
- virtual AccessibilityTypes::Role GetAccessibleRole();
-
- // Overridden from Menu::BaseControllerDelegate:
- virtual bool GetAcceleratorInfo(int id, menus::Accelerator* accel);
-
- // Overridden from views::MenuDelegate:
- virtual void RunMenu(views::View* source, const gfx::Point& pt);
-
- // Overridden from LocationBarView::Delegate:
- virtual TabContents* GetTabContents();
- virtual InstantController* GetInstant();
- virtual void OnInputInProgress(bool in_progress);
-
- // Overridden from AnimationDelegate:
- virtual void AnimationProgressed(const Animation* animation);
-
- // Overridden from CommandUpdater::CommandObserver:
- virtual void EnabledStateChangedForCommand(int id, bool enabled);
-
- // Overridden from views::BaseButton::ButtonListener:
- virtual void ButtonPressed(views::Button* sender, const views::Event& event);
-
- // Overridden from NotificationObserver:
- virtual void Observe(NotificationType type,
- const NotificationSource& source,
- const NotificationDetails& details);
-
- // Overridden from menus::AcceleratorProvider:
- virtual bool GetAcceleratorForCommandId(int command_id,
- menus::Accelerator* accelerator);
-
- // Overridden from views::View:
- virtual gfx::Size GetPreferredSize();
- virtual void Layout();
- virtual void Paint(gfx::Canvas* canvas);
- virtual void OnThemeChanged();
-
- // The apparent horizontal space between most items, and the vertical padding
- // above and below them.
- static const int kStandardSpacing;
- // The top of the toolbar has an edge we have to skip over in addition to the
- // standard spacing.
- static const int kVertSpacing;
-
- protected:
-
- // Overridden from AccessiblePaneView
- virtual views::View* GetDefaultFocusableChild();
- virtual void RemovePaneFocus();
-
- private:
- // Returns true if we should show the upgrade recommended dot.
- bool IsUpgradeRecommended();
-
- // Returns true if we should show the warning for incompatible software.
- bool ShouldShowIncompatibilityWarning();
-
- // Returns the number of pixels above the location bar in non-normal display.
- int PopupTopSpacing() const;
-
- // Loads the images for all the child views.
- void LoadImages();
-
- // Types of display mode this toolbar can have.
- enum DisplayMode {
- DISPLAYMODE_NORMAL, // Normal toolbar with buttons, etc.
- DISPLAYMODE_LOCATION // Slimline toolbar showing only compact location
- // bar, used for popups.
- };
- bool IsDisplayModeNormal() const {
- return display_mode_ == DISPLAYMODE_NORMAL;
- }
-
- // Starts the recurring timer that periodically asks the notification dot
- // to pulsate.
- void ShowNotificationDot();
-
- // Show the reminder, tempting the user to take a look.
- void PulsateNotificationDot();
-
- // Gets a canvas with the icon for the app menu. It will possibly contain
- // an overlaid badge if an update is recommended.
- SkBitmap GetAppMenuIcon(views::CustomButton::ButtonState state);
-
- scoped_ptr<BackForwardMenuModel> back_menu_model_;
- scoped_ptr<BackForwardMenuModel> forward_menu_model_;
-
- // The model that contains the security level, text, icon to display...
- ToolbarModel* model_;
-
- // Controls
- views::ImageButton* back_;
- views::ImageButton* forward_;
- ReloadButton* reload_;
- views::ImageButton* home_;
- LocationBarView* location_bar_;
- BrowserActionsContainer* browser_actions_;
- views::MenuButton* app_menu_;
- Profile* profile_;
- Browser* browser_;
-
- // Contents of the profiles menu to populate with profile names.
- scoped_ptr<menus::SimpleMenuModel> profiles_menu_contents_;
-
- // Controls whether or not a home button should be shown on the toolbar.
- BooleanPrefMember show_home_button_;
-
- // The display mode used when laying out the toolbar.
- DisplayMode display_mode_;
-
- // The contents of the wrench menu.
- scoped_ptr<menus::SimpleMenuModel> wrench_menu_model_;
-
-#if defined(OS_CHROMEOS)
- // Wrench menu using domui menu.
- // MenuLister is managed by Menu2.
- scoped_ptr<views::Menu2> wrench_menu_2_;
-#endif
-
- // Wrench menu.
- scoped_refptr<WrenchMenu> wrench_menu_;
-
- // Vector of listeners to receive callbacks when the menu opens.
- std::vector<views::MenuListener*> menu_listeners_;
-
- // The animation that makes the notification dot pulse.
- scoped_ptr<SlideAnimation> notification_dot_animation_;
-
- // We periodically restart the animation after it has been showed
- // once, to create a pulsating effect.
- base::RepeatingTimer<ToolbarView> notification_dot_pulse_timer_;
-
- // Used to post tasks to switch to the next/previous menu.
- ScopedRunnableMethodFactory<ToolbarView> method_factory_;
-
- NotificationRegistrar registrar_;
-
- // If non-null the destructor sets this to true. This is set to a non-null
- // while the menu is showing and used to detect if the menu was deleted while
- // running.
- bool* destroyed_flag_;
-
- DISALLOW_IMPLICIT_CONSTRUCTORS(ToolbarView);
-};
+#include "chrome/browser/ui/views/toolbar_view.h"
+// TODO(beng): remove this file once all includes have been updated.
#endif // CHROME_BROWSER_VIEWS_TOOLBAR_VIEW_H_
+