From 6b9881e78ae0f1eaf6729058ce0e206bfddbbfc1 Mon Sep 17 00:00:00 2001 From: "johnnyg@chromium.org" Date: Wed, 14 Jul 2010 01:29:54 +0000 Subject: Privacy dashboard link on linux. BUG=48844 TEST=run with --show-privacy-dashboard-link Review URL: http://codereview.chromium.org/2943010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52255 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/gtk/options/content_page_gtk.cc | 25 +++++++++++++++++++++++++ chrome/browser/gtk/options/content_page_gtk.h | 2 ++ 2 files changed, 27 insertions(+) (limited to 'chrome/browser/gtk') diff --git a/chrome/browser/gtk/options/content_page_gtk.cc b/chrome/browser/gtk/options/content_page_gtk.cc index 6307f15..01672d0 100644 --- a/chrome/browser/gtk/options/content_page_gtk.cc +++ b/chrome/browser/gtk/options/content_page_gtk.cc @@ -78,6 +78,7 @@ ContentPageGtk::ContentPageGtk(Profile* profile) sync_start_stop_button_(NULL), #endif sync_customize_button_(NULL), + privacy_dashboard_link_(NULL), initializing_(true), sync_service_(NULL) { if (profile->GetProfileSyncService()) { @@ -393,6 +394,26 @@ GtkWidget* ContentPageGtk::InitSyncGroup() { gtk_box_pack_start(GTK_BOX(button_hbox), sync_customize_button_, FALSE, FALSE, 0); + // Add the privacy dashboard link. Only show it if the command line + // switch has been provided. + if (CommandLine::ForCurrentProcess()->HasSwitch( + switches::kShowPrivacyDashboardLink)) { + GtkWidget* dashboard_link_hbox = + gtk_hbox_new(FALSE, gtk_util::kLabelSpacing); + GtkWidget* dashboard_link_background = gtk_event_box_new(); + std::string dashboard_link_label = + l10n_util::GetStringUTF8(IDS_SYNC_PRIVACY_DASHBOARD_LINK_LABEL); + privacy_dashboard_link_ = + gtk_chrome_link_button_new(dashboard_link_label.c_str()); + g_signal_connect(privacy_dashboard_link_, "clicked", + G_CALLBACK(OnPrivacyDashboardLinkClickedThunk), this); + gtk_box_pack_start(GTK_BOX(vbox), dashboard_link_hbox, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(dashboard_link_hbox), + dashboard_link_background, FALSE, FALSE, 0); + gtk_container_add(GTK_CONTAINER(dashboard_link_background), + privacy_dashboard_link_); + } + return vbox; } @@ -618,3 +639,7 @@ void ContentPageGtk::OnStopSyncDialogResponse(GtkWidget* widget, int response) { } gtk_widget_destroy(widget); } + +void ContentPageGtk::OnPrivacyDashboardLinkClicked(GtkWidget* widget) { + BrowserList::GetLastActive()->OpenPrivacyDashboardTabAndActivate(); +} diff --git a/chrome/browser/gtk/options/content_page_gtk.h b/chrome/browser/gtk/options/content_page_gtk.h index b89908c..ec1ea01 100644 --- a/chrome/browser/gtk/options/content_page_gtk.h +++ b/chrome/browser/gtk/options/content_page_gtk.h @@ -62,6 +62,7 @@ class ContentPageGtk : public OptionsPageBase, 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_; @@ -89,6 +90,7 @@ class ContentPageGtk : public OptionsPageBase, GtkWidget* sync_start_stop_button_; #endif GtkWidget* sync_customize_button_; + GtkWidget* privacy_dashboard_link_; // The parent GtkTable widget GtkWidget* page_; -- cgit v1.1