Chromium Code Reviews| Index: chrome/browser/views/bookmark_menu_button.h |
| =================================================================== |
| --- chrome/browser/views/bookmark_menu_button.h (revision 0) |
| +++ chrome/browser/views/bookmark_menu_button.h (revision 0) |
| @@ -0,0 +1,79 @@ |
| +// Copyright (c) 2009 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_VIEWS_BOOKMARK_MENU_BUTTON_H_ |
| +#define CHROME_BROWSER_VIEWS_BOOKMARK_MENU_BUTTON_H_ |
| + |
| +#include "base/timer.h" |
| +#include "chrome/browser/bookmarks/bookmark_drag_data.h" |
| +#include "chrome/browser/bookmarks/bookmark_menu_controller.h" |
| +#include "chrome/views/controls/button/menu_button.h" |
| +#include "chrome/views/controls/menu/view_menu_delegate.h" |
| + |
| +class BookmarkModel; |
| +class Browser; |
| + |
| +// BookmarkMenuButton is the button on the toolbar that when clicked shows |
| +// all bookmarks in a menu. Additionally users can drag bookmarks over the |
| +// button to have the menu appear. |
| + |
| +class BookmarkMenuButton : public views::MenuButton, |
| + public BookmarkMenuController::Observer, |
| + public views::ViewMenuDelegate { |
| + public: |
| + explicit BookmarkMenuButton(Browser* browser); |
| + virtual ~BookmarkMenuButton(); |
| + |
| + // View drop methods. |
| + virtual bool CanDrop(const OSExchangeData& data); |
| + virtual int OnDragUpdated(const views::DropTargetEvent& event); |
| + virtual void OnDragExited(); |
| + virtual int OnPerformDrop(const views::DropTargetEvent& event); |
| + |
| + // BookmarkMenuController::Observer. |
| + virtual void BookmarkMenuDeleted(BookmarkMenuController* controller); |
| + |
| + // ViewMenuDelegate. |
| + virtual void RunMenu(views::View* source, |
| + const CPoint& pt, |
| + gfx::NativeView hwnd); |
| + |
| + private: |
| + // Shows the menu. |
| + void RunMenu(views::View* source, |
| + const CPoint& pt, |
| + gfx::NativeView hwnd, |
| + bool for_drop); |
| + |
| + // Returns the bookmark model. |
| + BookmarkModel* GetBookmarkModel(); |
| + |
| + // If the timer for showing the drop menu isn't running, it's started. |
|
jcampan
2009/03/20 21:16:47
Nit: "Starts the timer for showing the drop menu i
|
| + void StartShowFolderDropMenuTimer(); |
| + |
| + // Stops the timer for showing the drop menu. |
| + void StopShowFolderDropMenuTimer(); |
| + |
| + // Shows the drop menu. |
| + void ShowDropMenu(); |
| + |
| + // Browser used to determine profile for showing bookmarks from. |
| + Browser* browser_; |
| + |
| + // Contents of current drag. |
| + BookmarkDragData drag_data_; |
| + |
| + // Menu shown during drag and drop. |
| + BookmarkMenuController* bookmark_drop_menu_; |
| + |
| + // Drop operation for current drop. |
| + int drop_operation_; |
| + |
| + // Timer used for showing the drop menu. |
| + base::OneShotTimer<BookmarkMenuButton> show_drop_menu_timer_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(BookmarkMenuButton); |
| +}; |
| + |
| +#endif // CHROME_BROWSER_VIEWS_BOOKMARK_MENU_BUTTON_H_ |
| Property changes on: chrome\browser\views\bookmark_menu_button.h |
| ___________________________________________________________________ |
| Added: svn:eol-style |
| + LF |