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 #include "chrome/browser/ui/gtk/rounded_window.h" | 5 #include "chrome/browser/ui/gtk/rounded_window.h" |
6 | 6 |
7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
8 #include <math.h> | 8 #include <math.h> |
9 | 9 |
10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
11 #include "base/logging.h" | 11 #include "base/logging.h" |
12 #include "chrome/browser/ui/gtk/gtk_util.h" | 12 #include "chrome/browser/ui/gtk/gtk_util.h" |
| 13 #include "ui/base/gtk/gtk_compat.h" |
13 #include "ui/base/gtk/gtk_signal_registrar.h" | 14 #include "ui/base/gtk/gtk_signal_registrar.h" |
14 | 15 |
15 namespace gtk_util { | 16 namespace gtk_util { |
16 | 17 |
17 namespace { | 18 namespace { |
18 | 19 |
19 const char* kRoundedData = "rounded-window-data"; | 20 const char* kRoundedData = "rounded-window-data"; |
20 | 21 |
21 // If the border radius is less than |kMinRoundedBorderSize|, we don't actually | 22 // If the border radius is less than |kMinRoundedBorderSize|, we don't actually |
22 // round the corners, we just truncate the corner. | 23 // round the corners, we just truncate the corner. |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 g_object_set_data_full(G_OBJECT(widget), kRoundedData, | 280 g_object_set_data_full(G_OBJECT(widget), kRoundedData, |
280 data, FreeRoundedWindowData); | 281 data, FreeRoundedWindowData); |
281 | 282 |
282 if (gtk_widget_get_visible(widget)) | 283 if (gtk_widget_get_visible(widget)) |
283 gtk_widget_queue_draw(widget); | 284 gtk_widget_queue_draw(widget); |
284 } | 285 } |
285 | 286 |
286 void StopActingAsRoundedWindow(GtkWidget* widget) { | 287 void StopActingAsRoundedWindow(GtkWidget* widget) { |
287 g_object_set_data(G_OBJECT(widget), kRoundedData, NULL); | 288 g_object_set_data(G_OBJECT(widget), kRoundedData, NULL); |
288 | 289 |
289 if (GTK_WIDGET_REALIZED(widget)) | 290 if (gtk_widget_get_realized(widget)) |
290 gdk_window_shape_combine_mask(widget->window, NULL, 0, 0); | 291 gdk_window_shape_combine_mask(widget->window, NULL, 0, 0); |
291 | 292 |
292 if (gtk_widget_get_visible(widget)) | 293 if (gtk_widget_get_visible(widget)) |
293 gtk_widget_queue_draw(widget); | 294 gtk_widget_queue_draw(widget); |
294 } | 295 } |
295 | 296 |
296 bool IsActingAsRoundedWindow(GtkWidget* widget) { | 297 bool IsActingAsRoundedWindow(GtkWidget* widget) { |
297 return g_object_get_data(G_OBJECT(widget), kRoundedData) != NULL; | 298 return g_object_get_data(G_OBJECT(widget), kRoundedData) != NULL; |
298 } | 299 } |
299 | 300 |
(...skipping 12 matching lines...) Expand all Loading... |
312 | 313 |
313 void SetRoundedWindowBorderColor(GtkWidget* widget, GdkColor color) { | 314 void SetRoundedWindowBorderColor(GtkWidget* widget, GdkColor color) { |
314 DCHECK(widget); | 315 DCHECK(widget); |
315 RoundedWindowData* data = static_cast<RoundedWindowData*>( | 316 RoundedWindowData* data = static_cast<RoundedWindowData*>( |
316 g_object_get_data(G_OBJECT(widget), kRoundedData)); | 317 g_object_get_data(G_OBJECT(widget), kRoundedData)); |
317 DCHECK(data); | 318 DCHECK(data); |
318 data->border_color = color; | 319 data->border_color = color; |
319 } | 320 } |
320 | 321 |
321 } // namespace gtk_util | 322 } // namespace gtk_util |
OLD | NEW |