| 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..581143c5ceb0df461cea900257f57c2aaba8a123
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/webui/options/chromeos/date_time_options_handler.cc
|
| @@ -0,0 +1,67 @@
|
| +// 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"
|
| +
|
| +namespace chromeos {
|
| +namespace options {
|
| +
|
| +DateTimeOptionsHandler::DateTimeOptionsHandler()
|
| + : can_set_time_(false), page_initialized_(false) {
|
| +}
|
| +
|
| +DateTimeOptionsHandler::~DateTimeOptionsHandler() {
|
| + DBusThreadManager::Get()->GetSystemClockClient()->RemoveObserver(this);
|
| +}
|
| +
|
| +void DateTimeOptionsHandler::RegisterMessages() {
|
| + // Callback for set time button.
|
| + web_ui()->RegisterMessageCallback(
|
| + "showSetTime",
|
| + base::Bind(&DateTimeOptionsHandler::HandleShowSetTime,
|
| + base::Unretained(this)));
|
| +}
|
| +
|
| +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::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
|
|
|