Index: chrome/browser/ui/gtk/options/content_page_gtk.h |
diff --git a/chrome/browser/ui/gtk/options/content_page_gtk.h b/chrome/browser/ui/gtk/options/content_page_gtk.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4f47aa4078f6405ffa3a8f838c47d630606fe05a |
--- /dev/null |
+++ b/chrome/browser/ui/gtk/options/content_page_gtk.h |
@@ -0,0 +1,120 @@ |
+// 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_OPTIONS_CONTENT_PAGE_GTK_H_ |
+#define CHROME_BROWSER_UI_GTK_OPTIONS_CONTENT_PAGE_GTK_H_ |
+#pragma once |
+ |
+#include <gtk/gtk.h> |
+ |
+#include <string> |
+ |
+#include "app/gtk_signal.h" |
+#include "chrome/browser/autofill/personal_data_manager.h" |
+#include "chrome/browser/gtk/options/managed_prefs_banner_gtk.h" |
+#include "chrome/browser/prefs/pref_member.h" |
+#include "chrome/browser/sync/profile_sync_service.h" |
+#include "chrome/browser/ui/options/options_page_base.h" |
+ |
+class Profile; |
+ |
+class ContentPageGtk : public OptionsPageBase, |
+ public ProfileSyncServiceObserver { |
+ public: |
+ explicit ContentPageGtk(Profile* profile); |
+ ~ContentPageGtk(); |
+ |
+ GtkWidget* get_page_widget() const { |
+ return page_; |
+ } |
+ |
+ // ProfileSyncServiceObserver method. |
+ virtual void OnStateChanged(); |
+ |
+ private: |
+ // Updates various sync controls based on the current sync state. |
+ void UpdateSyncControls(); |
+ |
+ // Overridden from OptionsPageBase. |
+ virtual void NotifyPrefChanged(const std::string* pref_name); |
+ |
+ // Overridden from OptionsPageBase. |
+ virtual void Observe(NotificationType type, |
+ const NotificationSource& source, |
+ const NotificationDetails& details); |
+ |
+ // Update content area after a theme changed. |
+ void ObserveThemeChanged(); |
+ |
+ // Initialize the option group widgets, return their container. |
+ GtkWidget* InitPasswordSavingGroup(); |
+ GtkWidget* InitFormAutoFillGroup(); |
+ GtkWidget* InitBrowsingDataGroup(); |
+ GtkWidget* InitThemesGroup(); |
+ GtkWidget* InitSyncGroup(); |
+ |
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnImportButtonClicked); |
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnGtkThemeButtonClicked); |
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnResetDefaultThemeButtonClicked); |
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnGetThemesButtonClicked); |
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnSystemTitleBarRadioToggled); |
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnShowPasswordsButtonClicked); |
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnPasswordRadioToggled); |
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnAutoFillButtonClicked); |
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnSyncStartStopButtonClicked); |
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnSyncCustomizeButtonClicked); |
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnSyncActionLinkClicked); |
+ CHROMEGTK_CALLBACK_1(ContentPageGtk, void, OnStopSyncDialogResponse, int); |
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnPrivacyDashboardLinkClicked); |
+ |
+ // Widgets for the Password saving group. |
+ GtkWidget* passwords_asktosave_radio_; |
+ GtkWidget* passwords_neversave_radio_; |
+ GtkWidget* show_passwords_button_; |
+ |
+ // Widgets for the AutoFill group. |
+ GtkWidget* autofill_button_; |
+ |
+ // Widgets for the Appearance group. |
+ GtkWidget* system_title_bar_show_radio_; |
+ GtkWidget* system_title_bar_hide_radio_; |
+ GtkWidget* themes_reset_button_; |
+#if defined(TOOLKIT_GTK) |
+ GtkWidget* gtk_theme_button_; |
+#endif |
+ |
+ // Widgets for the Sync group. |
+ GtkWidget* sync_status_label_background_; |
+ GtkWidget* sync_status_label_; |
+ GtkWidget* sync_action_link_background_; |
+ GtkWidget* sync_action_link_; |
+ GtkWidget* sync_start_stop_button_; |
+ GtkWidget* sync_customize_button_; |
+ GtkWidget* privacy_dashboard_link_; |
+ |
+ // The parent GtkTable widget |
+ GtkWidget* page_; |
+ |
+ // Pref members. |
+ BooleanPrefMember ask_to_save_passwords_; |
+ BooleanPrefMember form_autofill_enabled_; |
+ BooleanPrefMember use_custom_chrome_frame_; |
+ |
+ // Flag to ignore gtk callbacks while we are loading prefs, to avoid |
+ // then turning around and saving them again. |
+ bool initializing_; |
+ |
+ NotificationRegistrar registrar_; |
+ |
+ // Cached pointer to ProfileSyncService, if it exists. Kept up to date |
+ // and NULL-ed out on destruction. |
+ ProfileSyncService* sync_service_; |
+ |
+ // Tracks managed preference warning banner state. |
+ ManagedPrefsBannerGtk managed_prefs_banner_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ContentPageGtk); |
+}; |
+ |
+#endif // CHROME_BROWSER_UI_GTK_OPTIONS_CONTENT_PAGE_GTK_H_ |