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

Unified Diff: ui/aura/monitor_manager.cc

Issue 9701098: MultiMonitor support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: clang fix Created 8 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/aura/monitor_manager.h ('k') | ui/aura/root_window.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/aura/monitor_manager.cc
diff --git a/ui/aura/monitor_manager.cc b/ui/aura/monitor_manager.cc
index 542750f2d6c0cbbe308706da41fa94bdcaed0da6..bde77bdf8689d454716dafe1a5dfa5fede502581 100644
--- a/ui/aura/monitor_manager.cc
+++ b/ui/aura/monitor_manager.cc
@@ -4,7 +4,48 @@
#include "ui/aura/monitor_manager.h"
+#include <stdio.h>
+
+#include "ui/aura/env.h"
+#include "ui/aura/monitor.h"
+#include "ui/aura/root_window_host.h"
+#include "ui/gfx/rect.h"
+
namespace aura {
+namespace {
+// Default bounds for a monitor.
+static const int kDefaultHostWindowX = 200;
+static const int kDefaultHostWindowY = 200;
+static const int kDefaultHostWindowWidth = 1280;
+static const int kDefaultHostWindowHeight = 1024;
+} // namespace
+
+// static
+bool MonitorManager::use_fullscreen_host_window_ = false;
+
+// static
+Monitor* MonitorManager::CreateMonitorFromSpec(const std::string& spec) {
+ gfx::Rect bounds(kDefaultHostWindowX, kDefaultHostWindowY,
+ kDefaultHostWindowWidth, kDefaultHostWindowHeight);
+ int x = 0, y = 0, width, height;
+ if (sscanf(spec.c_str(), "%dx%d", &width, &height) == 2) {
+ bounds.set_size(gfx::Size(width, height));
+ } else if (sscanf(spec.c_str(), "%d+%d-%dx%d", &x, &y, &width, &height)
+ == 4) {
+ bounds = gfx::Rect(x, y, width, height);
+ } else if (use_fullscreen_host_window_) {
+ bounds = gfx::Rect(aura::RootWindowHost::GetNativeScreenSize());
+ }
+ Monitor* monitor = new Monitor();
+ monitor->set_bounds(bounds);
+ return monitor;
+}
+
+// static
+RootWindow* MonitorManager::CreateRootWindowForPrimaryMonitor() {
+ MonitorManager* manager = aura::Env::GetInstance()->monitor_manager();
+ return manager->CreateRootWindowForMonitor(manager->GetMonitorAt(0));
+}
MonitorManager::MonitorManager() {
}
@@ -20,10 +61,6 @@ void MonitorManager::RemoveObserver(MonitorObserver* observer) {
observers_.RemoveObserver(observer);
}
-RootWindow* MonitorManager::CreateRootWindowForPrimaryMonitor() {
- return CreateRootWindowForMonitor(GetPrimaryMonitor());
-}
-
void MonitorManager::NotifyBoundsChanged(const Monitor* monitor) {
FOR_EACH_OBSERVER(MonitorObserver, observers_,
OnMonitorBoundsChanged(monitor));
« no previous file with comments | « ui/aura/monitor_manager.h ('k') | ui/aura/root_window.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698