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

Unified Diff: chrome/browser/ui/gtk/options/cookies_view.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
Index: chrome/browser/ui/gtk/options/cookies_view.h
diff --git a/chrome/browser/ui/gtk/options/cookies_view.h b/chrome/browser/ui/gtk/options/cookies_view.h
new file mode 100644
index 0000000000000000000000000000000000000000..e8013fb8924a403fb5aa98e179f9ff904060efe3
--- /dev/null
+++ b/chrome/browser/ui/gtk/options/cookies_view.h
@@ -0,0 +1,151 @@
+// 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.
+
+// This is the Gtk implementation of the Cookie Manager dialog.
+
+#ifndef CHROME_BROWSER_UI_GTK_OPTIONS_COOKIES_VIEW_H_
+#define CHROME_BROWSER_UI_GTK_OPTIONS_COOKIES_VIEW_H_
+#pragma once
+
+#include <gtk/gtk.h>
+
+#include "app/gtk_signal.h"
+#include "base/basictypes.h"
+#include "base/gtest_prod_util.h"
+#include "base/scoped_ptr.h"
+#include "base/task.h"
+#include "chrome/browser/browsing_data_appcache_helper.h"
+#include "chrome/browser/browsing_data_database_helper.h"
+#include "chrome/browser/browsing_data_indexed_db_helper.h"
+#include "chrome/browser/browsing_data_local_storage_helper.h"
+#include "chrome/browser/gtk/gtk_chrome_cookie_view.h"
+#include "chrome/browser/gtk/gtk_tree.h"
+#include "net/base/cookie_monster.h"
+
+class CookieDisplayGtk;
+class CookiesTreeModel;
+class CookiesViewTest;
+class Profile;
+
+// CookiesView is thread-hostile, and should only be called on the UI thread.
+// Usage:
+// CookiesView::Show(profile);
+// Once the CookiesView is shown, it is responsible for deleting itself when the
+// user closes the dialog.
+
+class CookiesView : public gtk_tree::TreeAdapter::Delegate {
+ public:
+ virtual ~CookiesView();
+
+ // Create (if necessary) and show the cookie manager window.
+ static void Show(
+ GtkWindow* parent,
+ Profile* profile,
+ BrowsingDataDatabaseHelper* browsing_data_database_helper,
+ BrowsingDataLocalStorageHelper* browsing_data_local_storage_helper,
+ BrowsingDataAppCacheHelper* browsing_data_appcache_helper,
+ BrowsingDataIndexedDBHelper* browsing_data_indexed_db_helper);
+
+ // gtk_tree::TreeAdapter::Delegate implementation.
+ virtual void OnAnyModelUpdateStart();
+ virtual void OnAnyModelUpdate();
+
+ private:
+ CookiesView(
+ GtkWindow* parent,
+ Profile* profile,
+ BrowsingDataDatabaseHelper* browsing_data_database_helper,
+ BrowsingDataLocalStorageHelper* browsing_data_local_storage_helper,
+ BrowsingDataAppCacheHelper* browsing_data_appcache_helper,
+ BrowsingDataIndexedDBHelper* browsing_data_indexed_db_helper);
+
+ // A method only used in unit tests that sets a bit inside this class that
+ // lets it be stack allocated.
+ void TestDestroySynchronously();
+
+ // Initialize the dialog contents and layout.
+ void Init(GtkWindow* parent);
+
+ // Set the initial selection and tree expanded state.
+ void SetInitialTreeState();
+
+ // Set sensitivity of buttons based on selection and filter state.
+ void EnableControls();
+
+ // Remove any cookies that are currently selected.
+ void RemoveSelectedItems();
+
+ CHROMEGTK_CALLBACK_1(CookiesView, void, OnResponse, int);
+ CHROMEGTK_CALLBACK_0(CookiesView, void, OnWindowDestroy);
+ // Callback for the table.
+ CHROMEGTK_CALLBACK_0(CookiesView, void, OnTreeViewSelectionChange);
+ CHROMEGTK_CALLBACK_1(CookiesView, gboolean, OnTreeViewKeyPress,
+ GdkEventKey*);
+ CHROMEGTK_CALLBACK_2(CookiesView, void, OnTreeViewRowExpanded,
+ GtkTreeIter*, GtkTreePath*);
+ // Callbacks for user actions filtering the list.
+ CHROMEGTK_CALLBACK_0(CookiesView, void, OnFilterEntryActivated);
+ CHROMEGTK_CALLBACK_0(CookiesView, void, OnFilterEntryChanged);
+ CHROMEGTK_CALLBACK_0(CookiesView, void, OnFilterClearButtonClicked);
+
+ // Filter the list against the text in |filter_entry_|.
+ void UpdateFilterResults();
+
+
+ // The parent widget.
+ GtkWidget* dialog_;
+
+ // Widgets of the dialog.
+ GtkWidget* description_label_;
+ GtkWidget* filter_entry_;
+ GtkWidget* filter_clear_button_;
+ GtkWidget* remove_button_;
+ GtkWidget* remove_all_button_;
+
+ // The table listing the cookies.
+ GtkWidget* tree_;
+ GtkTreeSelection* selection_;
+
+ GtkWidget* cookie_display_;
+
+ // The profile and related helpers.
+ Profile* profile_;
+ scoped_refptr<BrowsingDataDatabaseHelper> browsing_data_database_helper_;
+ scoped_refptr<BrowsingDataLocalStorageHelper>
+ browsing_data_local_storage_helper_;
+ scoped_refptr<BrowsingDataAppCacheHelper> browsing_data_appcache_helper_;
+ scoped_refptr<BrowsingDataIndexedDBHelper> browsing_data_indexed_db_helper_;
+
+ // A factory to construct Runnable Methods so that we can be called back to
+ // re-evaluate the model after the search query string changes.
+ ScopedRunnableMethodFactory<CookiesView> filter_update_factory_;
+
+ // The Cookies Table model.
+ scoped_ptr<CookiesTreeModel> cookies_tree_model_;
+ scoped_ptr<gtk_tree::TreeAdapter> cookies_tree_adapter_;
+
+ // A reference to the "destroy" signal handler for this object. We disconnect
+ // from this signal if we need to be destroyed synchronously.
+ gulong destroy_handler_;
+
+ // Whether we own |dialog_| or the other way around.
+ bool destroy_dialog_in_destructor_;
+
+ friend class CookiesViewTest;
+ FRIEND_TEST_ALL_PREFIXES(CookiesViewTest, Empty);
+ FRIEND_TEST_ALL_PREFIXES(CookiesViewTest, Noop);
+ FRIEND_TEST_ALL_PREFIXES(CookiesViewTest, RemoveAll);
+ FRIEND_TEST_ALL_PREFIXES(CookiesViewTest, RemoveAllWithDefaultSelected);
+ FRIEND_TEST_ALL_PREFIXES(CookiesViewTest, Remove);
+ FRIEND_TEST_ALL_PREFIXES(CookiesViewTest, RemoveCookiesByType);
+ FRIEND_TEST_ALL_PREFIXES(CookiesViewTest, RemoveByDomain);
+ FRIEND_TEST_ALL_PREFIXES(CookiesViewTest, RemoveDefaultSelection);
+ FRIEND_TEST_ALL_PREFIXES(CookiesViewTest, Filter);
+ FRIEND_TEST_ALL_PREFIXES(CookiesViewTest, FilterRemoveAll);
+ FRIEND_TEST_ALL_PREFIXES(CookiesViewTest, FilterRemove);
+
+ DISALLOW_COPY_AND_ASSIGN(CookiesView);
+};
+
+#endif // CHROME_BROWSER_UI_GTK_OPTIONS_COOKIES_VIEW_H_
« no previous file with comments | « chrome/browser/ui/gtk/options/cookie_filter_page_gtk.cc ('k') | chrome/browser/ui/gtk/options/cookies_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698