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

Side by Side Diff: ui/aura/monitor_manager.cc

Issue 9960042: Refactor screen/monitor so that gfx::Screen returns monitor object. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync Created 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/aura/monitor_manager.h ('k') | ui/aura/monitor_observer.h » ('j') | 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 "ui/aura/monitor_manager.h" 5 #include "ui/aura/monitor_manager.h"
6 6
7 #include <stdio.h> 7 #include <stdio.h>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "ui/aura/env.h" 10 #include "ui/aura/env.h"
11 #include "ui/aura/monitor.h" 11 #include "ui/aura/monitor_observer.h"
12 #include "ui/aura/root_window.h" 12 #include "ui/aura/root_window.h"
13 #include "ui/aura/root_window_host.h" 13 #include "ui/aura/root_window_host.h"
14 #include "ui/gfx/monitor.h"
14 #include "ui/gfx/rect.h" 15 #include "ui/gfx/rect.h"
15 16
16 namespace aura { 17 namespace aura {
17 namespace { 18 namespace {
18 // Default bounds for a monitor. 19 // Default bounds for a monitor.
19 static const int kDefaultHostWindowX = 200; 20 static const int kDefaultHostWindowX = 200;
20 static const int kDefaultHostWindowY = 200; 21 static const int kDefaultHostWindowY = 200;
21 static const int kDefaultHostWindowWidth = 1280; 22 static const int kDefaultHostWindowWidth = 1280;
22 static const int kDefaultHostWindowHeight = 1024; 23 static const int kDefaultHostWindowHeight = 1024;
23 } // namespace 24 } // namespace
24 25
25 // static 26 // static
26 bool MonitorManager::use_fullscreen_host_window_ = false; 27 bool MonitorManager::use_fullscreen_host_window_ = false;
27 28
28 // static 29 // static
29 Monitor* MonitorManager::CreateMonitorFromSpec(const std::string& spec) { 30 gfx::Monitor MonitorManager::CreateMonitorFromSpec(const std::string& spec) {
31 static int synthesized_monitor_id = 1000;
30 gfx::Rect bounds(kDefaultHostWindowX, kDefaultHostWindowY, 32 gfx::Rect bounds(kDefaultHostWindowX, kDefaultHostWindowY,
31 kDefaultHostWindowWidth, kDefaultHostWindowHeight); 33 kDefaultHostWindowWidth, kDefaultHostWindowHeight);
32 int x = 0, y = 0, width, height; 34 int x = 0, y = 0, width, height;
33 float scale = 1.0f; 35 float scale = 1.0f;
34 if (sscanf(spec.c_str(), "%dx%d*%f", &width, &height, &scale) >= 2) { 36 if (sscanf(spec.c_str(), "%dx%d*%f", &width, &height, &scale) >= 2) {
35 bounds.set_size(gfx::Size(width, height)); 37 bounds.set_size(gfx::Size(width, height));
36 } else if (sscanf(spec.c_str(), "%d+%d-%dx%d*%f", &x, &y, &width, &height, 38 } else if (sscanf(spec.c_str(), "%d+%d-%dx%d*%f", &x, &y, &width, &height,
37 &scale) >= 4 ) { 39 &scale) >= 4 ) {
38 bounds = gfx::Rect(x, y, width, height); 40 bounds = gfx::Rect(x, y, width, height);
39 } else if (use_fullscreen_host_window_) { 41 } else if (use_fullscreen_host_window_) {
40 bounds = gfx::Rect(aura::RootWindowHost::GetNativeScreenSize()); 42 bounds = gfx::Rect(aura::RootWindowHost::GetNativeScreenSize());
41 } 43 }
42 Monitor* monitor = new Monitor(); 44 gfx::Monitor monitor(synthesized_monitor_id++, bounds);
43 monitor->set_bounds(bounds); 45 monitor.set_device_scale_factor(scale);
44 monitor->set_device_scale_factor(scale);
45 DVLOG(1) << "Monitor bounds=" << bounds.ToString() << ", scale=" << scale; 46 DVLOG(1) << "Monitor bounds=" << bounds.ToString() << ", scale=" << scale;
46 return monitor; 47 return monitor;
47 } 48 }
48 49
49 // static 50 // static
50 RootWindow* MonitorManager::CreateRootWindowForPrimaryMonitor() { 51 RootWindow* MonitorManager::CreateRootWindowForPrimaryMonitor() {
51 MonitorManager* manager = aura::Env::GetInstance()->monitor_manager(); 52 MonitorManager* manager = aura::Env::GetInstance()->monitor_manager();
52 RootWindow* root = 53 RootWindow* root =
53 manager->CreateRootWindowForMonitor(manager->GetMonitorAt(0)); 54 manager->CreateRootWindowForMonitor(manager->GetMonitorAt(0));
54 if (use_fullscreen_host_window_) 55 if (use_fullscreen_host_window_)
55 root->ConfineCursorToWindow(); 56 root->ConfineCursorToWindow();
56 return root; 57 return root;
57 } 58 }
58 59
59 MonitorManager::MonitorManager() { 60 MonitorManager::MonitorManager() {
60 } 61 }
61 62
62 MonitorManager::~MonitorManager() { 63 MonitorManager::~MonitorManager() {
63 } 64 }
64 65
65 void MonitorManager::AddObserver(MonitorObserver* observer) { 66 void MonitorManager::AddObserver(MonitorObserver* observer) {
66 observers_.AddObserver(observer); 67 observers_.AddObserver(observer);
67 } 68 }
68 69
69 void MonitorManager::RemoveObserver(MonitorObserver* observer) { 70 void MonitorManager::RemoveObserver(MonitorObserver* observer) {
70 observers_.RemoveObserver(observer); 71 observers_.RemoveObserver(observer);
71 } 72 }
72 73
73 void MonitorManager::NotifyBoundsChanged(const Monitor* monitor) { 74 void MonitorManager::NotifyBoundsChanged(const gfx::Monitor& monitor) {
74 FOR_EACH_OBSERVER(MonitorObserver, observers_, 75 FOR_EACH_OBSERVER(MonitorObserver, observers_,
75 OnMonitorBoundsChanged(monitor)); 76 OnMonitorBoundsChanged(monitor));
76 } 77 }
77 78
78 void MonitorManager::NotifyMonitorAdded(Monitor* monitor) { 79 void MonitorManager::NotifyMonitorAdded(const gfx::Monitor& monitor) {
79 FOR_EACH_OBSERVER(MonitorObserver, observers_, 80 FOR_EACH_OBSERVER(MonitorObserver, observers_,
80 OnMonitorAdded(monitor)); 81 OnMonitorAdded(monitor));
81 } 82 }
82 83
83 void MonitorManager::NotifyMonitorRemoved(const Monitor* monitor) { 84 void MonitorManager::NotifyMonitorRemoved(const gfx::Monitor& monitor) {
84 FOR_EACH_OBSERVER(MonitorObserver, observers_, 85 FOR_EACH_OBSERVER(MonitorObserver, observers_,
85 OnMonitorRemoved(monitor)); 86 OnMonitorRemoved(monitor));
86 } 87 }
87 88
88 } // namespace aura 89 } // namespace aura
OLDNEW
« no previous file with comments | « ui/aura/monitor_manager.h ('k') | ui/aura/monitor_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698