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

Side by Side Diff: chrome/browser/ui/webui/options/chromeos/display_options_handler.cc

Issue 14710011: Redesign display options for ChromeOS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/webui/options/chromeos/display_options_handler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/options/chromeos/display_options_handler.h" 5 #include "chrome/browser/ui/webui/options/chromeos/display_options_handler.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "ash/display/display_controller.h" 9 #include "ash/display/display_controller.h"
10 #include "ash/display/display_manager.h" 10 #include "ash/display/display_manager.h"
11 #include "ash/display/output_configurator_animation.h" 11 #include "ash/display/output_configurator_animation.h"
12 #include "ash/screen_ash.h" 12 #include "ash/screen_ash.h"
13 #include "ash/shell.h" 13 #include "ash/shell.h"
14 #include "base/bind.h" 14 #include "base/bind.h"
15 #include "base/logging.h" 15 #include "base/logging.h"
16 #include "base/stringprintf.h" 16 #include "base/stringprintf.h"
17 #include "base/strings/string_number_conversions.h" 17 #include "base/strings/string_number_conversions.h"
18 #include "base/values.h" 18 #include "base/values.h"
19 #include "chrome/browser/chromeos/display/display_preferences.h" 19 #include "chrome/browser/chromeos/display/display_preferences.h"
20 #include "chromeos/display/output_configurator.h" 20 #include "chromeos/display/output_configurator.h"
21 #include "content/public/browser/web_ui.h" 21 #include "content/public/browser/web_ui.h"
22 #include "grit/generated_resources.h" 22 #include "grit/generated_resources.h"
23 #include "ui/base/l10n/l10n_util.h" 23 #include "ui/base/l10n/l10n_util.h"
24 #include "ui/gfx/display.h" 24 #include "ui/gfx/display.h"
25 #include "ui/gfx/rect.h" 25 #include "ui/gfx/rect.h"
26 #include "ui/gfx/safe_integer_conversions.h"
26 #include "ui/gfx/screen.h" 27 #include "ui/gfx/screen.h"
27 28
28 using ash::internal::DisplayManager; 29 using ash::internal::DisplayManager;
29 30
30 namespace chromeos { 31 namespace chromeos {
31 namespace options { 32 namespace options {
32 namespace { 33 namespace {
33 34
34 DisplayManager* GetDisplayManager() { 35 DisplayManager* GetDisplayManager() {
35 return ash::Shell::GetInstance()->display_manager(); 36 return ash::Shell::GetInstance()->display_manager();
36 } 37 }
37 38
39 int64 GetDisplayId(const base::ListValue* args) {
40 // Assumes the display id is specified as the first argument.
James Hawkins 2013/05/20 22:28:10 s/id/ID/
Jun Mukai 2013/05/20 22:37:42 Done.
41 std::string id_value;
42 if (!args->GetString(0, &id_value)) {
43 LOG(ERROR) << "Can't find ID";
44 return gfx::Display::kInvalidDisplayID;
45 }
46
47 int64 display_id = gfx::Display::kInvalidDisplayID;
48 if (!base::StringToInt64(id_value, &display_id)) {
49 LOG(ERROR) << "Invalid display id: " << id_value;
50 return gfx::Display::kInvalidDisplayID;
51 }
52
53 return display_id;
54 }
55
38 } // namespace 56 } // namespace
39 57
40 DisplayOptionsHandler::DisplayOptionsHandler() { 58 DisplayOptionsHandler::DisplayOptionsHandler() {
41 ash::Shell::GetInstance()->display_controller()->AddObserver(this); 59 ash::Shell::GetInstance()->display_controller()->AddObserver(this);
42 } 60 }
43 61
44 DisplayOptionsHandler::~DisplayOptionsHandler() { 62 DisplayOptionsHandler::~DisplayOptionsHandler() {
45 ash::Shell::GetInstance()->display_controller()->RemoveObserver(this); 63 ash::Shell::GetInstance()->display_controller()->RemoveObserver(this);
46 } 64 }
47 65
48 void DisplayOptionsHandler::GetLocalizedValues( 66 void DisplayOptionsHandler::GetLocalizedValues(
49 DictionaryValue* localized_strings) { 67 DictionaryValue* localized_strings) {
50 DCHECK(localized_strings); 68 DCHECK(localized_strings);
51 RegisterTitle(localized_strings, "displayOptionsPage", 69 RegisterTitle(localized_strings, "displayOptionsPage",
52 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_TAB_TITLE); 70 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_TAB_TITLE);
71
72 localized_strings->SetString(
73 "selectedDisplayTitleOptions", l10n_util::GetStringUTF16(
74 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_OPTIONS));
75 localized_strings->SetString(
76 "selectedDisplayTitleResolution", l10n_util::GetStringUTF16(
77 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_RESOLUTION));
78 localized_strings->SetString(
79 "selectedDisplayTitleOrientation", l10n_util::GetStringUTF16(
80 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_ORIENTATION));
81 localized_strings->SetString(
82 "selectedDisplayTitleOverscan", l10n_util::GetStringUTF16(
83 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_OVERSCAN));
84
53 localized_strings->SetString("startMirroring", l10n_util::GetStringUTF16( 85 localized_strings->SetString("startMirroring", l10n_util::GetStringUTF16(
54 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_START_MIRRORING)); 86 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_START_MIRRORING));
55 localized_strings->SetString("stopMirroring", l10n_util::GetStringUTF16( 87 localized_strings->SetString("stopMirroring", l10n_util::GetStringUTF16(
56 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_STOP_MIRRORING)); 88 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_STOP_MIRRORING));
89 localized_strings->SetString("mirroringDisplay", l10n_util::GetStringUTF16(
90 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_MIRRORING_DISPLAY_NAME));
57 localized_strings->SetString("setPrimary", l10n_util::GetStringUTF16( 91 localized_strings->SetString("setPrimary", l10n_util::GetStringUTF16(
58 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_SET_PRIMARY)); 92 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_SET_PRIMARY));
59 localized_strings->SetString("applyResult", l10n_util::GetStringUTF16( 93 localized_strings->SetString("annotateBest", l10n_util::GetStringUTF16(
60 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_APPLY_RESULT)); 94 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_RESOLUTION_ANNOTATION_BEST));
61 localized_strings->SetString("resolution", l10n_util::GetStringUTF16( 95 localized_strings->SetString("orientation0", l10n_util::GetStringUTF16(
62 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_RESOLUTION)); 96 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_STANDARD_ORIENTATION));
63 localized_strings->SetString( 97 localized_strings->SetString("orientation90", l10n_util::GetStringUTF16(
64 "startCalibratingOverscan", l10n_util::GetStringUTF16( 98 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_ORIENTATION_90));
65 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_START_CALIBRATING_OVERSCAN)); 99 localized_strings->SetString("orientation180", l10n_util::GetStringUTF16(
100 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_ORIENTATION_180));
101 localized_strings->SetString("orientation270", l10n_util::GetStringUTF16(
102 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_ORIENTATION_270));
103 localized_strings->SetString(
104 "startCalibratingOverscan", l10n_util::GetStringUTF16(
105 IDS_OPTIONS_SETTINGS_DISPLAY_OPTIONS_START_CALIBRATING_OVERSCAN));
66 } 106 }
67 107
68 void DisplayOptionsHandler::InitializePage() { 108 void DisplayOptionsHandler::InitializePage() {
69 DCHECK(web_ui()); 109 DCHECK(web_ui());
70 UpdateDisplaySectionVisibility();
71 } 110 }
72 111
73 void DisplayOptionsHandler::RegisterMessages() { 112 void DisplayOptionsHandler::RegisterMessages() {
74 web_ui()->RegisterMessageCallback( 113 web_ui()->RegisterMessageCallback(
75 "getDisplayInfo", 114 "getDisplayInfo",
76 base::Bind(&DisplayOptionsHandler::HandleDisplayInfo, 115 base::Bind(&DisplayOptionsHandler::HandleDisplayInfo,
77 base::Unretained(this))); 116 base::Unretained(this)));
78 web_ui()->RegisterMessageCallback( 117 web_ui()->RegisterMessageCallback(
79 "setMirroring", 118 "setMirroring",
80 base::Bind(&DisplayOptionsHandler::HandleMirroring, 119 base::Bind(&DisplayOptionsHandler::HandleMirroring,
81 base::Unretained(this))); 120 base::Unretained(this)));
82 web_ui()->RegisterMessageCallback( 121 web_ui()->RegisterMessageCallback(
83 "setPrimary", 122 "setPrimary",
84 base::Bind(&DisplayOptionsHandler::HandleSetPrimary, 123 base::Bind(&DisplayOptionsHandler::HandleSetPrimary,
85 base::Unretained(this))); 124 base::Unretained(this)));
86 web_ui()->RegisterMessageCallback( 125 web_ui()->RegisterMessageCallback(
87 "setDisplayLayout", 126 "setDisplayLayout",
88 base::Bind(&DisplayOptionsHandler::HandleDisplayLayout, 127 base::Bind(&DisplayOptionsHandler::HandleDisplayLayout,
89 base::Unretained(this))); 128 base::Unretained(this)));
129 web_ui()->RegisterMessageCallback(
130 "setUIScale",
131 base::Bind(&DisplayOptionsHandler::HandleSetUIScale,
132 base::Unretained(this)));
133 web_ui()->RegisterMessageCallback(
134 "setOrientation",
135 base::Bind(&DisplayOptionsHandler::HandleSetOrientation,
136 base::Unretained(this)));
90 } 137 }
91 138
92 void DisplayOptionsHandler::OnDisplayConfigurationChanging() { 139 void DisplayOptionsHandler::OnDisplayConfigurationChanging() {
93 } 140 }
94 141
95 void DisplayOptionsHandler::OnDisplayConfigurationChanged() { 142 void DisplayOptionsHandler::OnDisplayConfigurationChanged() {
96 UpdateDisplaySectionVisibility();
97 SendAllDisplayInfo(); 143 SendAllDisplayInfo();
98 } 144 }
99 145
100 void DisplayOptionsHandler::UpdateDisplaySectionVisibility() {
101 DisplayManager* display_manager = GetDisplayManager();
102 size_t num_displays = display_manager->num_connected_displays();
103 base::FundamentalValue show_options(
104 num_displays > 1 || !display_manager->HasInternalDisplay());
105 web_ui()->CallJavascriptFunction(
106 "options.BrowserOptions.showDisplayOptions", show_options);
107 }
108
109 void DisplayOptionsHandler::SendAllDisplayInfo() { 146 void DisplayOptionsHandler::SendAllDisplayInfo() {
110 DisplayManager* display_manager = GetDisplayManager(); 147 DisplayManager* display_manager = GetDisplayManager();
111 148
112 std::vector<const gfx::Display*> displays; 149 std::vector<const gfx::Display*> displays;
113 for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { 150 for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) {
114 displays.push_back(display_manager->GetDisplayAt(i)); 151 displays.push_back(display_manager->GetDisplayAt(i));
115 } 152 }
116 SendDisplayInfo(displays); 153 SendDisplayInfo(displays);
117 } 154 }
118 155
119 void DisplayOptionsHandler::SendDisplayInfo( 156 void DisplayOptionsHandler::SendDisplayInfo(
120 const std::vector<const gfx::Display*> displays) { 157 const std::vector<const gfx::Display*> displays) {
121 DisplayManager* display_manager = GetDisplayManager(); 158 DisplayManager* display_manager = GetDisplayManager();
122 ash::DisplayController* display_controller = 159 ash::DisplayController* display_controller =
123 ash::Shell::GetInstance()->display_controller(); 160 ash::Shell::GetInstance()->display_controller();
124 base::FundamentalValue mirroring(display_manager->IsMirrored()); 161 base::FundamentalValue mirroring(display_manager->IsMirrored());
125 162
126 int64 primary_id = ash::Shell::GetScreen()->GetPrimaryDisplay().id(); 163 int64 primary_id = ash::Shell::GetScreen()->GetPrimaryDisplay().id();
127 base::ListValue display_info; 164 base::ListValue js_displays;
128 for (size_t i = 0; i < displays.size(); ++i) { 165 for (size_t i = 0; i < displays.size(); ++i) {
129 const gfx::Display* display = displays[i]; 166 const gfx::Display* display = displays[i];
167 const ash::internal::DisplayInfo& display_info =
168 display_manager->GetDisplayInfo(display->id());
130 const gfx::Rect& bounds = display->bounds(); 169 const gfx::Rect& bounds = display->bounds();
131 base::DictionaryValue* js_display = new base::DictionaryValue(); 170 base::DictionaryValue* js_display = new base::DictionaryValue();
132 js_display->SetString("id", base::Int64ToString(display->id())); 171 js_display->SetString("id", base::Int64ToString(display->id()));
133 js_display->SetDouble("x", bounds.x()); 172 js_display->SetInteger("x", bounds.x());
134 js_display->SetDouble("y", bounds.y()); 173 js_display->SetInteger("y", bounds.y());
135 js_display->SetDouble("width", bounds.width()); 174 js_display->SetInteger("width", bounds.width());
136 js_display->SetDouble("height", bounds.height()); 175 js_display->SetInteger("height", bounds.height());
137 js_display->SetString("name", 176 js_display->SetString("name",
138 display_manager->GetDisplayNameForId(display->id())); 177 display_manager->GetDisplayNameForId(display->id()));
139 js_display->SetBoolean("isPrimary", display->id() == primary_id); 178 js_display->SetBoolean("isPrimary", display->id() == primary_id);
140 js_display->SetBoolean("isInternal", display->IsInternal()); 179 js_display->SetBoolean("isInternal", display->IsInternal());
141 display_info.Set(i, js_display); 180 js_display->SetInteger("orientation",
181 static_cast<int>(display_info.rotation()));
182 std::vector<float> ui_scales = DisplayManager::GetScalesForDisplay(
183 display_info);
184 base::ListValue* js_scales = new base::ListValue();
185 gfx::SizeF base_size = display_info.bounds_in_pixel().size();
186 base_size.Scale(1.0f / display->device_scale_factor());
187 if (display_info.rotation() == gfx::Display::ROTATE_90 ||
188 display_info.rotation() == gfx::Display::ROTATE_270) {
189 float tmp = base_size.width();
190 base_size.set_width(base_size.height());
191 base_size.set_height(tmp);
192 }
193
194 for (size_t i = 0; i < ui_scales.size(); ++i) {
195 base::DictionaryValue* scale_info = new base::DictionaryValue();
196 scale_info->SetDouble("scale", ui_scales[i]);
197 scale_info->SetInteger(
198 "width", gfx::ToFlooredInt(base_size.width() * ui_scales[i]));
199 scale_info->SetInteger(
200 "height", gfx::ToFlooredInt(base_size.height() * ui_scales[i]));
201 scale_info->SetBoolean("selected",
202 display_info.ui_scale() == ui_scales[i]);
203 js_scales->Append(scale_info);
204 }
205 js_display->Set("uiScales", js_scales);
206 js_displays.Append(js_display);
142 } 207 }
143 208
144 scoped_ptr<base::Value> layout_value(base::Value::CreateNullValue()); 209 scoped_ptr<base::Value> layout_value(base::Value::CreateNullValue());
145 scoped_ptr<base::Value> offset_value(base::Value::CreateNullValue()); 210 scoped_ptr<base::Value> offset_value(base::Value::CreateNullValue());
146 if (display_manager->GetNumDisplays() > 1) { 211 if (display_manager->GetNumDisplays() > 1) {
147 const ash::DisplayLayout layout = 212 const ash::DisplayLayout layout =
148 display_controller->GetCurrentDisplayLayout(); 213 display_controller->GetCurrentDisplayLayout();
149 layout_value.reset(new base::FundamentalValue(layout.position)); 214 layout_value.reset(new base::FundamentalValue(layout.position));
150 offset_value.reset(new base::FundamentalValue(layout.offset)); 215 offset_value.reset(new base::FundamentalValue(layout.offset));
151 } 216 }
152 217
153 web_ui()->CallJavascriptFunction( 218 web_ui()->CallJavascriptFunction(
154 "options.DisplayOptions.setDisplayInfo", 219 "options.DisplayOptions.setDisplayInfo",
155 mirroring, display_info, *layout_value.get(), *offset_value.get()); 220 mirroring, js_displays, *layout_value.get(), *offset_value.get());
156 } 221 }
157 222
158 void DisplayOptionsHandler::OnFadeOutForMirroringFinished(bool is_mirroring) { 223 void DisplayOptionsHandler::OnFadeOutForMirroringFinished(bool is_mirroring) {
159 ash::Shell::GetInstance()->display_manager()->SetMirrorMode(is_mirroring); 224 ash::Shell::GetInstance()->display_manager()->SetMirrorMode(is_mirroring);
160 // Not necessary to start fade-in animation. OutputConfigurator will do that. 225 // Not necessary to start fade-in animation. OutputConfigurator will do that.
161 } 226 }
162 227
163 void DisplayOptionsHandler::OnFadeOutForDisplayLayoutFinished( 228 void DisplayOptionsHandler::OnFadeOutForDisplayLayoutFinished(
164 int position, int offset) { 229 int position, int offset) {
165 SetCurrentAndDefaultDisplayLayout( 230 SetCurrentAndDefaultDisplayLayout(
(...skipping 13 matching lines...) Expand all
179 args->GetBoolean(0, &is_mirroring); 244 args->GetBoolean(0, &is_mirroring);
180 ash::Shell::GetInstance()->output_configurator_animation()-> 245 ash::Shell::GetInstance()->output_configurator_animation()->
181 StartFadeOutAnimation(base::Bind( 246 StartFadeOutAnimation(base::Bind(
182 &DisplayOptionsHandler::OnFadeOutForMirroringFinished, 247 &DisplayOptionsHandler::OnFadeOutForMirroringFinished,
183 base::Unretained(this), 248 base::Unretained(this),
184 is_mirroring)); 249 is_mirroring));
185 } 250 }
186 251
187 void DisplayOptionsHandler::HandleSetPrimary(const base::ListValue* args) { 252 void DisplayOptionsHandler::HandleSetPrimary(const base::ListValue* args) {
188 DCHECK(!args->empty()); 253 DCHECK(!args->empty());
254 int display_id = GetDisplayId(args);
255 if (display_id == gfx::Display::kInvalidDisplayID)
256 return;
189 257
190 int64 display_id = gfx::Display::kInvalidDisplayID;
191 std::string id_value;
192 if (!args->GetString(0, &id_value)) {
193 LOG(ERROR) << "Can't find ID";
194 return;
195 }
196
197 if (!base::StringToInt64(id_value, &display_id) ||
198 display_id == gfx::Display::kInvalidDisplayID) {
199 LOG(ERROR) << "Invalid parameter: " << id_value;
200 return;
201 }
202 ash::Shell::GetInstance()->display_controller()-> 258 ash::Shell::GetInstance()->display_controller()->
203 SetPrimaryDisplayId(display_id); 259 SetPrimaryDisplayId(display_id);
204 } 260 }
205 261
206 void DisplayOptionsHandler::HandleDisplayLayout(const base::ListValue* args) { 262 void DisplayOptionsHandler::HandleDisplayLayout(const base::ListValue* args) {
207 double layout = -1; 263 double layout = -1;
208 double offset = -1; 264 double offset = -1;
209 if (!args->GetDouble(0, &layout) || !args->GetDouble(1, &offset)) { 265 if (!args->GetDouble(0, &layout) || !args->GetDouble(1, &offset)) {
210 LOG(ERROR) << "Invalid parameter"; 266 LOG(ERROR) << "Invalid parameter";
211 SendAllDisplayInfo(); 267 SendAllDisplayInfo();
212 return; 268 return;
213 } 269 }
214 DCHECK_LE(ash::DisplayLayout::TOP, layout); 270 DCHECK_LE(ash::DisplayLayout::TOP, layout);
215 DCHECK_GE(ash::DisplayLayout::LEFT, layout); 271 DCHECK_GE(ash::DisplayLayout::LEFT, layout);
216 ash::Shell::GetInstance()->output_configurator_animation()-> 272 ash::Shell::GetInstance()->output_configurator_animation()->
217 StartFadeOutAnimation(base::Bind( 273 StartFadeOutAnimation(base::Bind(
218 &DisplayOptionsHandler::OnFadeOutForDisplayLayoutFinished, 274 &DisplayOptionsHandler::OnFadeOutForDisplayLayoutFinished,
219 base::Unretained(this), 275 base::Unretained(this),
220 static_cast<int>(layout), 276 static_cast<int>(layout),
221 static_cast<int>(offset))); 277 static_cast<int>(offset)));
222 } 278 }
223 279
280 void DisplayOptionsHandler::HandleSetUIScale(const base::ListValue* args) {
281 DCHECK(!args->empty());
282
283 int64 display_id = GetDisplayId(args);
284 if (display_id == gfx::Display::kInvalidDisplayID)
285 return;
286
287 std::string ui_scale_value;
288 double ui_scale = 0.0f;
289 if (!args->GetString(1, &ui_scale_value)) {
290 LOG(ERROR) << "Ca't find new ui_scale";
291 return;
292 }
293 if (!base::StringToDouble(ui_scale_value, &ui_scale)) {
294 LOG(ERROR) << "Invalid ui_scale: " << ui_scale_value;
295 return;
296 }
297
298 GetDisplayManager()->SetDisplayUIScale(display_id, ui_scale);
299 }
300
301 void DisplayOptionsHandler::HandleSetOrientation(const base::ListValue* args) {
302 DCHECK(!args->empty());
303
304 int64 display_id = GetDisplayId(args);
305 if (display_id == gfx::Display::kInvalidDisplayID)
306 return;
307
308 std::string rotation_value;
309 gfx::Display::Rotation new_rotation = gfx::Display::ROTATE_0;
310 if (!args->GetString(1, &rotation_value)) {
311 LOG(ERROR) << "Can't find new orientation";
312 return;
313 }
314 if (rotation_value == "90")
315 new_rotation = gfx::Display::ROTATE_90;
316 else if (rotation_value == "180")
317 new_rotation = gfx::Display::ROTATE_180;
318 else if (rotation_value == "270")
319 new_rotation = gfx::Display::ROTATE_270;
320 else if (rotation_value != "0")
321 LOG(ERROR) << "Invalid rotation: " << rotation_value << " Falls back to 0";
322
323 GetDisplayManager()->SetDisplayRotation(display_id, new_rotation);
324 }
325
224 } // namespace options 326 } // namespace options
225 } // namespace chromeos 327 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options/chromeos/display_options_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698