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

Unified Diff: ui/gfx/screen_aurax11.cc

Issue 10020048: Work on USE_ASH/USE_AURA split. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase to ToT 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/chrome_browser.gypi ('k') | ui/ui.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gfx/screen_aurax11.cc
diff --git a/ui/gfx/screen_aurax11.cc b/ui/gfx/screen_aurax11.cc
new file mode 100644
index 0000000000000000000000000000000000000000..03b4e4e1f0cbad37ec9d847e9d18092cac311376
--- /dev/null
+++ b/ui/gfx/screen_aurax11.cc
@@ -0,0 +1,102 @@
+// 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 "ui/gfx/screen.h"
+
+#include <X11/Xlib.h>
+
+#include "base/logging.h"
+#include "ui/base/x/x11_util.h"
+
+#if !defined(USE_ASH)
+
+namespace gfx {
+
+// TODO(piman,erg): This file needs to be rewritten by someone who understands
+// the subtlety of X11. That is not erg.
+
+gfx::Point Screen::GetCursorScreenPoint() {
+ Display* display = ui::GetXDisplay();
+
+ // Unsure if I can leave these as NULL.
+ ::Window root, child;
+ int root_x, root_y, win_x, win_y;
+ unsigned int mask;
+ XQueryPointer(display,
+ DefaultRootWindow(display),
+ &root,
+ &child,
+ &root_x,
+ &root_y,
+ &win_x,
+ &win_y,
+ &mask);
+
+ return gfx::Point(root_x, root_y);
+}
+
+gfx::Rect Screen::GetMonitorWorkAreaNearestWindow(
+ gfx::NativeView view) {
+ // TODO(erg): There was a comment about how we shouldn't use _NET_WORKAREA
+ // here by danakj@.
+ return GetMonitorAreaNearestWindow(view);
+}
+
+gfx::Rect Screen::GetMonitorAreaNearestWindow(gfx::NativeView view) {
+ // TODO(erg): Yet another stub.
+ return GetPrimaryMonitorBounds();
+}
+
+// static
+gfx::Rect Screen::GetMonitorWorkAreaNearestPoint(const gfx::Point& point) {
+ // TODO(jamiewalch): Restrict this to the work area of the monitor.
+ return GetMonitorAreaNearestPoint(point);
+}
+
+// static
+gfx::Rect Screen::GetMonitorAreaNearestPoint(const gfx::Point& point) {
+ // TODO(erg): gdk actually has a description for this! We can implement this
+ // one.
+ return GetPrimaryMonitorBounds();
+}
+
+gfx::Rect Screen::GetPrimaryMonitorWorkArea() {
+ // TODO(erg): Also needs a real implementation.
+ return gfx::Rect(gfx::Point(0, 0), GetPrimaryMonitorSize());
+}
+
+gfx::Rect Screen::GetPrimaryMonitorBounds() {
+ // TODO(erg): Probably needs to be smarter?
+ return gfx::Rect(gfx::Point(0, 0), GetPrimaryMonitorSize());
+}
+
+gfx::Rect Screen::GetMonitorWorkAreaMatching(const gfx::Rect& match_rect) {
+ // TODO(erg): We need to eventually support multiple monitors.
+ return GetPrimaryMonitorWorkArea();
+}
+
+gfx::NativeWindow Screen::GetWindowAtCursorScreenPoint() {
+ // TODO(erg): I have no clue. May need collaboration with
+ // RootWindowHostLinux?
+ return NULL;
+}
+
+gfx::Size Screen::GetPrimaryMonitorSize() {
+ ::Display* display = ui::GetXDisplay();
+ ::Screen* screen = DefaultScreenOfDisplay(display);
+ int width = WidthOfScreen(screen);
+ int height = HeightOfScreen(screen);
+
+ return gfx::Size(width, height);
+}
+
+int Screen::GetNumMonitors() {
+ // TODO(erg): Figure this out with oshima or piman because I have no clue
+ // about the Xinerama implications here.
+ return 1;
+}
+
+} // namespace gfx
+
+#endif // !defined(USE_ASH)
« no previous file with comments | « chrome/chrome_browser.gypi ('k') | ui/ui.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698