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

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

Issue 1588843002: Update display_options.js to better match chrome.system.display (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@issue_576375_display1
Patch Set: Rebase Created 4 years, 11 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
« 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 <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <string> 10 #include <string>
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 result->SetDouble("refreshRate", mode.refresh_rate); 141 result->SetDouble("refreshRate", mode.refresh_rate);
142 result->SetBoolean( 142 result->SetBoolean(
143 "isBest", is_internal ? (mode.ui_scale == 1.0f) : mode.native); 143 "isBest", is_internal ? (mode.ui_scale == 1.0f) : mode.native);
144 result->SetBoolean("isNative", mode.native); 144 result->SetBoolean("isNative", mode.native);
145 result->SetBoolean( 145 result->SetBoolean(
146 "selected", mode.IsEquivalent( 146 "selected", mode.IsEquivalent(
147 GetDisplayManager()->GetActiveModeForDisplayId(display_id))); 147 GetDisplayManager()->GetActiveModeForDisplayId(display_id)));
148 return result; 148 return result;
149 } 149 }
150 150
151 base::DictionaryValue* ConvertBoundsToValue(const gfx::Rect& bounds) {
152 base::DictionaryValue* result = new base::DictionaryValue();
153 result->SetInteger("left", bounds.x());
154 result->SetInteger("top", bounds.y());
155 result->SetInteger("width", bounds.width());
156 result->SetInteger("height", bounds.height());
157 return result;
158 }
159
151 } // namespace 160 } // namespace
152 161
153 DisplayOptionsHandler::DisplayOptionsHandler() { 162 DisplayOptionsHandler::DisplayOptionsHandler() {
154 // ash::Shell doesn't exist in Athena. 163 // ash::Shell doesn't exist in Athena.
155 // See: http://crbug.com/416961 164 // See: http://crbug.com/416961
156 ash::Shell::GetInstance()->window_tree_host_manager()->AddObserver(this); 165 ash::Shell::GetInstance()->window_tree_host_manager()->AddObserver(this);
157 } 166 }
158 167
159 DisplayOptionsHandler::~DisplayOptionsHandler() { 168 DisplayOptionsHandler::~DisplayOptionsHandler() {
160 // ash::Shell doesn't exist in Athena. 169 // ash::Shell doesn't exist in Athena.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 base::Unretained(this))); 241 base::Unretained(this)));
233 web_ui()->RegisterMessageCallback( 242 web_ui()->RegisterMessageCallback(
234 "setDisplayLayout", 243 "setDisplayLayout",
235 base::Bind(&DisplayOptionsHandler::HandleSetDisplayLayout, 244 base::Bind(&DisplayOptionsHandler::HandleSetDisplayLayout,
236 base::Unretained(this))); 245 base::Unretained(this)));
237 web_ui()->RegisterMessageCallback( 246 web_ui()->RegisterMessageCallback(
238 "setDisplayMode", 247 "setDisplayMode",
239 base::Bind(&DisplayOptionsHandler::HandleSetDisplayMode, 248 base::Bind(&DisplayOptionsHandler::HandleSetDisplayMode,
240 base::Unretained(this))); 249 base::Unretained(this)));
241 web_ui()->RegisterMessageCallback( 250 web_ui()->RegisterMessageCallback(
242 "setOrientation", 251 "setRotation",
243 base::Bind(&DisplayOptionsHandler::HandleSetOrientation, 252 base::Bind(&DisplayOptionsHandler::HandleSetRotation,
244 base::Unretained(this))); 253 base::Unretained(this)));
245 web_ui()->RegisterMessageCallback( 254 web_ui()->RegisterMessageCallback(
246 "setColorProfile", 255 "setColorProfile",
247 base::Bind(&DisplayOptionsHandler::HandleSetColorProfile, 256 base::Bind(&DisplayOptionsHandler::HandleSetColorProfile,
248 base::Unretained(this))); 257 base::Unretained(this)));
249 web_ui()->RegisterMessageCallback( 258 web_ui()->RegisterMessageCallback(
250 "setUnifiedDesktopEnabled", 259 "setUnifiedDesktopEnabled",
251 base::Bind(&DisplayOptionsHandler::HandleSetUnifiedDesktopEnabled, 260 base::Bind(&DisplayOptionsHandler::HandleSetUnifiedDesktopEnabled,
252 base::Unretained(this))); 261 base::Unretained(this)));
253 } 262 }
(...skipping 24 matching lines...) Expand all
278 else if (display_manager->IsInUnifiedMode()) 287 else if (display_manager->IsInUnifiedMode())
279 display_mode = ash::DisplayManager::UNIFIED; 288 display_mode = ash::DisplayManager::UNIFIED;
280 else 289 else
281 display_mode = ash::DisplayManager::EXTENDED; 290 display_mode = ash::DisplayManager::EXTENDED;
282 base::FundamentalValue mode(static_cast<int>(display_mode)); 291 base::FundamentalValue mode(static_cast<int>(display_mode));
283 int64_t primary_id = ash::Shell::GetScreen()->GetPrimaryDisplay().id(); 292 int64_t primary_id = ash::Shell::GetScreen()->GetPrimaryDisplay().id();
284 base::ListValue js_displays; 293 base::ListValue js_displays;
285 for (const gfx::Display& display : displays) { 294 for (const gfx::Display& display : displays) {
286 const ash::DisplayInfo& display_info = 295 const ash::DisplayInfo& display_info =
287 display_manager->GetDisplayInfo(display.id()); 296 display_manager->GetDisplayInfo(display.id());
288 const gfx::Rect& bounds = display.bounds();
289 base::DictionaryValue* js_display = new base::DictionaryValue(); 297 base::DictionaryValue* js_display = new base::DictionaryValue();
290 js_display->SetString("id", base::Int64ToString(display.id())); 298 js_display->SetString("id", base::Int64ToString(display.id()));
291 js_display->SetInteger("x", bounds.x());
292 js_display->SetInteger("y", bounds.y());
293 js_display->SetInteger("width", bounds.width());
294 js_display->SetInteger("height", bounds.height());
295 js_display->SetString("name", 299 js_display->SetString("name",
296 display_manager->GetDisplayNameForId(display.id())); 300 display_manager->GetDisplayNameForId(display.id()));
301 base::DictionaryValue* display_bounds =
302 ConvertBoundsToValue(display.bounds());
303 js_display->Set("bounds", display_bounds);
297 js_display->SetBoolean("isPrimary", display.id() == primary_id); 304 js_display->SetBoolean("isPrimary", display.id() == primary_id);
298 js_display->SetBoolean("isInternal", display.IsInternal()); 305 js_display->SetBoolean("isInternal", display.IsInternal());
299 js_display->SetInteger("orientation", 306 js_display->SetInteger("rotation", display.RotationAsDegree());
300 static_cast<int>(display_info.GetActiveRotation()));
301 307
302 base::ListValue* js_resolutions = new base::ListValue(); 308 base::ListValue* js_resolutions = new base::ListValue();
303 for (const ash::DisplayMode& display_mode : display_info.display_modes()) { 309 for (const ash::DisplayMode& display_mode : display_info.display_modes()) {
304 js_resolutions->Append( 310 js_resolutions->Append(
305 ConvertDisplayModeToValue(display.id(), display_mode)); 311 ConvertDisplayModeToValue(display.id(), display_mode));
306 } 312 }
307 js_display->Set("resolutions", js_resolutions); 313 js_display->Set("resolutions", js_resolutions);
308 314
309 js_display->SetInteger("colorProfile", display_info.color_profile()); 315 js_display->SetInteger("colorProfileId", display_info.color_profile());
310 base::ListValue* available_color_profiles = new base::ListValue(); 316 base::ListValue* available_color_profiles = new base::ListValue();
311 for (const auto& color_profile : display_info.available_color_profiles()) { 317 for (const auto& color_profile : display_info.available_color_profiles()) {
312 const base::string16 profile_name = GetColorProfileName(color_profile); 318 const base::string16 profile_name = GetColorProfileName(color_profile);
313 if (profile_name.empty()) 319 if (profile_name.empty())
314 continue; 320 continue;
315 base::DictionaryValue* color_profile_dict = new base::DictionaryValue(); 321 base::DictionaryValue* color_profile_dict = new base::DictionaryValue();
316 color_profile_dict->SetInteger("profileId", color_profile); 322 color_profile_dict->SetInteger("profileId", color_profile);
317 color_profile_dict->SetString("name", profile_name); 323 color_profile_dict->SetString("name", profile_name);
318 available_color_profiles->Append(color_profile_dict); 324 available_color_profiles->Append(color_profile_dict);
319 } 325 }
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 if (gfx::Display::IsInternalDisplayId(display_id)) 424 if (gfx::Display::IsInternalDisplayId(display_id))
419 return; 425 return;
420 // For external displays, show a notification confirming the resolution 426 // For external displays, show a notification confirming the resolution
421 // change. 427 // change.
422 ash::Shell::GetInstance() 428 ash::Shell::GetInstance()
423 ->resolution_notification_controller() 429 ->resolution_notification_controller()
424 ->PrepareNotification(display_id, current_mode, mode, 430 ->PrepareNotification(display_id, current_mode, mode,
425 base::Bind(&chromeos::StoreDisplayPrefs)); 431 base::Bind(&chromeos::StoreDisplayPrefs));
426 } 432 }
427 433
428 void DisplayOptionsHandler::HandleSetOrientation(const base::ListValue* args) { 434 void DisplayOptionsHandler::HandleSetRotation(const base::ListValue* args) {
429 DCHECK(!args->empty()); 435 DCHECK(!args->empty());
430 436
431 int64_t display_id = GetDisplayId(args); 437 int64_t display_id = GetDisplayId(args);
432 if (display_id == gfx::Display::kInvalidDisplayID) 438 if (display_id == gfx::Display::kInvalidDisplayID)
433 return; 439 return;
434 440
435 std::string rotation_value; 441 int rotation_value = 0;
436 gfx::Display::Rotation new_rotation = gfx::Display::ROTATE_0; 442 if (!args->GetInteger(1, &rotation_value)) {
437 if (!args->GetString(1, &rotation_value)) { 443 LOG(ERROR) << "Can't parse rotation: " << args;
438 LOG(ERROR) << "Can't find new orientation";
439 return; 444 return;
440 } 445 }
441 if (rotation_value == "90") 446 gfx::Display::Rotation new_rotation = gfx::Display::ROTATE_0;
447 if (rotation_value == 90)
442 new_rotation = gfx::Display::ROTATE_90; 448 new_rotation = gfx::Display::ROTATE_90;
443 else if (rotation_value == "180") 449 else if (rotation_value == 180)
444 new_rotation = gfx::Display::ROTATE_180; 450 new_rotation = gfx::Display::ROTATE_180;
445 else if (rotation_value == "270") 451 else if (rotation_value == 270)
446 new_rotation = gfx::Display::ROTATE_270; 452 new_rotation = gfx::Display::ROTATE_270;
447 else if (rotation_value != "0") 453 else if (rotation_value != 0)
448 LOG(ERROR) << "Invalid rotation: " << rotation_value << " Falls back to 0"; 454 LOG(ERROR) << "Invalid rotation: " << rotation_value << " Falls back to 0";
449 455
450 content::RecordAction( 456 content::RecordAction(
451 base::UserMetricsAction("Options_DisplaySetOrientation")); 457 base::UserMetricsAction("Options_DisplaySetOrientation"));
452 GetDisplayConfigurationController()->SetDisplayRotation( 458 GetDisplayConfigurationController()->SetDisplayRotation(
453 display_id, new_rotation, gfx::Display::ROTATION_SOURCE_USER, 459 display_id, new_rotation, gfx::Display::ROTATION_SOURCE_USER,
454 true /* user_action */); 460 true /* user_action */);
455 } 461 }
456 462
457 void DisplayOptionsHandler::HandleSetColorProfile(const base::ListValue* args) { 463 void DisplayOptionsHandler::HandleSetColorProfile(const base::ListValue* args) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 bool enable = false; 498 bool enable = false;
493 if (!args->GetBoolean(0, &enable)) 499 if (!args->GetBoolean(0, &enable))
494 NOTREACHED(); 500 NOTREACHED();
495 501
496 GetDisplayManager()->SetDefaultMultiDisplayModeForCurrentDisplays( 502 GetDisplayManager()->SetDefaultMultiDisplayModeForCurrentDisplays(
497 enable ? ash::DisplayManager::UNIFIED : ash::DisplayManager::EXTENDED); 503 enable ? ash::DisplayManager::UNIFIED : ash::DisplayManager::EXTENDED);
498 } 504 }
499 505
500 } // namespace options 506 } // namespace options
501 } // namespace chromeos 507 } // 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