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

Unified Diff: chrome/browser/ui/gtk/options/general_page_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/options/fonts_page_gtk.cc ('k') | chrome/browser/ui/gtk/options/general_page_gtk.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/gtk/options/general_page_gtk.h
diff --git a/chrome/browser/ui/gtk/options/general_page_gtk.h b/chrome/browser/ui/gtk/options/general_page_gtk.h
new file mode 100644
index 0000000000000000000000000000000000000000..22038912e53e5f849509d9b4a89f0ce1b2539be5
--- /dev/null
+++ b/chrome/browser/ui/gtk/options/general_page_gtk.h
@@ -0,0 +1,179 @@
+// 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_GENERAL_PAGE_GTK_H_
+#define CHROME_BROWSER_UI_GTK_OPTIONS_GENERAL_PAGE_GTK_H_
+#pragma once
+
+#include <gtk/gtk.h>
+
+#include <string>
+
+#include "app/gtk_signal.h"
+#include "chrome/browser/gtk/gtk_tree.h"
+#include "chrome/browser/gtk/options/managed_prefs_banner_gtk.h"
+#include "chrome/browser/prefs/pref_change_registrar.h"
+#include "chrome/browser/prefs/pref_member.h"
+#include "chrome/browser/search_engines/template_url_model_observer.h"
+#include "chrome/browser/shell_integration.h"
+#include "chrome/browser/ui/options/options_page_base.h"
+#include "googleurl/src/gurl.h"
+
+class AccessibleWidgetHelper;
+class CustomHomePagesTableModel;
+class Profile;
+class TemplateURLModel;
+
+class GeneralPageGtk : public OptionsPageBase,
+ public TemplateURLModelObserver,
+ public ShellIntegration::DefaultBrowserObserver,
+ public gtk_tree::TableAdapter::Delegate {
+ public:
+ explicit GeneralPageGtk(Profile* profile);
+ ~GeneralPageGtk();
+
+ GtkWidget* get_page_widget() const { return page_; }
+
+ private:
+ GtkWindow* GetWindow();
+
+ // Overridden from OptionsPageBase
+ virtual void NotifyPrefChanged(const std::string* 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();
+
+ // Set the custom url list using the pages currently open
+ void SetCustomUrlListFromCurrentPages();
+
+ // Callback from UrlPickerDialogGtk, for adding custom urls manually.
+ // If a single row in the list is selected, the new url will be inserted
+ // before that row. Otherwise the new row will be added to the end.
+ void OnAddCustomUrl(const GURL& url);
+
+ // Removes urls that are currently selected
+ void RemoveSelectedCustomUrls();
+
+ // Overridden from TemplateURLModelObserver.
+ // Populates the default search engine combobox from the model.
+ virtual void OnTemplateURLModelChanged();
+
+ // Set the default search engine pref to the combo box active item.
+ void SetDefaultSearchEngineFromComboBox();
+
+ // Set the default search engine combo box state.
+ void EnableDefaultSearchEngineComboBox(bool enable);
+
+ // Copies the home page preferences from the gui controls to
+ // kNewTabPageIsHomePage and kHomePage. If an empty or null-host
+ // URL is specified, then we revert to using NewTab page as the Homepage.
+ void UpdateHomepagePrefs();
+
+ // Enables or disables the field for entering a custom homepage URL.
+ void EnableHomepageURLField(bool enabled);
+
+ // Sets the state and enables/disables the radio buttons that control
+ // if the home page is the new tab page.
+ void UpdateHomepageIsNewTabRadio(bool homepage_is_new_tab, bool enabled);
+
+ CHROMEGTK_CALLBACK_0(GeneralPageGtk, void, OnStartupRadioToggled);
+ CHROMEGTK_CALLBACK_0(GeneralPageGtk, void, OnStartupAddCustomPageClicked);
+ CHROMEGTK_CALLBACK_0(GeneralPageGtk, void, OnStartupRemoveCustomPageClicked);
+ CHROMEGTK_CALLBACK_0(GeneralPageGtk, void, OnStartupUseCurrentPageClicked);
+ CHROMEGTK_CALLBACK_0(GeneralPageGtk, void, OnNewTabIsHomePageToggled);
+ CHROMEGTK_CALLBACK_0(GeneralPageGtk, void, OnHomepageUseUrlEntryChanged);
+ CHROMEGTK_CALLBACK_0(GeneralPageGtk, void, OnShowHomeButtonToggled);
+ CHROMEGTK_CALLBACK_0(GeneralPageGtk, void, OnDefaultSearchEngineChanged);
+ CHROMEGTK_CALLBACK_0(GeneralPageGtk, void,
+ OnDefaultSearchManageEnginesClicked);
+ CHROMEGTK_CALLBACK_0(GeneralPageGtk, void, OnInstantToggled);
+ CHROMEGTK_CALLBACK_0(GeneralPageGtk, void, OnBrowserUseAsDefaultClicked);
+ CHROMEGTK_CALLBACK_1(GeneralPageGtk, void, OnInstantLabelSizeAllocate,
+ GtkAllocation*);
+ CHROMEGTK_CALLBACK_0(GeneralPageGtk, void, OnSearchLearnMoreClicked);
+
+ CHROMEG_CALLBACK_0(GeneralPageGtk, void, OnStartupPagesSelectionChanged,
+ GtkTreeSelection*);
+
+ // Enables/Disables the controls associated with the custom start pages
+ // option if that preference is not selected.
+ void EnableCustomHomepagesControls(bool enable);
+
+ // ShellIntegration::DefaultBrowserObserver implementation.
+ virtual void SetDefaultBrowserUIState(
+ ShellIntegration::DefaultBrowserUIState state);
+
+ // gtk_tree::TableAdapter::Delegate implementation.
+ virtual void SetColumnValues(int row, GtkTreeIter* iter);
+
+ // Widgets of the startup group
+ GtkWidget* startup_homepage_radio_;
+ GtkWidget* startup_last_session_radio_;
+ GtkWidget* startup_custom_radio_;
+ GtkWidget* startup_custom_pages_tree_;
+ GtkListStore* startup_custom_pages_store_;
+ GtkTreeSelection* startup_custom_pages_selection_;
+ GtkWidget* startup_add_custom_page_button_;
+ GtkWidget* startup_remove_custom_page_button_;
+ GtkWidget* startup_use_current_page_button_;
+
+ // The model for |startup_custom_pages_store_|.
+ scoped_ptr<CustomHomePagesTableModel> startup_custom_pages_table_model_;
+ scoped_ptr<gtk_tree::TableAdapter> startup_custom_pages_table_adapter_;
+
+ // 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 and data of the default search group
+ GtkWidget* default_search_engine_combobox_;
+ GtkListStore* default_search_engines_model_;
+ GtkWidget* default_search_manage_engines_button_;
+ TemplateURLModel* template_url_model_;
+ GtkWidget* instant_checkbox_;
+ // This widget acts as the indent for the instant warning label.
+ GtkWidget* instant_indent_;
+ BooleanPrefMember instant_;
+
+ // Widgets of the default browser group
+ GtkWidget* default_browser_status_label_;
+ GtkWidget* default_browser_use_as_default_button_;
+
+ // The parent GtkTable widget
+ GtkWidget* page_;
+
+ // Flag to ignore gtk callbacks while we are populating default search urls.
+ bool default_search_initializing_;
+
+ // Flag to ignore gtk callbacks while we are loading prefs, to avoid
+ // then turning around and saving them again.
+ bool initializing_;
+
+ // The helper object that performs default browser set/check tasks.
+ scoped_refptr<ShellIntegration::DefaultBrowserWorker> default_browser_worker_;
+
+ // Helper object to manage accessibility metadata.
+ scoped_ptr<AccessibleWidgetHelper> accessible_widget_helper_;
+
+ // Tracks managed preference warning banner state.
+ ManagedPrefsBannerGtk managed_prefs_banner_;
+
+ PrefChangeRegistrar registrar_;
+
+ DISALLOW_COPY_AND_ASSIGN(GeneralPageGtk);
+};
+
+#endif // CHROME_BROWSER_UI_GTK_OPTIONS_GENERAL_PAGE_GTK_H_
« no previous file with comments | « chrome/browser/ui/gtk/options/fonts_page_gtk.cc ('k') | chrome/browser/ui/gtk/options/general_page_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698