| Index: chrome/browser/ui/views/wrench_menu.h
|
| ===================================================================
|
| --- chrome/browser/ui/views/wrench_menu.h (revision 86142)
|
| +++ chrome/browser/ui/views/wrench_menu.h (working copy)
|
| @@ -11,9 +11,11 @@
|
|
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "chrome/browser/bookmarks/base_bookmark_model_observer.h"
|
| #include "ui/base/models/menu_model.h"
|
| #include "views/controls/menu/menu_delegate.h"
|
|
|
| +class BookmarkMenuDelegate;
|
| class Browser;
|
|
|
| namespace views {
|
| @@ -24,7 +26,8 @@
|
|
|
| // WrenchMenu adapts the WrenchMenuModel to view's menu related classes.
|
| class WrenchMenu : public base::RefCounted<WrenchMenu>,
|
| - public views::MenuDelegate {
|
| + public views::MenuDelegate,
|
| + public BaseBookmarkModelObserver {
|
| public:
|
| explicit WrenchMenu(Browser* browser);
|
|
|
| @@ -34,11 +37,40 @@
|
| void RunMenu(views::MenuButton* host);
|
|
|
| // MenuDelegate overrides:
|
| - virtual bool IsItemChecked(int id) const;
|
| - virtual bool IsCommandEnabled(int id) const;
|
| - virtual void ExecuteCommand(int id);
|
| - virtual bool GetAccelerator(int id, views::Accelerator* accelerator);
|
| + virtual std::wstring GetTooltipText(int id, const gfx::Point& p) OVERRIDE;
|
| + virtual bool IsTriggerableEvent(views::MenuItemView* menu,
|
| + const views::MouseEvent& e) OVERRIDE;
|
| + virtual bool GetDropFormats(
|
| + views::MenuItemView* menu,
|
| + int* formats,
|
| + std::set<ui::OSExchangeData::CustomFormat>* custom_formats) OVERRIDE;
|
| + virtual bool AreDropTypesRequired(views::MenuItemView* menu) OVERRIDE;
|
| + virtual bool CanDrop(views::MenuItemView* menu,
|
| + const ui::OSExchangeData& data) OVERRIDE;
|
| + virtual int GetDropOperation(views::MenuItemView* item,
|
| + const views::DropTargetEvent& event,
|
| + DropPosition* position) OVERRIDE;
|
| + virtual int OnPerformDrop(views::MenuItemView* menu,
|
| + DropPosition position,
|
| + const views::DropTargetEvent& event) OVERRIDE;
|
| + virtual bool ShowContextMenu(views::MenuItemView* source,
|
| + int id,
|
| + const gfx::Point& p,
|
| + bool is_mouse_gesture) OVERRIDE;
|
| + virtual bool CanDrag(views::MenuItemView* menu) OVERRIDE;
|
| + virtual void WriteDragData(views::MenuItemView* sender,
|
| + ui::OSExchangeData* data) OVERRIDE;
|
| + virtual int GetDragOperations(views::MenuItemView* sender) OVERRIDE;
|
| + virtual int GetMaxWidthForMenu(views::MenuItemView* menu) OVERRIDE;
|
| + virtual bool IsItemChecked(int id) const OVERRIDE;
|
| + virtual bool IsCommandEnabled(int id) const OVERRIDE;
|
| + virtual void ExecuteCommand(int id, int mouse_event_flags) OVERRIDE;
|
| + virtual bool GetAccelerator(int id, views::Accelerator* accelerator) OVERRIDE;
|
| + virtual void WillShowMenu(views::MenuItemView* menu) OVERRIDE;
|
|
|
| + // BaseBookmarkModelObserver overrides:
|
| + virtual void BookmarkModelChanged() OVERRIDE;
|
| +
|
| private:
|
| friend class base::RefCounted<WrenchMenu>;
|
|
|
| @@ -69,6 +101,15 @@
|
| // activates the menu item in |model| at |index|.
|
| void CancelAndEvaluate(ui::MenuModel* model, int index);
|
|
|
| + // Creates the bookmark menu if necessary. Does nothing if already created or
|
| + // the bookmark model isn't loaded.
|
| + void CreateBookmarkMenu();
|
| +
|
| + // Returns true if |id| identifies a bookmark menu item.
|
| + bool is_bookmark_command(int id) const {
|
| + return bookmark_menu_delegate_.get() && id >= first_bookmark_command_id_;
|
| + }
|
| +
|
| // The views menu.
|
| scoped_ptr<views::MenuItemView> root_;
|
|
|
| @@ -86,6 +127,15 @@
|
| ui::MenuModel* selected_menu_model_;
|
| int selected_index_;
|
|
|
| + // Used for managing the bookmark menu items.
|
| + scoped_ptr<BookmarkMenuDelegate> bookmark_menu_delegate_;
|
| +
|
| + // Menu corresponding to IDC_BOOKMARKS_MENU.
|
| + views::MenuItemView* bookmark_menu_;
|
| +
|
| + // ID to use for the items representing bookmarks in the bookmark menu.
|
| + int first_bookmark_command_id_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(WrenchMenu);
|
| };
|
|
|
|
|