Index: chrome/browser/ui/webui/options2/chromeos/display_options_handler.cc |
diff --git a/chrome/browser/ui/webui/options2/chromeos/display_options_handler.cc b/chrome/browser/ui/webui/options2/chromeos/display_options_handler.cc |
deleted file mode 100644 |
index 4d78f46b8d07a52ffb77246e1a12ff0200fa127b..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/webui/options2/chromeos/display_options_handler.cc |
+++ /dev/null |
@@ -1,196 +0,0 @@ |
-// Copyright (c) 2012 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/options2/chromeos/display_options_handler.h" |
- |
-#include <string> |
- |
-#include "ash/display/display_controller.h" |
-#include "ash/display/output_configurator_animation.h" |
-#include "ash/shell.h" |
-#include "base/bind.h" |
-#include "base/json/json_value_converter.h" |
-#include "base/logging.h" |
-#include "base/stringprintf.h" |
-#include "base/values.h" |
-#include "chrome/browser/prefs/pref_service.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/common/pref_names.h" |
-#include "chromeos/display/output_configurator.h" |
-#include "content/public/browser/web_ui.h" |
-#include "grit/generated_resources.h" |
-#include "ui/aura/env.h" |
-#include "ui/aura/display_manager.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/gfx/display.h" |
-#include "ui/gfx/rect.h" |
- |
-namespace chromeos { |
-namespace options { |
- |
-using ash::internal::DisplayController; |
- |
-DisplayOptionsHandler::DisplayOptionsHandler() { |
- aura::Env::GetInstance()->display_manager()->AddObserver(this); |
-} |
- |
-DisplayOptionsHandler::~DisplayOptionsHandler() { |
- aura::Env::GetInstance()->display_manager()->RemoveObserver(this); |
-} |
- |
-void DisplayOptionsHandler::GetLocalizedValues( |
- DictionaryValue* localized_strings) { |
- DCHECK(localized_strings); |
- RegisterTitle(localized_strings, "displayOptionsPage", |
- IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_TAB_TITLE); |
- localized_strings->SetString("startMirroring", l10n_util::GetStringUTF16( |
- IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_START_MIRRORING)); |
- localized_strings->SetString("stopMirroring", l10n_util::GetStringUTF16( |
- IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_STOP_MIRRORING)); |
- localized_strings->SetString("applyResult", l10n_util::GetStringUTF16( |
- IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_APPLY_RESULT)); |
- localized_strings->SetString("resolution", l10n_util::GetStringUTF16( |
- IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_RESOLUTION)); |
-} |
- |
-void DisplayOptionsHandler::InitializePage() { |
- DCHECK(web_ui()); |
- UpdateDisplaySectionVisibility(); |
-} |
- |
-void DisplayOptionsHandler::RegisterMessages() { |
- web_ui()->RegisterMessageCallback( |
- "getDisplayInfo", |
- base::Bind(&DisplayOptionsHandler::HandleDisplayInfo, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback( |
- "setMirroring", |
- base::Bind(&DisplayOptionsHandler::HandleMirroring, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback( |
- "setDisplayLayout", |
- base::Bind(&DisplayOptionsHandler::HandleDisplayLayout, |
- base::Unretained(this))); |
-} |
- |
-void DisplayOptionsHandler::OnDisplayBoundsChanged( |
- const gfx::Display& display) { |
- SendDisplayInfo(); |
-} |
- |
-void DisplayOptionsHandler::OnDisplayAdded(const gfx::Display& new_display) { |
- UpdateDisplaySectionVisibility(); |
- SendDisplayInfo(); |
-} |
- |
-void DisplayOptionsHandler::OnDisplayRemoved(const gfx::Display& old_display) { |
- UpdateDisplaySectionVisibility(); |
- SendDisplayInfo(); |
-} |
- |
-void DisplayOptionsHandler::UpdateDisplaySectionVisibility() { |
- chromeos::OutputState output_state = |
- ash::Shell::GetInstance()->output_configurator()->output_state(); |
- base::FundamentalValue show_options( |
- DisplayController::IsExtendedDesktopEnabled() && |
- output_state != chromeos::STATE_INVALID && |
- output_state != chromeos::STATE_HEADLESS && |
- output_state != chromeos::STATE_SINGLE); |
- web_ui()->CallJavascriptFunction( |
- "options.BrowserOptions.showDisplayOptions", show_options); |
-} |
- |
-void DisplayOptionsHandler::SendDisplayInfo() { |
- aura::DisplayManager* display_manager = |
- aura::Env::GetInstance()->display_manager(); |
- chromeos::OutputConfigurator* output_configurator = |
- ash::Shell::GetInstance()->output_configurator(); |
- base::FundamentalValue mirroring( |
- output_configurator->output_state() == chromeos::STATE_DUAL_MIRROR); |
- |
- base::ListValue displays; |
- for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { |
- const gfx::Display* display = display_manager->GetDisplayAt(i); |
- const gfx::Rect& bounds = display->bounds(); |
- base::DictionaryValue* js_display = new base::DictionaryValue(); |
- js_display->SetDouble("id", display->id()); |
- js_display->SetDouble("x", bounds.x()); |
- js_display->SetDouble("y", bounds.y()); |
- js_display->SetDouble("width", bounds.width()); |
- js_display->SetDouble("height", bounds.height()); |
- // Do not have good data for displays such like vendor/model names. |
- // So here just uses 'Display 1' or 'Display 2' for their names. |
- // TODO(mukai,oshima): support vendor/model names and use it. |
- js_display->SetString("name", base::StringPrintf( |
- "Display %d", static_cast<int>(i) + 1)); |
- displays.Set(i, js_display); |
- } |
- |
- PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
- base::FundamentalValue layout( |
- pref_service->GetInteger(prefs::kSecondaryDisplayLayout)); |
- base::FundamentalValue offset( |
- pref_service->GetInteger(prefs::kSecondaryDisplayOffset)); |
- |
- web_ui()->CallJavascriptFunction( |
- "options.DisplayOptions.setDisplayInfo", |
- mirroring, displays, layout, offset); |
-} |
- |
-void DisplayOptionsHandler::FadeOutForMirroringFinished(bool is_mirroring) { |
- // We use 'PRIMARY_ONLY' for non-mirroring state for now. |
- // TODO(mukai): fix this and support multiple display modes. |
- chromeos::OutputState new_state = |
- is_mirroring ? STATE_DUAL_MIRROR : STATE_DUAL_PRIMARY_ONLY; |
- ash::Shell::GetInstance()->output_configurator()->SetDisplayMode(new_state); |
- SendDisplayInfo(); |
- // Not necessary to start fade-in animation. OutputConfigurator will do that. |
-} |
- |
-void DisplayOptionsHandler::FadeOutForDisplayLayoutFinished( |
- int layout, int offset) { |
- PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
- pref_service->SetInteger(prefs::kSecondaryDisplayLayout, layout); |
- pref_service->SetInteger(prefs::kSecondaryDisplayOffset, offset); |
- SendDisplayInfo(); |
- ash::Shell::GetInstance()->output_configurator_animation()-> |
- StartFadeInAnimation(); |
-} |
- |
-void DisplayOptionsHandler::HandleDisplayInfo( |
- const base::ListValue* unused_args) { |
- SendDisplayInfo(); |
-} |
- |
-void DisplayOptionsHandler::HandleMirroring(const base::ListValue* args) { |
- DCHECK(!args->empty()); |
- bool is_mirroring = false; |
- args->GetBoolean(0, &is_mirroring); |
- ash::Shell::GetInstance()->output_configurator_animation()-> |
- StartFadeOutAnimation(base::Bind( |
- &DisplayOptionsHandler::FadeOutForMirroringFinished, |
- base::Unretained(this), |
- is_mirroring)); |
-} |
- |
-void DisplayOptionsHandler::HandleDisplayLayout(const base::ListValue* args) { |
- double layout = -1; |
- double offset = -1; |
- if (!args->GetDouble(0, &layout) || !args->GetDouble(1, &offset)) { |
- LOG(ERROR) << "Invalid parameter"; |
- SendDisplayInfo(); |
- return; |
- } |
- DCHECK_LE(DisplayController::TOP, layout); |
- DCHECK_GE(DisplayController::LEFT, layout); |
- ash::Shell::GetInstance()->output_configurator_animation()-> |
- StartFadeOutAnimation(base::Bind( |
- &DisplayOptionsHandler::FadeOutForDisplayLayoutFinished, |
- base::Unretained(this), |
- static_cast<int>(layout), |
- static_cast<int>(offset))); |
-} |
- |
-} // namespace options |
-} // namespace chromeos |