diff options
author | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-23 23:00:17 +0000 |
---|---|---|
committer | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-23 23:00:17 +0000 |
commit | f9c773362c778437308629ff41d117a1a1cdda81 (patch) | |
tree | ef680b3fde7340a63f56b613cd5fa151e157a1cd /chrome/browser/bookmarks | |
parent | c3c656369b267ecc86962085af5202764012c72d (diff) | |
download | chromium_src-f9c773362c778437308629ff41d117a1a1cdda81.zip chromium_src-f9c773362c778437308629ff41d117a1a1cdda81.tar.gz chromium_src-f9c773362c778437308629ff41d117a1a1cdda81.tar.bz2 |
Adds (non-working) folders and GTK dialogs.
- Folders can be created and edited in the bookmark bar. They
aren't drop targets nor do they popup a menu with their contents.
- Refactor the input window interface to be platform neutral
and use that in EditFolderController.
Review URL: http://codereview.chromium.org/87010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14371 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/bookmarks')
-rw-r--r-- | chrome/browser/bookmarks/bookmark_context_menu.cc | 66 |
1 files changed, 28 insertions, 38 deletions
diff --git a/chrome/browser/bookmarks/bookmark_context_menu.cc b/chrome/browser/bookmarks/bookmark_context_menu.cc index ae0e22c..57f3631 100644 --- a/chrome/browser/bookmarks/bookmark_context_menu.cc +++ b/chrome/browser/bookmarks/bookmark_context_menu.cc @@ -4,10 +4,12 @@ #include "chrome/browser/bookmarks/bookmark_context_menu.h" +#include "base/compiler_specific.h" #include "chrome/browser/bookmarks/bookmark_model.h" #include "chrome/browser/bookmarks/bookmark_utils.h" #include "chrome/browser/browser.h" #include "chrome/browser/browser_list.h" +#include "chrome/browser/input_window_dialog.h" #include "chrome/browser/metrics/user_metrics.h" #include "chrome/browser/profile.h" #include "chrome/browser/tab_contents/page_navigator.h" @@ -21,7 +23,6 @@ #include "chrome/browser/tab_contents/tab_contents.h" #include "chrome/browser/views/bookmark_editor_view.h" #include "chrome/browser/views/bookmark_manager_view.h" -#include "chrome/browser/views/input_window.h" #include "chrome/views/window/window.h" #endif @@ -40,14 +41,13 @@ bool NodeHasURLs(BookmarkNode* node) { return false; } -#if defined(OS_WIN) // EditFolderController ------------------------------------------------------- // EditFolderController manages the editing and/or creation of a folder. If the // user presses ok, the name change is committed to the model. // // EditFolderController deletes itself when the window is closed. -class EditFolderController : public InputWindowDelegate, +class EditFolderController : public InputWindowDialog::Delegate, public BookmarkModelObserver { public: virtual ~EditFolderController() { @@ -78,37 +78,41 @@ class EditFolderController : public InputWindowDelegate, is_new_(is_new), show_in_manager_(show_in_manager) { DCHECK(is_new_ || node); - window_ = CreateInputWindow(wnd, this); - model_->AddObserver(this); - } - void Show() { - window_->Show(); - } + std::wstring title = is_new_ ? + l10n_util::GetString(IDS_BOOMARK_FOLDER_EDITOR_WINDOW_TITLE_NEW) : + l10n_util::GetString(IDS_BOOMARK_FOLDER_EDITOR_WINDOW_TITLE); + std::wstring label = + l10n_util::GetString(IDS_BOOMARK_BAR_EDIT_FOLDER_LABEL); + std::wstring contents = is_new_ ? + l10n_util::GetString(IDS_BOOMARK_EDITOR_NEW_FOLDER_NAME) : + node_->GetTitle(); - // InputWindowDelegate methods. - virtual std::wstring GetTextFieldLabel() { - return l10n_util::GetString(IDS_BOOMARK_BAR_EDIT_FOLDER_LABEL); + dialog_ = InputWindowDialog::Create(wnd, title, label, contents, this); + model_->AddObserver(this); } - virtual std::wstring GetTextFieldContents() { - if (is_new_) - return l10n_util::GetString(IDS_BOOMARK_EDITOR_NEW_FOLDER_NAME); - return node_->GetTitle(); + void Show() { + dialog_->Show(); } + // InputWindowDialog::Delegate methods. virtual bool IsValid(const std::wstring& text) { return !text.empty(); } virtual void InputAccepted(const std::wstring& text) { if (is_new_) { - BookmarkNode* node = + ALLOW_UNUSED BookmarkNode* node = model_->AddGroup(node_, node_->GetChildCount(), text); if (show_in_manager_) { +#if defined(OS_WIN) BookmarkManagerView* manager = BookmarkManagerView::current(); if (manager && manager->profile() == profile_) manager->SelectInTree(node); +#else + NOTIMPLEMENTED() << "BookmarkManagerView not yet implemented"; +#endif } } else { model_->SetTitle(node_, text); @@ -118,16 +122,6 @@ class EditFolderController : public InputWindowDelegate, virtual void InputCanceled() { } - virtual void DeleteDelegate() { - delete this; - } - - virtual std::wstring GetWindowTitle() const { - return is_new_ ? - l10n_util::GetString(IDS_BOOMARK_FOLDER_EDITOR_WINDOW_TITLE_NEW) : - l10n_util::GetString(IDS_BOOMARK_FOLDER_EDITOR_WINDOW_TITLE); - } - // BookmarkModelObserver methods, all invoke ModelChanged and close the // dialog. virtual void Loaded(BookmarkModel* model) {} @@ -171,7 +165,7 @@ class EditFolderController : public InputWindowDelegate, } void ModelChanged() { - window_->Close(); + dialog_->Close(); } Profile* profile_; @@ -185,11 +179,12 @@ class EditFolderController : public InputWindowDelegate, // If is_new_ is true and a new node is created, it is selected in the // bookmark manager. bool show_in_manager_; - views::Window* window_; + InputWindowDialog* dialog_; DISALLOW_COPY_AND_ASSIGN(EditFolderController); }; +#if defined(OS_WIN) // SelectOnCreationHandler ---------------------------------------------------- // Used when adding a new bookmark. If a new bookmark is created it is selected @@ -340,8 +335,8 @@ void BookmarkContextMenu::ExecuteCommand(int id) { return; } -#if defined(OS_WIN) if (selection_[0]->is_url()) { +#if defined(OS_WIN) BookmarkEditorView::Configuration editor_config; if (configuration_ == BOOKMARK_BAR) editor_config = BookmarkEditorView::SHOW_TREE; @@ -349,13 +344,13 @@ void BookmarkContextMenu::ExecuteCommand(int id) { editor_config = BookmarkEditorView::NO_TREE; BookmarkEditorView::Show(wnd_, profile_, NULL, selection_[0], editor_config, NULL); +#else + NOTIMPLEMENTED() << "BookmarkEditorView unimplemented"; +#endif } else { EditFolderController::Show(profile_, wnd_, selection_[0], false, false); } -#else - NOTIMPLEMENTED() << "IDS_BOOKMARK_BAR_RENAME_FOLDER / BAR_EDIT"; -#endif break; case IDS_BOOKMARK_BAR_REMOVE: { @@ -394,13 +389,8 @@ void BookmarkContextMenu::ExecuteCommand(int id) { case IDS_BOOMARK_BAR_NEW_FOLDER: { UserMetrics::RecordAction(L"BookmarkBar_ContextMenu_NewFolder", profile_); - -#if defined(OS_WIN) EditFolderController::Show(profile_, wnd_, GetParentForNewNodes(), true, (configuration_ != BOOKMARK_BAR)); -#else - NOTIMPLEMENTED() << "New Folder not implemented"; -#endif break; } |