diff options
Diffstat (limited to 'chrome/browser/bookmarks/bookmark_editor.h')
-rw-r--r-- | chrome/browser/bookmarks/bookmark_editor.h | 44 |
1 files changed, 36 insertions, 8 deletions
diff --git a/chrome/browser/bookmarks/bookmark_editor.h b/chrome/browser/bookmarks/bookmark_editor.h index 39e99ea..5b3a6ab 100644 --- a/chrome/browser/bookmarks/bookmark_editor.h +++ b/chrome/browser/bookmarks/bookmark_editor.h @@ -27,7 +27,19 @@ class BookmarkEditor { }; // Describes what the user is editing. - struct EditDetails { + class EditDetails { + public: + // Returns an EditDetails instance for the user editing the given bookmark. + static EditDetails EditNode(const BookmarkNode* node); + + // Returns an EditDetails instance for the user adding a bookmark within + // a given parent node. + static EditDetails AddNodeInFolder(const BookmarkNode* parent_node); + + // Returns an EditDetails instance for the user adding a folder within a + // given parent node. + static EditDetails AddFolder(const BookmarkNode* parent_node); + enum Type { // The user is editing an existing node in the model. The node the user // is editing is set in |existing_node|. @@ -43,34 +55,50 @@ class BookmarkEditor { NEW_FOLDER }; - EditDetails(); - explicit EditDetails(const BookmarkNode* node); ~EditDetails(); // See description of enum value for details. - Type type; + const Type type; // If type == EXISTING_NODE this gives the existing node. const BookmarkNode* existing_node; + // If type == NEW_URL or type == NEW_FOLDER this gives the parent node + // to place the new node in. + const BookmarkNode* parent_node; + // If type == NEW_FOLDER, this is the urls/title pairs to add to the // folder. std::vector<std::pair<GURL, string16> > urls; + + private: + explicit EditDetails(Type node_type); }; - // Shows the bookmark editor. The bookmark editor allows editing an + // Shows the bookmark editor. If --use-more-webui is enabled use the bookmark + // manager to add or edit bookmarks. The bookmark editor allows editing an // existing node or creating a new bookmark node (as determined by // |details.type|). If |configuration| is SHOW_TREE, a tree is shown allowing // the user to choose the parent of the node. // |parent| gives the initial parent to select in the tree for the node. // |parent| is only used if |details.existing_node| is null. - // TODO(flackr): Rename this to ShowNative and add cross platform Show method - // which will show a WebUI version of the dialog if --pure-views is set. static void Show(gfx::NativeWindow parent_window, Profile* profile, - const BookmarkNode* parent, const EditDetails& details, Configuration configuration); + + private: + // Shows the native bookmark editor. + // TODO(flackr): Remove parent argument. + static void ShowNative(gfx::NativeWindow parent_window, + Profile* profile, + const BookmarkNode* parent, + const EditDetails& details, + Configuration configuration); + + // Shows the WebUI bookmark editor. + static void ShowWebUI(Profile* profile, + const EditDetails& details); }; #endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_EDITOR_H_ |