Index: chrome/browser/gtk/bookmark_editor_gtk.cc |
=================================================================== |
--- chrome/browser/gtk/bookmark_editor_gtk.cc (revision 66194) |
+++ chrome/browser/gtk/bookmark_editor_gtk.cc (working copy) |
@@ -7,7 +7,6 @@ |
#include <gtk/gtk.h> |
#include "app/l10n_util.h" |
-#include "app/menus/simple_menu_model.h" |
#include "base/basictypes.h" |
#include "base/logging.h" |
#include "base/string_util.h" |
@@ -18,7 +17,6 @@ |
#include "chrome/browser/gtk/bookmark_utils_gtk.h" |
#include "chrome/browser/gtk/gtk_theme_provider.h" |
#include "chrome/browser/gtk/gtk_util.h" |
-#include "chrome/browser/gtk/menu_gtk.h" |
#include "chrome/browser/history/history.h" |
#include "chrome/browser/net/url_fixer_upper.h" |
#include "chrome/browser/profile.h" |
@@ -39,127 +37,6 @@ |
} // namespace |
-class BookmarkEditorGtk::ContextMenuController |
- : public menus::SimpleMenuModel::Delegate { |
- public: |
- explicit ContextMenuController(BookmarkEditorGtk* editor) |
- : editor_(editor), |
- running_menu_for_root_(false) { |
- menu_model_.reset(new menus::SimpleMenuModel(this)); |
- menu_model_->AddItemWithStringId(COMMAND_EDIT, IDS_EDIT); |
- menu_model_->AddItemWithStringId( |
- COMMAND_NEW_FOLDER, |
- IDS_BOOMARK_EDITOR_NEW_FOLDER_MENU_ITEM); |
- menu_.reset(new MenuGtk(NULL, menu_model_.get())); |
- } |
- virtual ~ContextMenuController() {} |
- |
- void RunMenu() { |
- const BookmarkNode* selected_node = GetSelectedNode(); |
- if (selected_node) |
- running_menu_for_root_ = selected_node->GetParent()->IsRoot(); |
- menu_->PopupAsContext(gtk_get_current_event_time()); |
- } |
- |
- void Cancel() { |
- editor_ = NULL; |
- menu_->Cancel(); |
- } |
- |
- private: |
- enum ContextMenuCommand { |
- COMMAND_EDIT, |
- COMMAND_NEW_FOLDER |
- }; |
- |
- // Overridden from menus::SimpleMenuModel::Delegate: |
- virtual bool IsCommandIdEnabled(int command_id) const { |
- return !(command_id == COMMAND_EDIT && running_menu_for_root_) && |
- (editor_ != NULL); |
- } |
- |
- virtual bool IsCommandIdChecked(int command_id) const { |
- return false; |
- } |
- |
- virtual bool GetAcceleratorForCommandId(int command_id, |
- menus::Accelerator* accelerator) { |
- return false; |
- } |
- |
- virtual void ExecuteCommand(int command_id) { |
- if (!editor_) |
- return; |
- |
- switch (command_id) { |
- case COMMAND_EDIT: { |
- GtkTreeIter iter; |
- if (!gtk_tree_selection_get_selected(editor_->tree_selection_, |
- NULL, |
- &iter)) { |
- return; |
- } |
- |
- GtkTreePath* path = gtk_tree_model_get_path( |
- GTK_TREE_MODEL(editor_->tree_store_), &iter); |
- gtk_tree_view_expand_to_path(GTK_TREE_VIEW(editor_->tree_view_), path); |
- |
- // Make the folder name editable. |
- gtk_tree_view_set_cursor(GTK_TREE_VIEW(editor_->tree_view_), path, |
- gtk_tree_view_get_column(GTK_TREE_VIEW(editor_->tree_view_), 0), |
- TRUE); |
- |
- gtk_tree_path_free(path); |
- break; |
- } |
- case COMMAND_NEW_FOLDER: |
- editor_->NewFolder(); |
- break; |
- default: |
- NOTREACHED(); |
- break; |
- } |
- } |
- |
- int64 GetRowIdAt(GtkTreeModel* model, GtkTreeIter* iter) { |
- GValue value = { 0, }; |
- gtk_tree_model_get_value(model, iter, bookmark_utils::ITEM_ID, &value); |
- int64 id = g_value_get_int64(&value); |
- g_value_unset(&value); |
- return id; |
- } |
- |
- const BookmarkNode* GetNodeAt(GtkTreeModel* model, GtkTreeIter* iter) { |
- int64 id = GetRowIdAt(model, iter); |
- return (id > 0) ? editor_->bb_model_->GetNodeByID(id) : NULL; |
- } |
- |
- const BookmarkNode* GetSelectedNode() { |
- GtkTreeModel* model; |
- GtkTreeIter iter; |
- if (!gtk_tree_selection_get_selected(editor_->tree_selection_, |
- &model, |
- &iter)) { |
- return NULL; |
- } |
- |
- return GetNodeAt(model, &iter); |
- } |
- |
- // The model and view for the right click context menu. |
- scoped_ptr<menus::SimpleMenuModel> menu_model_; |
- scoped_ptr<MenuGtk> menu_; |
- |
- // The context menu was brought up for. Set to NULL when the menu is canceled. |
- BookmarkEditorGtk* editor_; |
- |
- // If true, we're running the menu for the bookmark bar or other bookmarks |
- // nodes. |
- bool running_menu_for_root_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ContextMenuController); |
-}; |
- |
// static |
void BookmarkEditor::Show(gfx::NativeWindow parent_hwnd, |
Profile* profile, |
@@ -304,8 +181,6 @@ |
tree_view_ = bookmark_utils::MakeTreeViewForStore(tree_store_); |
gtk_widget_set_size_request(tree_view_, kTreeWidth, kTreeHeight); |
tree_selection_ = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view_)); |
- g_signal_connect(tree_view_, "button-press-event", |
- G_CALLBACK(OnTreeViewButtonPressEventThunk), this); |
GtkTreePath* path = NULL; |
if (selected_id) { |
@@ -521,25 +396,6 @@ |
} |
void BookmarkEditorGtk::OnNewFolderClicked(GtkWidget* button) { |
- NewFolder(); |
-} |
- |
-gboolean BookmarkEditorGtk::OnTreeViewButtonPressEvent(GtkWidget* widget, |
- GdkEventButton* event) { |
- if (event->button == 3) |
- ShowContextMenu(); |
- |
- return FALSE; |
-} |
- |
-void BookmarkEditorGtk::ShowContextMenu() { |
- if (!menu_controller_.get()) |
- menu_controller_.reset(new ContextMenuController(this)); |
- |
- menu_controller_->RunMenu(); |
-} |
- |
-void BookmarkEditorGtk::NewFolder() { |
GtkTreeIter iter; |
if (!gtk_tree_selection_get_selected(tree_selection_, |
NULL, |