OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 // C++ controller for the bookmark menu. When bookmarks are changed, |
| 6 // this class takes care of updating Cocoa bookmark menus. This is |
| 7 // not named BookmarkMenuController to help avoid confusion between |
| 8 // languages. This class needs to be C++, not ObjC, since it derives |
| 9 // from BookmarkModelObserver. |
| 10 |
| 11 #ifndef CHROME_BROWSER_COCOA_BOOKMARK_MENU_BRIDGE_H_ |
| 12 #define CHROME_BROWSER_COCOA_BOOKMARK_MENU_BRIDGE_H_ |
| 13 |
| 14 #include "chrome/browser/bookmarks/bookmark_model.h" |
| 15 |
| 16 |
| 17 class Browser; |
| 18 @class NSMenu; |
| 19 |
| 20 class BookmarkMenuBridge : public BookmarkModelObserver { |
| 21 public: |
| 22 BookmarkMenuBridge(Browser* browser); |
| 23 ~BookmarkMenuBridge(); |
| 24 |
| 25 // Overridden from BookmarkModelObserver |
| 26 virtual void Loaded(BookmarkModel* model); |
| 27 virtual void BookmarkNodeMoved(BookmarkModel* model, |
| 28 BookmarkNode* old_parent, |
| 29 int old_index, |
| 30 BookmarkNode* new_parent, |
| 31 int new_index); |
| 32 virtual void BookmarkNodeAdded(BookmarkModel* model, |
| 33 BookmarkNode* parent, |
| 34 int index); |
| 35 virtual void BookmarkNodeChanged(BookmarkModel* model, |
| 36 BookmarkNode* node); |
| 37 virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, |
| 38 BookmarkNode* node); |
| 39 virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, |
| 40 BookmarkNode* node); |
| 41 |
| 42 protected: |
| 43 // Clear all bookmarks from the given bookmark menu. |
| 44 void ClearBookmarkMenu(NSMenu* menu); |
| 45 |
| 46 // Helper for recursively adding items to our bookmark menu |
| 47 // All children of |node| will be added to |menu|. |
| 48 // TODO(jrg): add a counter to enforce maximum nodes added |
| 49 void AddNodeToMenu(BookmarkNode* node, NSMenu* menu); |
| 50 |
| 51 private: |
| 52 friend class BookmarkMenuBridgeTest; |
| 53 Browser* browser_; |
| 54 }; |
| 55 |
| 56 #endif // CHROME_BROWSER_COCOA_BOOKMARK_MENU_BRIDGE_H_ |
OLD | NEW |