| Index: chrome/browser/ui/gtk/browser_actions_toolbar_gtk.h
|
| diff --git a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.h b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.h
|
| deleted file mode 100644
|
| index 25d11ee00345f4cb3fd1f530171e09fbf6091b0d..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.h
|
| +++ /dev/null
|
| @@ -1,237 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CHROME_BROWSER_UI_GTK_BROWSER_ACTIONS_TOOLBAR_GTK_H_
|
| -#define CHROME_BROWSER_UI_GTK_BROWSER_ACTIONS_TOOLBAR_GTK_H_
|
| -
|
| -#include <map>
|
| -#include <string>
|
| -
|
| -#include "base/compiler_specific.h"
|
| -#include "base/memory/linked_ptr.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "chrome/browser/extensions/extension_toolbar_model.h"
|
| -#include "chrome/browser/ui/gtk/custom_button.h"
|
| -#include "chrome/browser/ui/gtk/menu_gtk.h"
|
| -#include "chrome/browser/ui/gtk/overflow_button.h"
|
| -#include "content/public/browser/notification_observer.h"
|
| -#include "content/public/browser/notification_registrar.h"
|
| -#include "ui/base/gtk/gtk_signal.h"
|
| -#include "ui/base/gtk/gtk_signal_registrar.h"
|
| -#include "ui/base/gtk/owned_widget_gtk.h"
|
| -#include "ui/base/models/simple_menu_model.h"
|
| -#include "ui/gfx/animation/animation_delegate.h"
|
| -#include "ui/gfx/animation/slide_animation.h"
|
| -
|
| -class Browser;
|
| -class BrowserActionButton;
|
| -class GtkThemeService;
|
| -class Profile;
|
| -
|
| -namespace extensions {
|
| -class Extension;
|
| -}
|
| -
|
| -typedef struct _GdkDragContext GdkDragContext;
|
| -typedef struct _GtkWidget GtkWidget;
|
| -
|
| -class BrowserActionsToolbarGtk
|
| - : public extensions::ExtensionToolbarModel::Observer,
|
| - public gfx::AnimationDelegate,
|
| - public MenuGtk::Delegate,
|
| - public ui::SimpleMenuModel::Delegate,
|
| - public content::NotificationObserver {
|
| - public:
|
| - explicit BrowserActionsToolbarGtk(Browser* browser);
|
| - virtual ~BrowserActionsToolbarGtk();
|
| -
|
| - GtkWidget* widget() { return hbox_.get(); }
|
| - GtkWidget* chevron() { return overflow_button_->widget(); }
|
| -
|
| - // Returns the widget in use by the BrowserActionButton corresponding to
|
| - // |extension|. Used in positioning the ExtensionInstalledBubble for
|
| - // BrowserActions.
|
| - GtkWidget* GetBrowserActionWidget(const extensions::Extension* extension);
|
| - BrowserActionButton* GetBrowserActionButton(
|
| - const extensions::Extension* extension);
|
| -
|
| - int button_count() { return extension_button_map_.size(); }
|
| -
|
| - Browser* browser() { return browser_; }
|
| -
|
| - extensions::ExtensionToolbarModel* model() { return model_; }
|
| -
|
| - // Returns the currently selected tab ID, or -1 if there is none.
|
| - int GetCurrentTabId() const;
|
| -
|
| - // Update the display of all buttons.
|
| - void Update();
|
| -
|
| - // content::NotificationObserver implementation.
|
| - virtual void Observe(int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) OVERRIDE;
|
| -
|
| - bool animating() {
|
| - return resize_animation_.is_animating();
|
| - }
|
| -
|
| - private:
|
| - friend class BrowserActionButton;
|
| -
|
| - // Initialize drag and drop.
|
| - void SetupDrags();
|
| -
|
| - // Query the extensions service for all extensions with browser actions,
|
| - // and create the UI for them.
|
| - void CreateAllButtons();
|
| -
|
| - // Sets the width of the container and overflow state according to the model.
|
| - void SetContainerWidth();
|
| -
|
| - // Create the UI for a single browser action. This will stick the button
|
| - // at the end of the toolbar.
|
| - void CreateButtonForExtension(const extensions::Extension* extension,
|
| - int index);
|
| -
|
| - // Delete resources associated with UI for a browser action.
|
| - void RemoveButtonForExtension(const extensions::Extension* extension);
|
| -
|
| - // Change the visibility of widget() based on whether we have any buttons
|
| - // to show.
|
| - void UpdateVisibility();
|
| -
|
| - // Hide the extension popup, if any.
|
| - void HidePopup();
|
| -
|
| - // Animate the toolbar to show the given number of icons. This assumes the
|
| - // visibility of the overflow button will not change.
|
| - void AnimateToShowNIcons(int count);
|
| -
|
| - // Returns true if this extension should be shown in this toolbar. This can
|
| - // return false if we are in an incognito window and the extension is disabled
|
| - // for incognito.
|
| - bool ShouldDisplayBrowserAction(const extensions::Extension* extension);
|
| -
|
| - // extensions::ExtensionToolbarModel::Observer implementation.
|
| - virtual void BrowserActionAdded(const extensions::Extension* extension,
|
| - int index) OVERRIDE;
|
| - virtual void BrowserActionRemoved(
|
| - const extensions::Extension* extension) OVERRIDE;
|
| - virtual void BrowserActionMoved(const extensions::Extension* extension,
|
| - int index) OVERRIDE;
|
| - virtual bool BrowserActionShowPopup(
|
| - const extensions::Extension* extension) OVERRIDE;
|
| - virtual void VisibleCountChanged() OVERRIDE;
|
| -
|
| - // gfx::AnimationDelegate implementation.
|
| - virtual void AnimationProgressed(const gfx::Animation* animation) OVERRIDE;
|
| - virtual void AnimationEnded(const gfx::Animation* animation) OVERRIDE;
|
| -
|
| - // SimpleMenuModel::Delegate implementation.
|
| - // In our case, |command_id| is be the index into the model's extension list.
|
| - virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
|
| - virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
|
| - virtual bool GetAcceleratorForCommandId(
|
| - int command_id,
|
| - ui::Accelerator* accelerator) OVERRIDE;
|
| - virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE;
|
| -
|
| - // MenuGtk::Delegate implementation.
|
| - virtual void StoppedShowing() OVERRIDE;
|
| - virtual bool AlwaysShowIconForCmd(int command_id) const OVERRIDE;
|
| -
|
| - // Called by the BrowserActionButton in response to drag-begin.
|
| - void DragStarted(BrowserActionButton* button, GdkDragContext* drag_context);
|
| -
|
| - // Sets the width of the button area of the toolbar to |new_width|, clamping
|
| - // it to appropriate values.
|
| - void SetButtonHBoxWidth(int new_width);
|
| -
|
| - // Shows or hides the chevron as appropriate.
|
| - void UpdateChevronVisibility();
|
| -
|
| - CHROMEGTK_CALLBACK_4(BrowserActionsToolbarGtk, gboolean, OnDragMotion,
|
| - GdkDragContext*, gint, gint, guint);
|
| - CHROMEGTK_CALLBACK_1(BrowserActionsToolbarGtk, void, OnDragEnd,
|
| - GdkDragContext*);
|
| - CHROMEGTK_CALLBACK_2(BrowserActionsToolbarGtk, gboolean, OnDragFailed,
|
| - GdkDragContext*, GtkDragResult);
|
| - CHROMEGTK_CALLBACK_1(BrowserActionsToolbarGtk, void, OnHierarchyChanged,
|
| - GtkWidget*);
|
| - CHROMEGTK_CALLBACK_1(BrowserActionsToolbarGtk, void, OnSetFocus, GtkWidget*);
|
| - CHROMEGTK_CALLBACK_1(BrowserActionsToolbarGtk, gboolean,
|
| - OnGripperMotionNotify, GdkEventMotion*);
|
| - CHROMEGTK_CALLBACK_1(BrowserActionsToolbarGtk, gboolean, OnGripperExpose,
|
| - GdkEventExpose*);
|
| - CHROMEGTK_CALLBACK_1(BrowserActionsToolbarGtk, gboolean,
|
| - OnGripperEnterNotify, GdkEventCrossing*);
|
| - CHROMEGTK_CALLBACK_1(BrowserActionsToolbarGtk, gboolean,
|
| - OnGripperLeaveNotify, GdkEventCrossing*);
|
| - CHROMEGTK_CALLBACK_1(BrowserActionsToolbarGtk, gboolean,
|
| - OnGripperButtonRelease, GdkEventButton*);
|
| - CHROMEGTK_CALLBACK_1(BrowserActionsToolbarGtk, gboolean,
|
| - OnGripperButtonPress, GdkEventButton*);
|
| - // The overflow button is pressed.
|
| - CHROMEGTK_CALLBACK_1(BrowserActionsToolbarGtk, gboolean,
|
| - OnOverflowButtonPress, GdkEventButton*);
|
| - // The user presses a mouse button over the popped up overflow menu.
|
| - CHROMEGTK_CALLBACK_1(BrowserActionsToolbarGtk, gboolean,
|
| - OnOverflowMenuButtonPress, GdkEventButton*);
|
| - CHROMEGTK_CALLBACK_0(BrowserActionsToolbarGtk, void, OnButtonShowOrHide);
|
| -
|
| - Browser* browser_;
|
| -
|
| - Profile* profile_;
|
| - GtkThemeService* theme_service_;
|
| -
|
| - extensions::ExtensionToolbarModel* model_;
|
| -
|
| - // Contains the drag gripper, browser action buttons, and overflow chevron.
|
| - ui::OwnedWidgetGtk hbox_;
|
| -
|
| - // Contains the browser action buttons.
|
| - ui::OwnedWidgetGtk button_hbox_;
|
| -
|
| - // The overflow button for chrome theme mode.
|
| - scoped_ptr<CustomDrawButton> overflow_button_;
|
| - // The separator just next to the overflow button. Only shown in GTK+ theme
|
| - // mode. In Chrome theme mode, the overflow button has a separator built in.
|
| - ui::OwnedWidgetGtk separator_;
|
| - scoped_ptr<MenuGtk> overflow_menu_;
|
| - scoped_ptr<ui::SimpleMenuModel> overflow_menu_model_;
|
| - ui::OwnedWidgetGtk overflow_area_;
|
| - // A widget for adding extra padding to the left of the overflow button.
|
| - ui::OwnedWidgetGtk overflow_alignment_;
|
| -
|
| - // The button that is currently being dragged, or NULL.
|
| - BrowserActionButton* drag_button_;
|
| -
|
| - // The new position of the button in the drag, or -1.
|
| - int drop_index_;
|
| -
|
| - // Map from extension ID to BrowserActionButton, which is a wrapper for
|
| - // a chrome button and related functionality. There should be one entry
|
| - // for every extension that has a browser action.
|
| - typedef std::map<std::string, linked_ptr<BrowserActionButton> >
|
| - ExtensionButtonMap;
|
| - ExtensionButtonMap extension_button_map_;
|
| -
|
| - // We use this animation for the smart resizing of the toolbar.
|
| - gfx::SlideAnimation resize_animation_;
|
| - // This is the final width we are animating towards.
|
| - int desired_width_;
|
| - // This is the width we were at when we started animating.
|
| - int start_width_;
|
| -
|
| - ui::GtkSignalRegistrar signals_;
|
| -
|
| - content::NotificationRegistrar registrar_;
|
| -
|
| - base::WeakPtrFactory<BrowserActionsToolbarGtk> weak_factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(BrowserActionsToolbarGtk);
|
| -};
|
| -
|
| -#endif // CHROME_BROWSER_UI_GTK_BROWSER_ACTIONS_TOOLBAR_GTK_H_
|
|
|