Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #ifndef UI_BASE_X_X11_UTIL_H_ | 5 #ifndef UI_BASE_X_X11_UTIL_H_ |
| 6 #define UI_BASE_X_X11_UTIL_H_ | 6 #define UI_BASE_X_X11_UTIL_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 // This file declares utility functions for X11 (Linux only). | 9 // This file declares utility functions for X11 (Linux only). |
| 10 // | 10 // |
| 11 // These functions do not require the Xlib headers to be included (which is why | 11 // These functions do not require the Xlib headers to be included (which is why |
| 12 // we use a void* for Visual*). The Xlib headers are highly polluting so we try | 12 // we use a void* for Visual*). The Xlib headers are highly polluting so we try |
| 13 // hard to limit their spread into the rest of the code. | 13 // hard to limit their spread into the rest of the code. |
| 14 | 14 |
| 15 #include <string> | 15 #include <string> |
| 16 #include <vector> | 16 #include <vector> |
| 17 | 17 |
| 18 #include "base/basictypes.h" | 18 #include "base/basictypes.h" |
| 19 | 19 |
| 20 typedef unsigned long Atom; | |
| 20 typedef struct _GdkDrawable GdkWindow; | 21 typedef struct _GdkDrawable GdkWindow; |
| 21 typedef struct _GtkWidget GtkWidget; | 22 typedef struct _GtkWidget GtkWidget; |
| 22 typedef struct _GtkWindow GtkWindow; | 23 typedef struct _GtkWindow GtkWindow; |
| 23 typedef unsigned long XID; | 24 typedef unsigned long XID; |
| 24 typedef unsigned long XSharedMemoryId; // ShmSeg in the X headers. | 25 typedef unsigned long XSharedMemoryId; // ShmSeg in the X headers. |
| 25 typedef struct _XDisplay Display; | 26 typedef struct _XDisplay Display; |
| 26 | 27 |
| 27 namespace gfx { | 28 namespace gfx { |
| 28 class Rect; | 29 class Rect; |
| 29 } | 30 } |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 69 XID GetX11WindowFromGdkWindow(GdkWindow* window); | 70 XID GetX11WindowFromGdkWindow(GdkWindow* window); |
| 70 // Get a Visual from the given widget. Since we don't include the Xlib | 71 // Get a Visual from the given widget. Since we don't include the Xlib |
| 71 // headers, this is returned as a void*. | 72 // headers, this is returned as a void*. |
| 72 void* GetVisualFromGtkWidget(GtkWidget* widget); | 73 void* GetVisualFromGtkWidget(GtkWidget* widget); |
| 73 // Return the number of bits-per-pixel for a pixmap of the given depth | 74 // Return the number of bits-per-pixel for a pixmap of the given depth |
| 74 int BitsPerPixelForPixmapDepth(Display* display, int depth); | 75 int BitsPerPixelForPixmapDepth(Display* display, int depth); |
| 75 // Returns true if |window| is visible. | 76 // Returns true if |window| is visible. |
| 76 bool IsWindowVisible(XID window); | 77 bool IsWindowVisible(XID window); |
| 77 // Returns the bounds of |window|. | 78 // Returns the bounds of |window|. |
| 78 bool GetWindowRect(XID window, gfx::Rect* rect); | 79 bool GetWindowRect(XID window, gfx::Rect* rect); |
| 79 // Get the value of an int, int array, or string property. On | 80 // Return true if |window| has any property with |property_name|. |
| 81 bool ExistsProperty(XID window, const std::string& property_name); | |
|
Daniel Erat
2011/01/21 01:28:17
nit: "PropertyExists"
jianli
2011/01/21 20:21:00
Done.
| |
| 82 // Get the value of an int, int array, atom array or string property. On | |
| 80 // success, true is returned and the value is stored in |value|. | 83 // success, true is returned and the value is stored in |value|. |
| 81 bool GetIntProperty(XID window, const std::string& property_name, int* value); | 84 bool GetIntProperty(XID window, const std::string& property_name, int* value); |
| 82 bool GetIntArrayProperty(XID window, const std::string& property_name, | 85 bool GetIntArrayProperty(XID window, const std::string& property_name, |
| 83 std::vector<int>* value); | 86 std::vector<int>* value); |
| 87 bool GetAtomArrayProperty(XID window, const std::string& property_name, | |
| 88 std::vector<Atom>* value); | |
| 84 bool GetStringProperty( | 89 bool GetStringProperty( |
| 85 XID window, const std::string& property_name, std::string* value); | 90 XID window, const std::string& property_name, std::string* value); |
| 86 | 91 |
| 87 // Get |window|'s parent window, or None if |window| is the root window. | 92 // Get |window|'s parent window, or None if |window| is the root window. |
| 88 XID GetParentWindow(XID window); | 93 XID GetParentWindow(XID window); |
| 89 | 94 |
| 90 // Walk up |window|'s hierarchy until we find a direct child of |root|. | 95 // Walk up |window|'s hierarchy until we find a direct child of |root|. |
| 91 XID GetHighestAncestorWindow(XID window, XID root); | 96 XID GetHighestAncestorWindow(XID window, XID root); |
| 92 | 97 |
| 93 static const int kAllDesktops = -1; | 98 static const int kAllDesktops = -1; |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 174 bool ChangeWindowDesktop(XID window, XID destination); | 179 bool ChangeWindowDesktop(XID window, XID destination); |
| 175 | 180 |
| 176 // Enable the default X error handlers. These will log the error and abort | 181 // Enable the default X error handlers. These will log the error and abort |
| 177 // the process if called. Use SetX11ErrorHandlers() from x11_util_internal.h | 182 // the process if called. Use SetX11ErrorHandlers() from x11_util_internal.h |
| 178 // to set your own error handlers. | 183 // to set your own error handlers. |
| 179 void SetDefaultX11ErrorHandlers(); | 184 void SetDefaultX11ErrorHandlers(); |
| 180 | 185 |
| 181 } // namespace ui | 186 } // namespace ui |
| 182 | 187 |
| 183 #endif // UI_BASE_X_X11_UTIL_H_ | 188 #endif // UI_BASE_X_X11_UTIL_H_ |
| OLD | NEW |