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 CHROME_BROWSER_UI_GTK_GTK_UTIL_H_ | 5 #ifndef CHROME_BROWSER_UI_GTK_GTK_UTIL_H_ |
6 #define CHROME_BROWSER_UI_GTK_GTK_UTIL_H_ | 6 #define CHROME_BROWSER_UI_GTK_GTK_UTIL_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <gtk/gtk.h> | 9 #include <gtk/gtk.h> |
10 #include <string> | 10 #include <string> |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
13 #include "base/string16.h" | 13 #include "base/string16.h" |
14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDragOperation.h" | |
15 #include "ui/base/x/x11_util.h" | 14 #include "ui/base/x/x11_util.h" |
16 #include "ui/gfx/point.h" | 15 #include "ui/gfx/point.h" |
17 #include "ui/gfx/rect.h" | 16 #include "ui/gfx/rect.h" |
18 #include "webkit/glue/window_open_disposition.h" | 17 #include "webkit/glue/window_open_disposition.h" |
19 | 18 |
20 typedef struct _cairo cairo_t; | 19 typedef struct _cairo cairo_t; |
21 typedef struct _GdkColor GdkColor; | 20 typedef struct _GdkColor GdkColor; |
22 typedef struct _GtkWidget GtkWidget; | 21 typedef struct _GtkWidget GtkWidget; |
23 | 22 |
24 class BrowserWindow; | 23 class BrowserWindow; |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 // relative to the widget's top-left origin. | 126 // relative to the widget's top-left origin. |
128 void ConvertWidgetPointToScreen(GtkWidget* widget, gfx::Point* p); | 127 void ConvertWidgetPointToScreen(GtkWidget* widget, gfx::Point* p); |
129 | 128 |
130 // Stick the widget in the given hbox without expanding vertically. The widget | 129 // Stick the widget in the given hbox without expanding vertically. The widget |
131 // is packed at the start of the hbox. This is useful for widgets that would | 130 // is packed at the start of the hbox. This is useful for widgets that would |
132 // otherwise expand to fill the vertical space of the hbox | 131 // otherwise expand to fill the vertical space of the hbox |
133 // (e.g. buttons). Returns the vbox that widget was packed in. | 132 // (e.g. buttons). Returns the vbox that widget was packed in. |
134 GtkWidget* CenterWidgetInHBox(GtkWidget* hbox, GtkWidget* widget, | 133 GtkWidget* CenterWidgetInHBox(GtkWidget* hbox, GtkWidget* widget, |
135 bool pack_at_end, int padding); | 134 bool pack_at_end, int padding); |
136 | 135 |
137 // Returns true if the screen is composited, false otherwise. | |
138 bool IsScreenComposited(); | |
139 | |
140 // Enumerates the top-level gdk windows of the current display. | 136 // Enumerates the top-level gdk windows of the current display. |
141 void EnumerateTopLevelWindows(ui::EnumerateWindowsDelegate* delegate); | 137 void EnumerateTopLevelWindows(ui::EnumerateWindowsDelegate* delegate); |
142 | 138 |
143 // Set that clicking the button with the given mouse buttons will cause a click | 139 // Set that clicking the button with the given mouse buttons will cause a click |
144 // event. | 140 // event. |
145 // NOTE: If you need to connect to the button-press-event or | 141 // NOTE: If you need to connect to the button-press-event or |
146 // button-release-event signals, do so before calling this function. | 142 // button-release-event signals, do so before calling this function. |
147 void SetButtonClickableByMouseButtons(GtkWidget* button, | 143 void SetButtonClickableByMouseButtons(GtkWidget* button, |
148 bool left, bool middle, bool right); | 144 bool left, bool middle, bool right); |
149 | 145 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 // Sets all the foreground color states of |label| to |color|. | 186 // Sets all the foreground color states of |label| to |color|. |
191 void SetLabelColor(GtkWidget* label, const GdkColor* color); | 187 void SetLabelColor(GtkWidget* label, const GdkColor* color); |
192 | 188 |
193 // Adds the given widget to an alignment identing it by |kGroupIndent|. | 189 // Adds the given widget to an alignment identing it by |kGroupIndent|. |
194 GtkWidget* IndentWidget(GtkWidget* content); | 190 GtkWidget* IndentWidget(GtkWidget* content); |
195 | 191 |
196 // Sets (or resets) the font settings in |prefs| (used when creating new | 192 // Sets (or resets) the font settings in |prefs| (used when creating new |
197 // renderers) based on GtkSettings (which itself comes from XSETTINGS). | 193 // renderers) based on GtkSettings (which itself comes from XSETTINGS). |
198 void UpdateGtkFontSettings(RendererPreferences* prefs); | 194 void UpdateGtkFontSettings(RendererPreferences* prefs); |
199 | 195 |
200 // Get the current location of the mouse cursor relative to the screen. | |
201 gfx::Point ScreenPoint(GtkWidget* widget); | |
202 | |
203 // Get the current location of the mouse cursor relative to the widget. | |
204 gfx::Point ClientPoint(GtkWidget* widget); | |
205 | |
206 // Reverses a point in RTL mode. Used in making vectors of GdkPoints for window | 196 // Reverses a point in RTL mode. Used in making vectors of GdkPoints for window |
207 // shapes. | 197 // shapes. |
208 GdkPoint MakeBidiGdkPoint(gint x, gint y, gint width, bool ltr); | 198 GdkPoint MakeBidiGdkPoint(gint x, gint y, gint width, bool ltr); |
209 | 199 |
210 // Creates a tooltip string to be passed to gtk_widget_set_tooltip_markup from | 200 // Creates a tooltip string to be passed to gtk_widget_set_tooltip_markup from |
211 // the title and URL. | 201 // the title and URL. |
212 std::string BuildTooltipTitleFor(string16 title, const GURL& url); | 202 std::string BuildTooltipTitleFor(string16 title, const GURL& url); |
213 | 203 |
214 // Draws a GTK text entry with the style parameters of GtkEntry | 204 // Draws a GTK text entry with the style parameters of GtkEntry |
215 // |offscreen_entry| onto |widget_to_draw_on| in the rectangle |rec|. Drawing | 205 // |offscreen_entry| onto |widget_to_draw_on| in the rectangle |rec|. Drawing |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 // and this function hides the complexity of the workaround. | 312 // and this function hides the complexity of the workaround. |
323 void SetLabelWidth(GtkWidget* label, int pixel_width); | 313 void SetLabelWidth(GtkWidget* label, int pixel_width); |
324 | 314 |
325 // Make the |label| shrinkable within a GthChromeShrinkableHBox | 315 // Make the |label| shrinkable within a GthChromeShrinkableHBox |
326 // It calculates the real size request of a label and set its ellipsize mode to | 316 // It calculates the real size request of a label and set its ellipsize mode to |
327 // PANGO_ELLIPSIZE_END. | 317 // PANGO_ELLIPSIZE_END. |
328 // It must be done when the label is mapped (become visible on the screen), | 318 // It must be done when the label is mapped (become visible on the screen), |
329 // to make sure the pango can get correct font information for the calculation. | 319 // to make sure the pango can get correct font information for the calculation. |
330 void InitLabelSizeRequestAndEllipsizeMode(GtkWidget* label); | 320 void InitLabelSizeRequestAndEllipsizeMode(GtkWidget* label); |
331 | 321 |
332 // Convenience methods for converting between web drag operations and the GDK | |
333 // equivalent. | |
334 GdkDragAction WebDragOpToGdkDragAction(WebKit::WebDragOperationsMask op); | |
335 WebKit::WebDragOperationsMask GdkDragActionToWebDragOp(GdkDragAction action); | |
336 | |
337 // A helper function for gtk_message_dialog_new() to work around a few KDE 3 | 322 // A helper function for gtk_message_dialog_new() to work around a few KDE 3 |
338 // window manager bugs. You should always call it after creating a dialog with | 323 // window manager bugs. You should always call it after creating a dialog with |
339 // gtk_message_dialog_new. | 324 // gtk_message_dialog_new. |
340 void ApplyMessageDialogQuirks(GtkWidget* dialog); | 325 void ApplyMessageDialogQuirks(GtkWidget* dialog); |
341 | 326 |
342 // Performs Cut/Copy/Paste operation on the |window|. | 327 // Performs Cut/Copy/Paste operation on the |window|. |
343 void DoCut(BrowserWindow* window); | 328 void DoCut(BrowserWindow* window); |
344 void DoCopy(BrowserWindow* window); | 329 void DoCopy(BrowserWindow* window); |
345 void DoPaste(BrowserWindow* window); | 330 void DoPaste(BrowserWindow* window); |
346 | 331 |
347 } // namespace gtk_util | 332 } // namespace gtk_util |
348 | 333 |
349 #endif // CHROME_BROWSER_UI_GTK_GTK_UTIL_H_ | 334 #endif // CHROME_BROWSER_UI_GTK_GTK_UTIL_H_ |
OLD | NEW |