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

Side by Side Diff: chrome/browser/ui/libgtkui/gtk_util.h

Issue 2588993002: Gtk3: Refactor NativeThemeGtk3 to use foreign drawing only (Closed)
Patch Set: Add color cache Created 3 years, 11 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
« no previous file with comments | « chrome/browser/ui/libgtkui/gtk_ui.cc ('k') | chrome/browser/ui/libgtkui/gtk_util.cc » ('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 #ifndef CHROME_BROWSER_UI_LIBGTKUI_GTK_UTIL_H_ 5 #ifndef CHROME_BROWSER_UI_LIBGTKUI_GTK_UTIL_H_
6 #define CHROME_BROWSER_UI_LIBGTKUI_GTK_UTIL_H_ 6 #define CHROME_BROWSER_UI_LIBGTKUI_GTK_UTIL_H_
7 7
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 #include <string> 9 #include <string>
10 10
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 // Sets |dialog| as transient for |parent|, which will keep it on top and center 60 // Sets |dialog| as transient for |parent|, which will keep it on top and center
61 // it above |parent|. Do nothing if |parent| is NULL. 61 // it above |parent|. Do nothing if |parent| is NULL.
62 void SetGtkTransientForAura(GtkWidget* dialog, aura::Window* parent); 62 void SetGtkTransientForAura(GtkWidget* dialog, aura::Window* parent);
63 63
64 // Gets the transient parent aura window for |dialog|. 64 // Gets the transient parent aura window for |dialog|.
65 aura::Window* GetAuraTransientParent(GtkWidget* dialog); 65 aura::Window* GetAuraTransientParent(GtkWidget* dialog);
66 66
67 // Clears the transient parent for |dialog|. 67 // Clears the transient parent for |dialog|.
68 void ClearAuraTransientParent(GtkWidget* dialog); 68 void ClearAuraTransientParent(GtkWidget* dialog);
69 69
70 #if GTK_MAJOR_VERSION > 2
71 template <typename T>
72 class ScopedGObject {
73 public:
74 explicit ScopedGObject(T* obj) : obj_(obj) {
75 // Increase the reference count of |obj_|, removing the floating
76 // reference if it has one.
77 g_object_ref_sink(obj_);
78 }
79
80 ScopedGObject(const ScopedGObject<T>& other) : obj_(other.obj_) {
81 g_object_ref(obj_);
82 }
83
84 ScopedGObject(ScopedGObject<T>&& other) : obj_(other.obj_) {
85 other.obj_ = nullptr;
86 }
87
88 ~ScopedGObject() {
89 if (obj_)
90 g_object_unref(obj_);
91 }
92
93 ScopedGObject<T>& operator=(const ScopedGObject<T>& other) {
94 g_object_ref(other.obj_);
95 g_object_unref(obj_);
96 obj_ = other.obj_;
97 return *this;
98 }
99
100 ScopedGObject<T>& operator=(ScopedGObject<T>&& other) {
101 g_object_unref(obj_);
102 obj_ = other.obj_;
103 other.obj_ = nullptr;
104 return *this;
105 }
106
107 operator T*() { return obj_; }
108
109 private:
110 T* obj_;
111 };
112
113 typedef ScopedGObject<GtkStyleContext> ScopedStyleContext;
114
115 // Parses |css_selector| into a GtkStyleContext. The format is a
116 // sequence of whitespace-separated objects. Each object may have at
117 // most one object name at the beginning of the string, and any number
118 // of '.'-prefixed classes and ':'-prefixed pseudoclasses. An example
119 // is "GtkButton.button.suggested-action:hover:active". The caller
120 // must g_object_unref() the returned context.
121 ScopedStyleContext GetStyleContextFromCss(const char* css_selector);
122
123 // Get the 'color' property from the style context created by
124 // GetStyleContextFromCss(|css_selector|).
125 SkColor GetFGColor(const char* css_selector);
126
127 // Renders a background from the style context created by
128 // GetStyleContextFromCss(|css_selector|) into a single pixel and
129 // returns the color.
130 SkColor GetBGColor(const char* css_selector);
131
132 // If there is a border, renders the border from the style context
133 // created by GetStyleContextFromCss(|css_selector|) into a single
134 // pixel and returns the color. Otherwise returns kInvalidColor.
135 SkColor GetBorderColor(const char* css_selector);
136 #endif
137
70 } // namespace libgtkui 138 } // namespace libgtkui
71 139
72 #endif // CHROME_BROWSER_UI_LIBGTKUI_GTK_UTIL_H_ 140 #endif // CHROME_BROWSER_UI_LIBGTKUI_GTK_UTIL_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/libgtkui/gtk_ui.cc ('k') | chrome/browser/ui/libgtkui/gtk_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698