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

Unified Diff: chrome/browser/chromeos/dom_ui/system_options_handler.cc

Issue 2781005: Option dialog DOM UI - ChromeOS System page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 6 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
Index: chrome/browser/chromeos/dom_ui/system_options_handler.cc
===================================================================
--- chrome/browser/chromeos/dom_ui/system_options_handler.cc (revision 0)
+++ chrome/browser/chromeos/dom_ui/system_options_handler.cc (revision 0)
@@ -0,0 +1,139 @@
+// 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.
+
+#include "chrome/browser/chromeos/dom_ui/system_options_handler.h"
+
+#include "app/l10n_util.h"
+#include "app/resource_bundle.h"
+#include "base/basictypes.h"
+#include "base/callback.h"
+#include "base/i18n/time_formatting.h"
+#include "base/stl_util-inl.h"
+#include "base/time.h"
+#include "base/utf_string_conversions.h"
+#include "base/values.h"
+#include "chrome/common/notification_service.h"
+#include "grit/browser_resources.h"
+#include "grit/chromium_strings.h"
+#include "grit/generated_resources.h"
+#include "grit/locale_settings.h"
+#include "grit/theme_resources.h"
+
+static const char* kTimeZonesUtf8[] = {
+ "Pacific/Samoa",
+ "US/Hawaii",
+ "US/Alaska",
+ "US/Pacific",
+ "US/Mountain",
+ "US/Central",
+ "US/Eastern",
+ "America/Santiago",
+ "America/Sao_Paulo",
+ "Atlantic/South_Georgia",
+ "Atlantic/Cape_Verde",
+ "Europe/London",
+ "Europe/Rome",
+ "Europe/Helsinki",
+ "Europe/Moscow",
+ "Asia/Dubai",
+ "Asia/Karachi",
+ "Asia/Dhaka",
+ "Asia/Bangkok",
+ "Asia/Hong_Kong",
+ "Asia/Tokyo",
+ "Australia/Sydney",
+ "Asia/Magadan",
+ "Pacific/Auckland" };
+
+SystemOptionsHandler::SystemOptionsHandler() {
+ // TODO(chocobo): For now, add all the GMT timezones.
+ // We may eventually want to use icu::TimeZone::createEnumeration()
+ // to list all the timezones and pick the ones we want to show.
+ // NOTE: This currently does not handle daylight savings properly
+ // b/c this is just a manually selected list of timezones that
+ // happen to span the GMT-11 to GMT+12 Today. When daylight savings
+ // kick in, this list might have more than one timezone in the same
+ // GMT bucket.
+ for (size_t i = 0; i < arraysize(kTimeZonesUtf8); i++) {
+ timezones_.push_back(icu::TimeZone::createTimeZone(
+ icu::UnicodeString::fromUTF8(kTimeZonesUtf8[i])));
+ }
+}
+
+SystemOptionsHandler::~SystemOptionsHandler() {
+ STLDeleteElements(&timezones_);
+}
+
+void SystemOptionsHandler::GetLocalizedValues(
+ DictionaryValue* localized_strings) {
+ DCHECK(localized_strings);
+ // System page - ChromeOS
+ localized_strings->SetString(L"datetime_title",
+ l10n_util::GetString(IDS_OPTIONS_SETTINGS_SECTION_TITLE_DATETIME));
+ localized_strings->SetString(L"timezone",
+ l10n_util::GetString(IDS_OPTIONS_SETTINGS_TIMEZONE_DESCRIPTION));
+
+ localized_strings->SetString(L"touchpad",
+ l10n_util::GetString(IDS_OPTIONS_SETTINGS_SECTION_TITLE_TOUCHPAD));
+ localized_strings->SetString(L"enable_tap_to_click",
+ l10n_util::GetString(
+ IDS_OPTIONS_SETTINGS_TAP_TO_CLICK_ENABLED_DESCRIPTION));
+ localized_strings->SetString(L"enable_vert_edge_scroll",
+ l10n_util::GetString(
+ IDS_OPTIONS_SETTINGS_VERT_EDGE_SCROLL_ENABLED_DESCRIPTION));
+ localized_strings->SetString(L"sensitivity",
+ l10n_util::GetString(IDS_OPTIONS_SETTINGS_SENSITIVITY_DESCRIPTION));
+ localized_strings->SetString(L"speed_factor",
+ l10n_util::GetString(IDS_OPTIONS_SETTINGS_SPEED_FACTOR_DESCRIPTION));
+
+ localized_strings->SetString(L"language",
+ l10n_util::GetString(IDS_OPTIONS_SETTINGS_SECTION_TITLE_LANGUAGE));
+ localized_strings->SetString(L"language_customize",
+ l10n_util::GetString(IDS_OPTIONS_SETTINGS_LANGUAGES_CUSTOMIZE));
+
+ localized_strings->SetString(L"accessibility_title",
+ l10n_util::GetString(IDS_OPTIONS_SETTINGS_SECTION_TITLE_ACCESSIBILITY));
+ localized_strings->SetString(L"accessibility",
+ l10n_util::GetString(IDS_OPTIONS_SETTINGS_ACCESSIBILITY_DESCRIPTION));
+
+ localized_strings->Set(L"timezoneMap", GetTimezoneMap());
+}
+
+DictionaryValue* SystemOptionsHandler::GetTimezoneMap() {
+ DictionaryValue* timezoneMap = new DictionaryValue();
+ for (std::vector<icu::TimeZone*>::iterator iter = timezones_.begin();
+ iter != timezones_.end(); ++iter) {
+ const icu::TimeZone* timezone = *iter;
+ timezoneMap->SetString(GetTimezoneID(timezone).c_str(),
+ GetTimezoneName(timezone));
+ }
+ return timezoneMap;
+}
+
+std::string SystemOptionsHandler::GetTimezoneName(
+ const icu::TimeZone* timezone) {
+ DCHECK(timezone);
+ icu::UnicodeString name;
+ timezone->getDisplayName(name);
+ std::string output;
+ UTF16ToUTF8(name.getBuffer(), name.length(), &output);
+ int hour_offset = timezone->getRawOffset() / 3600000;
+ const char* format;
+ if (hour_offset == 0)
+ format = "(GMT) ";
+ else
+ format = "(GMT%+d) ";
+
+ return StringPrintf(format, hour_offset) + output;
+}
+
+std::wstring SystemOptionsHandler::GetTimezoneID(
+ const icu::TimeZone* timezone) {
+ DCHECK(timezone);
+ icu::UnicodeString id;
+ timezone->getID(id);
+ std::wstring output;
+ UTF16ToWide(id.getBuffer(), id.length(), &output);
+ return output;
+}
Property changes on: chrome/browser/chromeos/dom_ui/system_options_handler.cc
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698