diff options
4 files changed, 71 insertions, 23 deletions
diff --git a/chrome/browser/dom_ui/personal_options_handler.cc b/chrome/browser/dom_ui/personal_options_handler.cc index a46f65c..4697605 100644 --- a/chrome/browser/dom_ui/personal_options_handler.cc +++ b/chrome/browser/dom_ui/personal_options_handler.cc @@ -11,12 +11,14 @@ #include "base/stl_util-inl.h" #include "base/utf_string_conversions.h" #include "base/values.h" -#include "chrome/common/notification_service.h" -#include "chrome/common/chrome_paths.h" +#include "chrome/browser/browser_list.h" #include "chrome/browser/browser_process.h" +#include "chrome/browser/options_page_base.h" #include "chrome/browser/profile.h" #include "chrome/browser/profile_manager.h" #include "chrome/browser/sync/profile_sync_service.h" +#include "chrome/common/notification_service.h" +#include "chrome/common/chrome_paths.h" #include "grit/browser_resources.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" @@ -65,19 +67,19 @@ void PersonalOptionsHandler::GetLocalizedValues( localized_strings->SetString("import_data", l10n_util::GetStringUTF16(IDS_OPTIONS_IMPORT_DATA_BUTTON)); -#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_OPENBSD) - localized_strings->SetString("appearance", - l10n_util::GetStringUTF16(IDS_APPEARANCE_GROUP_NAME)); - localized_strings->SetString("themes_GTK_button", - l10n_util::GetStringUTF16(IDS_THEMES_GTK_BUTTON)); - localized_strings->SetString("themes_set_classic", - l10n_util::GetStringUTF16(IDS_THEMES_SET_CLASSIC)); - localized_strings->SetString("showWindow_decorations_radio", - l10n_util::GetStringUTF16(IDS_SHOW_WINDOW_DECORATIONS_RADIO)); - localized_strings->SetString("hideWindow_decorations_radio", - l10n_util::GetStringUTF16(IDS_HIDE_WINDOW_DECORATIONS_RADIO)); - localized_strings->SetString("themes_gallery", - l10n_util::GetStringUTF16(IDS_THEMES_GALLERY_BUTTON)); +#if defined(TOOLKIT_GTK) + localized_strings->SetString(L"appearance", + l10n_util::GetString(IDS_APPEARANCE_GROUP_NAME)); + localized_strings->SetString(L"themes_GTK_button", + l10n_util::GetString(IDS_THEMES_GTK_BUTTON)); + localized_strings->SetString(L"themes_set_classic", + l10n_util::GetString(IDS_THEMES_SET_CLASSIC)); + localized_strings->SetString(L"showWindow_decorations_radio", + l10n_util::GetString(IDS_SHOW_WINDOW_DECORATIONS_RADIO)); + localized_strings->SetString(L"hideWindow_decorations_radio", + l10n_util::GetString(IDS_HIDE_WINDOW_DECORATIONS_RADIO)); + localized_strings->SetString(L"themes_gallery", + l10n_util::GetString(IDS_THEMES_GALLERY_BUTTON)); #else localized_strings->SetString("themes", l10n_util::GetStringUTF16(IDS_THEMES_GROUP_NAME)); @@ -94,7 +96,18 @@ void PersonalOptionsHandler::RegisterMessages() { DCHECK(dom_ui_); dom_ui_->RegisterMessageCallback( "getSyncStatus", - NewCallback(this,&PersonalOptionsHandler::SetSyncStatusUIString)); + NewCallback(this, &PersonalOptionsHandler::SetSyncStatusUIString)); + dom_ui_->RegisterMessageCallback( + "themesReset", + NewCallback(this, &PersonalOptionsHandler::ThemesReset)); + dom_ui_->RegisterMessageCallback( + "themesGallery", + NewCallback(this, &PersonalOptionsHandler::ThemesGallery)); +#if defined(TOOLKIT_GTK) + dom_ui_->RegisterMessageCallback( + "themesSetGTK", + NewCallback(this, &PersonalOptionsHandler::ThemesSetGTK)); +#endif } void PersonalOptionsHandler::SetSyncStatusUIString(const Value* value) { @@ -112,3 +125,29 @@ void PersonalOptionsHandler::SetSyncStatusUIString(const Value* value) { *(status_string.get())); } } + +void PersonalOptionsHandler::ThemesReset(const Value* value) { + DCHECK(dom_ui_); + + UserMetricsRecordAction(UserMetricsAction("Options_ThemesReset"), + dom_ui_->GetProfile()->GetPrefs()); + dom_ui_->GetProfile()->ClearTheme(); +} + +void PersonalOptionsHandler::ThemesGallery(const Value* value) { + DCHECK(dom_ui_); + + UserMetricsRecordAction(UserMetricsAction("Options_ThemesGallery"), + dom_ui_->GetProfile()->GetPrefs()); + BrowserList::GetLastActive()->OpenThemeGalleryTabAndActivate(); +} + +#if defined(TOOLKIT_GTK) +void PersonalOptionsHandler::ThemesSetGTK(const Value* value) { + DCHECK(dom_ui_); + + UserMetricsRecordAction(UserMetricsAction("Options_GtkThemeSet"), + dom_ui_->GetProfile()->GetPrefs()); + dom_ui_->GetProfile()->SetNativeTheme(); +} +#endif diff --git a/chrome/browser/dom_ui/personal_options_handler.h b/chrome/browser/dom_ui/personal_options_handler.h index 93f898d..bb4afa0 100644 --- a/chrome/browser/dom_ui/personal_options_handler.h +++ b/chrome/browser/dom_ui/personal_options_handler.h @@ -23,6 +23,11 @@ class PersonalOptionsHandler : public OptionsPageUIHandler { private: virtual void SetSyncStatusUIString(const Value* value); + virtual void ThemesReset(const Value* value); + virtual void ThemesGallery(const Value* value); +#if defined(TOOLKIT_GTK) + virtual void ThemesSetGTK(const Value* value); +#endif DISALLOW_COPY_AND_ASSIGN(PersonalOptionsHandler); }; diff --git a/chrome/browser/resources/options/personal_options.html b/chrome/browser/resources/options/personal_options.html index 2b3bae2..4065852 100644 --- a/chrome/browser/resources/options/personal_options.html +++ b/chrome/browser/resources/options/personal_options.html @@ -63,8 +63,7 @@ i18n-content="themes_GTK_button"></button> <button id="themes_set_classic" i18n-content="themes_set_classic"></button> - <a i18n-content="themes_gallery" target="_blank" - href="https://tools.google.com/chrome/intl/en/themes/index.html"></a> + <a i18n-content="themes_gallery" id="themes-gallery" href=""></a> </div> <label> <input name="decorations_radio" @@ -86,8 +85,7 @@ <h3 i18n-content="themes"></h3> <div> <button id="themes_reset" i18n-content="themes_reset"></button> - <a i18n-content="themes_gallery" target="_blank" - href="https://tools.google.com/chrome/intl/en/themes/index.html"></a> + <a i18n-content="themes_gallery" id="themes-gallery" href=""></a> </div> </section> </if> diff --git a/chrome/browser/resources/options/personal_options.js b/chrome/browser/resources/options/personal_options.js index 98a4a27..f3b5c49 100644 --- a/chrome/browser/resources/options/personal_options.js +++ b/chrome/browser/resources/options/personal_options.js @@ -72,18 +72,24 @@ cr.define('options', function() { if(!cr.isChromeOS && navigator.platform.match(/linux|BSD/i)) { $('themes_GTK_button').onclick = function(event) { - //TODO(sargrass): Show themes GTK dialog here. + chrome.send('themesSetGTK'); }; $('themes_set_classic').onclick = function(event) { - //TODO(sargrass): Show themes set classic dialog here. + chrome.send('themesReset'); }; + $('themes-gallery').onclick = function(event) { + chrome.send('themesGallery'); + } } if(cr.isMac || cr.isWindows || cr.isChromeOS) { $('themes_reset').onclick = function(event) { - //TODO(sargrass): Show themes reset dialog here. + chrome.send('themesReset'); }; + $('themes-gallery').onclick = function(event) { + chrome.send('themesGallery'); + } } }, |