summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/bookmark_editor_gtk.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/gtk/bookmark_editor_gtk.h')
-rw-r--r--chrome/browser/gtk/bookmark_editor_gtk.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/chrome/browser/gtk/bookmark_editor_gtk.h b/chrome/browser/gtk/bookmark_editor_gtk.h
new file mode 100644
index 0000000..1dbdbe8
--- /dev/null
+++ b/chrome/browser/gtk/bookmark_editor_gtk.h
@@ -0,0 +1,110 @@
+// Copyright (c) 2009 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_GTK_BOOKMARK_EDITOR_GTK_H_
+#define CHROME_BROWSER_GTK_BOOKMARK_EDITOR_GTK_H_
+
+#include <gtk/gtk.h>
+
+#include "chrome/browser/bookmarks/bookmark_editor.h"
+#include "chrome/browser/bookmarks/bookmark_model.h"
+
+// GTK version of the bookmark editor dialog.
+class BookmarkEditorGtk : public BookmarkEditor,
+ public BookmarkModelObserver {
+ public:
+ BookmarkEditorGtk(GtkWindow* window,
+ Profile* profile,
+ BookmarkNode* parent,
+ BookmarkNode* node,
+ BookmarkEditor::Configuration configuration,
+ BookmarkEditor::Handler* handler);
+
+ virtual ~BookmarkEditorGtk();
+
+ void Show();
+ void Close();
+
+ private:
+ 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,
+ BookmarkNode* old_parent,
+ int old_index,
+ BookmarkNode* new_parent,
+ int new_index);
+ virtual void BookmarkNodeAdded(BookmarkModel* model,
+ BookmarkNode* parent,
+ int index);
+ virtual void BookmarkNodeRemoved(BookmarkModel* model,
+ BookmarkNode* parent,
+ int index,
+ BookmarkNode* node);
+ virtual void BookmarkNodeChanged(BookmarkModel* model,
+ BookmarkNode* node) {}
+ virtual void BookmarkNodeChildrenReordered(BookmarkModel* model,
+ BookmarkNode* node);
+ virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model,
+ 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.
+ std::wstring GetInputTitle() const;
+
+ void ApplyEdits();
+
+ static void OnResponse(GtkDialog* dialog, int response_id,
+ BookmarkEditorGtk* window);
+
+ static gboolean OnWindowDeleteEvent(GtkWidget* widget,
+ GdkEvent* event,
+ BookmarkEditorGtk* dialog);
+
+ static void OnWindowDestroy(GtkWidget* widget, BookmarkEditorGtk* dialog);
+ static void OnEntryChanged(GtkEditable* entry, BookmarkEditorGtk* dialog);
+
+ // Profile the entry is from.
+ Profile* profile_;
+
+ // The dialog to display on screen.
+ GtkWidget* dialog_;
+ GtkWidget* name_entry_;
+ GtkWidget* url_entry_;
+ GtkWidget* close_button_;
+ GtkWidget* ok_button_;
+ GtkWidget* folder_tree_;
+
+ // 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.
+ BookmarkNode* parent_;
+
+ // Node being edited. Is NULL if creating a new node.
+ BookmarkNode* node_;
+
+ // 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_;
+
+ scoped_ptr<BookmarkEditor::Handler> handler_;
+
+ DISALLOW_COPY_AND_ASSIGN(BookmarkEditorGtk);
+};
+
+#endif // CHROME_BROWSER_GTK_BOOKMARK_EDITOR_GTK_H_