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

Unified Diff: chrome/browser/ui/webui/options/chromeos/date_time_options_handler.cc

Issue 247663003: Date and Time dialog for when the clock isn't synced. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase, single quotes in browsertest js Created 6 years, 8 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/ui/webui/options/chromeos/date_time_options_handler.cc
diff --git a/chrome/browser/ui/webui/options/chromeos/date_time_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/date_time_options_handler.cc
new file mode 100644
index 0000000000000000000000000000000000000000..f78d1840ccb3b1de339a81f4566ed88ec6a8e423
--- /dev/null
+++ b/chrome/browser/ui/webui/options/chromeos/date_time_options_handler.cc
@@ -0,0 +1,81 @@
+// Copyright 2014 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/ui/webui/options/chromeos/date_time_options_handler.h"
+
+#include "base/bind.h"
+#include "base/bind_helpers.h"
+#include "base/values.h"
+#include "chrome/browser/chromeos/set_time_dialog.h"
+#include "chromeos/dbus/dbus_thread_manager.h"
+#include "chromeos/dbus/system_clock_client.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/browser/web_contents_view.h"
+#include "content/public/browser/web_ui.h"
+#include "grit/generated_resources.h"
+#include "ui/base/l10n/l10n_util.h"
+
+namespace chromeos {
+namespace options {
+
+DateTimeOptionsHandler::DateTimeOptionsHandler()
+ : can_set_time_(false), page_initialized_(false) {
+}
+
+DateTimeOptionsHandler::~DateTimeOptionsHandler() {
+ DBusThreadManager::Get()->GetSystemClockClient()->RemoveObserver(this);
+}
+
+void DateTimeOptionsHandler::GetLocalizedValues(
+ base::DictionaryValue* localized_strings) {
+ DCHECK(localized_strings);
+
+ localized_strings->SetString(
+ "setTimeButton",
+ l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_SET_TIME_BUTTON));
+ localized_strings->SetString(
+ "timeSyncedExplanation",
+ l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_TIME_SYNCED_EXPLANATION));
+};
+
+void DateTimeOptionsHandler::InitializeHandler() {
+ SystemClockClient* system_clock_client =
+ DBusThreadManager::Get()->GetSystemClockClient();
+ system_clock_client->AddObserver(this);
+
+ can_set_time_ = system_clock_client->CanSetTime();
+ SystemClockCanSetTimeChanged(can_set_time_);
+}
+
+void DateTimeOptionsHandler::InitializePage() {
+ page_initialized_ = true;
+ SystemClockCanSetTimeChanged(can_set_time_);
+}
+
+void DateTimeOptionsHandler::RegisterMessages() {
+ // Callback for set time button.
+ web_ui()->RegisterMessageCallback(
+ "showSetTime",
+ base::Bind(&DateTimeOptionsHandler::HandleShowSetTime,
+ base::Unretained(this)));
+}
+
+void DateTimeOptionsHandler::SystemClockCanSetTimeChanged(bool can_set_time) {
+ if (page_initialized_) {
+ web_ui()->CallJavascriptFunction("BrowserOptions.setCanSetTime",
+ base::FundamentalValue(can_set_time));
+ }
+ can_set_time_ = can_set_time;
+}
+
+void DateTimeOptionsHandler::HandleShowSetTime(const base::ListValue* args) {
+ // Make sure the clock status hasn't changed since the button was clicked.
+ if (can_set_time_) {
+ SetTimeDialog::ShowDialog(
+ web_ui()->GetWebContents()->GetView()->GetTopLevelNativeWindow());
+ }
+}
+
+} // namespace options
+} // namespace chromeos
« no previous file with comments | « chrome/browser/ui/webui/options/chromeos/date_time_options_handler.h ('k') | chrome/browser/ui/webui/options/options_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698