Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3032)

Unified Diff: chrome/browser/ui/gtk/bookmark_editor_gtk.h

Issue 6099014: Move chrome/browser/gtk to chrome/browser/ui/gtk (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Move browser/gtk/ to browser/ui/gtk/, leave header stubs, update new header guards Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/gtk/bookmark_bubble_gtk.cc ('k') | chrome/browser/ui/gtk/bookmark_editor_gtk.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/gtk/bookmark_editor_gtk.h
diff --git a/chrome/browser/ui/gtk/bookmark_editor_gtk.h b/chrome/browser/ui/gtk/bookmark_editor_gtk.h
new file mode 100644
index 0000000000000000000000000000000000000000..9c1c3047f241cd3eaae7cc6f376a16eee95eb9e0
--- /dev/null
+++ b/chrome/browser/ui/gtk/bookmark_editor_gtk.h
@@ -0,0 +1,167 @@
+// Copyright (c) 2010 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_UI_GTK_BOOKMARK_EDITOR_GTK_H_
+#define CHROME_BROWSER_UI_GTK_BOOKMARK_EDITOR_GTK_H_
+#pragma once
+
+#include "app/gtk_integers.h"
+#include "app/gtk_signal.h"
+#include "base/gtest_prod_util.h"
+#include "base/scoped_ptr.h"
+#include "base/string16.h"
+#include "chrome/browser/bookmarks/bookmark_editor.h"
+#include "chrome/browser/bookmarks/bookmark_model_observer.h"
+
+class GURL;
+
+typedef union _GdkEvent GdkEvent;
+typedef struct _GdkEventButton GdkEventButton;
+typedef struct _GtkTreeIter GtkTreeIter;
+typedef struct _GtkTreeSelection GtkTreeSelection;
+typedef struct _GtkTreeStore GtkTreeStore;
+typedef struct _GtkWidget GtkWidget;
+
+namespace gfx {
+class Point;
+} // namespace gfx
+
+// GTK version of the bookmark editor dialog.
+class BookmarkEditorGtk : public BookmarkEditor,
+ public BookmarkModelObserver {
+ public:
+ BookmarkEditorGtk(GtkWindow* window,
+ Profile* profile,
+ const BookmarkNode* parent,
+ const EditDetails& details,
+ BookmarkEditor::Configuration configuration);
+
+ virtual ~BookmarkEditorGtk();
+
+ void Show();
+ void Close();
+
+ private:
+ FRIEND_TEST_ALL_PREFIXES(BookmarkEditorGtkTest, ChangeParent);
+ FRIEND_TEST_ALL_PREFIXES(BookmarkEditorGtkTest, ChangeParentAndURL);
+ FRIEND_TEST_ALL_PREFIXES(BookmarkEditorGtkTest, ChangeURLToExistingURL);
+ FRIEND_TEST_ALL_PREFIXES(BookmarkEditorGtkTest, EditTitleKeepsPosition);
+ FRIEND_TEST_ALL_PREFIXES(BookmarkEditorGtkTest, EditURLKeepsPosition);
+ FRIEND_TEST_ALL_PREFIXES(BookmarkEditorGtkTest, ModelsMatch);
+ FRIEND_TEST_ALL_PREFIXES(BookmarkEditorGtkTest, MoveToNewParent);
+ FRIEND_TEST_ALL_PREFIXES(BookmarkEditorGtkTest, NewURL);
+ FRIEND_TEST_ALL_PREFIXES(BookmarkEditorGtkTest, ChangeURLNoTree);
+ FRIEND_TEST_ALL_PREFIXES(BookmarkEditorGtkTest, ChangeTitleNoTree);
+
+ class ContextMenuController;
+ friend class ContextMenuController;
+
+ void Init(GtkWindow* parent_window);
+
+ // BookmarkModel observer methods. Any structural change results in
+ // resetting the tree model.
+ virtual void Loaded(BookmarkModel* model) { }
+ virtual void BookmarkNodeMoved(BookmarkModel* model,
+ const BookmarkNode* old_parent,
+ int old_index,
+ const BookmarkNode* new_parent,
+ int new_index);
+ virtual void BookmarkNodeAdded(BookmarkModel* model,
+ const BookmarkNode* parent,
+ int index);
+ virtual void BookmarkNodeRemoved(BookmarkModel* model,
+ const BookmarkNode* parent,
+ int old_index,
+ const BookmarkNode* node);
+ virtual void BookmarkNodeChanged(BookmarkModel* model,
+ const BookmarkNode* node) {}
+ virtual void BookmarkNodeChildrenReordered(BookmarkModel* model,
+ const BookmarkNode* node);
+ virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model,
+ const BookmarkNode* node) {}
+
+ // Resets the model of the tree and updates the various buttons appropriately.
+ void Reset();
+
+ // Returns the current url the user has input.
+ GURL GetInputURL() const;
+
+ // Returns the title the user has input.
+ string16 GetInputTitle() const;
+
+ // Invokes ApplyEdits with the selected node.
+ //
+ // TODO(erg): This was copied from the windows version. Both should be
+ // cleaned up so that we don't overload ApplyEdits.
+ void ApplyEdits();
+
+ // Applies the edits done by the user. |selected_parent| gives the parent of
+ // the URL being edited.
+ void ApplyEdits(GtkTreeIter* selected_parent);
+
+ // Adds a new group parented on |parent| and sets |child| to point to this
+ // new group.
+ void AddNewGroup(GtkTreeIter* parent, GtkTreeIter* child);
+
+ CHROMEGTK_CALLBACK_0(BookmarkEditorGtk, void, OnSelectionChanged);
+ CHROMEGTK_CALLBACK_1(BookmarkEditorGtk, void, OnResponse, int);
+ CHROMEGTK_CALLBACK_1(BookmarkEditorGtk, gboolean, OnWindowDeleteEvent,
+ GdkEvent*);
+
+ CHROMEGTK_CALLBACK_0(BookmarkEditorGtk, void, OnWindowDestroy);
+ CHROMEGTK_CALLBACK_0(BookmarkEditorGtk, void, OnEntryChanged);
+
+ CHROMEGTK_CALLBACK_0(BookmarkEditorGtk, void, OnNewFolderClicked);
+
+ CHROMEGTK_CALLBACK_1(BookmarkEditorGtk, gboolean, OnTreeViewButtonPressEvent,
+ GdkEventButton*);
+
+ void ShowContextMenu(const gfx::Point& point);
+
+ void NewFolder();
+
+ // Profile the entry is from.
+ Profile* profile_;
+
+ // The dialog to display on screen.
+ GtkWidget* dialog_;
+ GtkWidget* name_entry_;
+ GtkWidget* url_entry_; // This is NULL if IsEditingFolder.
+ GtkWidget* tree_view_;
+ GtkWidget* new_folder_button_;
+
+ // Helper object that manages the currently selected item in |tree_view_|.
+ GtkTreeSelection* tree_selection_;
+
+ // Our local copy of the bookmark data that we make from the BookmarkModel
+ // that we can modify as much as we want and still discard when the user
+ // clicks Cancel.
+ GtkTreeStore* tree_store_;
+
+ // TODO(erg): BookmarkEditorView has an EditorTreeModel object here; convert
+ // that into a GObject that implements the interface GtkTreeModel.
+
+ // Initial parent to select. Is only used if node_ is NULL.
+ const BookmarkNode* parent_;
+
+ // Details about the node we're editing.
+ const EditDetails details_;
+
+ // Mode used to create nodes from.
+ BookmarkModel* bb_model_;
+
+ // If true, we're running the menu for the bookmark bar or other bookmarks
+ // nodes.
+ bool running_menu_for_root_;
+
+ // Is the tree shown?
+ bool show_tree_;
+
+ // The context menu controller.
+ scoped_ptr<ContextMenuController> menu_controller_;
+
+ DISALLOW_COPY_AND_ASSIGN(BookmarkEditorGtk);
+};
+
+#endif // CHROME_BROWSER_UI_GTK_BOOKMARK_EDITOR_GTK_H_
« no previous file with comments | « chrome/browser/ui/gtk/bookmark_bubble_gtk.cc ('k') | chrome/browser/ui/gtk/bookmark_editor_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698