summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/options/general_page_gtk.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/gtk/options/general_page_gtk.h')
-rw-r--r--chrome/browser/gtk/options/general_page_gtk.h106
1 files changed, 106 insertions, 0 deletions
diff --git a/chrome/browser/gtk/options/general_page_gtk.h b/chrome/browser/gtk/options/general_page_gtk.h
new file mode 100644
index 0000000..2bb2003
--- /dev/null
+++ b/chrome/browser/gtk/options/general_page_gtk.h
@@ -0,0 +1,106 @@
+// Copyright (c) 2006-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_OPTIONS_GENERAL_PAGE_GTK_H_
+#define CHROME_BROWSER_GTK_OPTIONS_GENERAL_PAGE_GTK_H_
+
+#include <gtk/gtk.h>
+
+#include "chrome/browser/options_page_base.h"
+#include "chrome/browser/profile.h"
+#include "chrome/common/pref_member.h"
+#include "googleurl/src/gurl.h"
+
+class GeneralPageGtk : public OptionsPageBase {
+ public:
+ explicit GeneralPageGtk(Profile* profile);
+ ~GeneralPageGtk();
+
+ GtkWidget* get_page_widget() const {
+ return page_;
+ }
+
+ private:
+ // Overridden from OptionsPageBase
+ virtual void NotifyPrefChanged(const std::wstring* pref_name);
+ virtual void HighlightGroup(OptionsGroup highlight_group);
+
+ // Initialize the option group widgets, return their container
+ GtkWidget* InitStartupGroup();
+ GtkWidget* InitHomepageGroup();
+ GtkWidget* InitDefaultSearchGroup();
+ GtkWidget* InitDefaultBrowserGroup();
+
+ // Saves the startup preference from the values in the ui
+ void SaveStartupPref();
+
+ // Sets the home page preferences for kNewTabPageIsHomePage and kHomePage.
+ // If a blank string is passed in we revert to using NewTab page as the Home
+ // page. When setting the Home Page to NewTab page, we preserve the old value
+ // of kHomePage (we don't overwrite it).
+ void SetHomepage(const GURL& homepage);
+
+ // Sets the home page pref using the value in the entry box
+ void SetHomepageFromEntry();
+
+ // Callback for startup radio buttons
+ static void OnStartupRadioToggled(GtkToggleButton* toggle_button,
+ GeneralPageGtk* general_page);
+
+ // Callback for new tab behavior radio buttons
+ static void OnNewTabIsHomePageToggled(GtkToggleButton* toggle_button,
+ GeneralPageGtk* general_page);
+
+ // Callback for homepage URL entry
+ static void OnHomepageUseUrlEntryChanged(GtkEditable* editable,
+ GeneralPageGtk* general_page);
+
+ // Callback for Show Home Button option
+ static void OnShowHomeButtonToggled(GtkToggleButton* toggle_button,
+ GeneralPageGtk* general_page);
+
+ // Callback for use as default browser button
+ static void OnBrowserUseAsDefaultClicked(GtkButton* button,
+ GeneralPageGtk* general_page);
+
+ // Enables/Disables the controls associated with the custom start pages
+ // option if that preference is not selected.
+ void EnableCustomHomepagesControls(bool enable);
+
+ // Sets the UI state to match
+ void SetDefaultBrowserUIState(bool is_default);
+
+ // Widgets of the startup group
+ GtkWidget* startup_homepage_radio_;
+ GtkWidget* startup_last_session_radio_;
+ GtkWidget* startup_custom_radio_;
+ GtkWidget* startup_custom_pages_tree_;
+ GtkWidget* startup_add_custom_page_button_;
+ GtkWidget* startup_remove_custom_page_button_;
+ GtkWidget* startup_use_current_page_button_;
+
+ // Widgets and prefs of the homepage group
+ GtkWidget* homepage_use_newtab_radio_;
+ GtkWidget* homepage_use_url_radio_;
+ GtkWidget* homepage_use_url_entry_;
+ GtkWidget* homepage_show_home_button_checkbox_;
+ BooleanPrefMember new_tab_page_is_home_page_;
+ StringPrefMember homepage_;
+ BooleanPrefMember show_home_button_;
+
+ // Widgets of the default search group
+ GtkWidget* default_search_engine_combobox_;
+ GtkWidget* default_search_manage_engines_button_;
+
+ // Widgets of the default browser group
+ GtkWidget* default_browser_status_label_;
+ GtkWidget* default_browser_use_as_default_button_;
+
+ // The parent GtkTable widget
+ GtkWidget* page_;
+
+ DISALLOW_COPY_AND_ASSIGN(GeneralPageGtk);
+};
+
+#endif // CHROME_BROWSER_GTK_OPTIONS_GENERAL_PAGE_GTK_H_