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

Side by Side Diff: chrome/browser/gtk/rounded_window.cc

Issue 392007: gtk: Hide the status bubble when the mouse nears it. (Closed)
Patch Set: merge again Created 11 years, 1 month 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/gtk/rounded_window.h ('k') | chrome/browser/gtk/status_bubble_gtk.h » ('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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #include "chrome/browser/gtk/rounded_window.h" 5 #include "chrome/browser/gtk/rounded_window.h"
6 6
7 #include <gtk/gtk.h> 7 #include <gtk/gtk.h>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "chrome/common/gtk_util.h" 10 #include "chrome/common/gtk_util.h"
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 data->expected_width = -1; 177 data->expected_width = -1;
178 data->expected_height = -1; 178 data->expected_height = -1;
179 } 179 }
180 180
181 } // namespace 181 } // namespace
182 182
183 void ActAsRoundedWindow( 183 void ActAsRoundedWindow(
184 GtkWidget* widget, const GdkColor& color, int corner_size, 184 GtkWidget* widget, const GdkColor& color, int corner_size,
185 int rounded_edges, int drawn_borders) { 185 int rounded_edges, int drawn_borders) {
186 DCHECK(widget); 186 DCHECK(widget);
187 DCHECK(!g_object_get_data(G_OBJECT(widget), kRoundedData));
188
187 gtk_widget_set_app_paintable(widget, TRUE); 189 gtk_widget_set_app_paintable(widget, TRUE);
188 g_signal_connect(G_OBJECT(widget), "expose-event", 190 g_signal_connect(G_OBJECT(widget), "expose-event",
189 G_CALLBACK(OnRoundedWindowExpose), NULL); 191 G_CALLBACK(OnRoundedWindowExpose), NULL);
190 g_signal_connect(G_OBJECT(widget), "style-set", G_CALLBACK(OnStyleSet), NULL); 192 g_signal_connect(G_OBJECT(widget), "style-set", G_CALLBACK(OnStyleSet), NULL);
191 193
192 RoundedWindowData* data = new RoundedWindowData; 194 RoundedWindowData* data = new RoundedWindowData;
193 data->expected_width = -1; 195 data->expected_width = -1;
194 data->expected_height = -1; 196 data->expected_height = -1;
195 197
196 data->border_color = color; 198 data->border_color = color;
197 data->corner_size = corner_size; 199 data->corner_size = corner_size;
198 200
199 data->rounded_edges = rounded_edges; 201 data->rounded_edges = rounded_edges;
200 data->drawn_borders = drawn_borders; 202 data->drawn_borders = drawn_borders;
201 203
202 g_object_set_data_full(G_OBJECT(widget), kRoundedData, 204 g_object_set_data_full(G_OBJECT(widget), kRoundedData,
203 data, FreeRoundedWindowData); 205 data, FreeRoundedWindowData);
204 } 206 }
205 207
206 void StopActingAsRoundedWindow(GtkWidget* widget) { 208 void StopActingAsRoundedWindow(GtkWidget* widget) {
207 g_signal_handlers_disconnect_by_func(widget, 209 g_signal_handlers_disconnect_by_func(widget,
208 reinterpret_cast<gpointer>(OnRoundedWindowExpose), NULL); 210 reinterpret_cast<gpointer>(OnRoundedWindowExpose), NULL);
209 g_signal_handlers_disconnect_by_func(widget, 211 g_signal_handlers_disconnect_by_func(widget,
210 reinterpret_cast<gpointer>(OnStyleSet), NULL); 212 reinterpret_cast<gpointer>(OnStyleSet), NULL);
211 213
214 delete static_cast<RoundedWindowData*>(
215 g_object_steal_data(G_OBJECT(widget), kRoundedData));
216
212 if (GTK_WIDGET_REALIZED(widget)) 217 if (GTK_WIDGET_REALIZED(widget))
213 gdk_window_shape_combine_mask(widget->window, NULL, 0, 0); 218 gdk_window_shape_combine_mask(widget->window, NULL, 0, 0);
214 } 219 }
215 220
221 void SetRoundedWindowEdgesAndBorders(GtkWidget* widget,
222 int corner_size,
223 int rounded_edges,
224 int drawn_borders) {
225 DCHECK(widget);
226 RoundedWindowData* data = static_cast<RoundedWindowData*>(
227 g_object_get_data(G_OBJECT(widget), kRoundedData));
228 DCHECK(data);
229 data->corner_size = corner_size;
230 data->rounded_edges = rounded_edges;
231 data->drawn_borders = drawn_borders;
232 }
233
216 void SetRoundedWindowBorderColor(GtkWidget* widget, GdkColor color) { 234 void SetRoundedWindowBorderColor(GtkWidget* widget, GdkColor color) {
217 DCHECK(widget); 235 DCHECK(widget);
218 RoundedWindowData* data = static_cast<RoundedWindowData*>( 236 RoundedWindowData* data = static_cast<RoundedWindowData*>(
219 g_object_get_data(G_OBJECT(widget), kRoundedData)); 237 g_object_get_data(G_OBJECT(widget), kRoundedData));
220 DCHECK(data); 238 DCHECK(data);
221 data->border_color = color; 239 data->border_color = color;
222 } 240 }
223 241
224 } // namespace gtk_util 242 } // namespace gtk_util
OLDNEW
« no previous file with comments | « chrome/browser/gtk/rounded_window.h ('k') | chrome/browser/gtk/status_bubble_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698