From 6b808a7389689b3e6b89475c5a30cced2885bb1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jard=C3=B3n?= Date: Mon, 18 Jan 2010 17:12:42 +0100 Subject: [PATCH] Add gtk_widget_has_rc_style() accessor Add gtk_widget_has_rc_style() as accessor for sealed GTK_WIDGET_RC_STYLE widget flag. https://bugzilla.gnome.org/show_bug.cgi?id=69872 --- docs/reference/gtk/gtk-sections.txt | 1 + gtk/gtk.symbols | 1 + gtk/gtkwidget.c | 31 +++++++++++++++++++++++------ gtk/gtkwidget.h | 6 ++++++ 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/docs/reference/gtk/gtk-sections.txt b/docs/reference/gtk/gtk-sections.txt index 781f3d1b65..1369c724ba 100644 --- a/docs/reference/gtk/gtk-sections.txt +++ b/docs/reference/gtk/gtk-sections.txt @@ -5733,6 +5733,7 @@ gtk_widget_set_visible gtk_widget_has_default gtk_widget_has_focus gtk_widget_has_grab +gtk_widget_has_rc_style gtk_widget_is_drawable gtk_widget_is_toplevel gtk_widget_set_window diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index 9176aa750d..2834c074df 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -5132,6 +5132,7 @@ gtk_widget_grab_focus gtk_widget_has_default gtk_widget_has_focus gtk_widget_has_grab +gtk_widget_has_rc_style gtk_widget_has_screen gtk_widget_hide gtk_widget_hide_all diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 5a4ab990a1..3a954970f7 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -5726,7 +5726,7 @@ gtk_widget_set_name (GtkWidget *widget, g_free (widget->name); widget->name = new_name; - if (GTK_WIDGET_RC_STYLE (widget)) + if (gtk_widget_has_rc_style (widget)) gtk_widget_reset_rc_style (widget); g_object_notify (G_OBJECT (widget), "name"); @@ -6293,6 +6293,25 @@ gtk_widget_get_parent (GtkWidget *widget) * see docs/styles.txt *****************************************/ +/** + * gtk_widget_has_rc_style: + * @widget: a #GtkWidget + * + * Determines if the widget style has been looked up through the rc mechanism. + * + * Returns: %TRUE if the widget has been looked up through the rc + * mechanism, %FALSE otherwise. + * + * Since: 2.20 + **/ +gboolean +gtk_widget_has_rc_style (GtkWidget *widget) +{ + g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); + + return (GTK_WIDGET_FLAGS (widget) & GTK_RC_STYLE) != 0; +} + /** * gtk_widget_set_style: * @widget: a #GtkWidget @@ -6314,7 +6333,7 @@ gtk_widget_set_style (GtkWidget *widget, { gboolean initial_emission; - initial_emission = !GTK_WIDGET_RC_STYLE (widget) && !GTK_WIDGET_USER_STYLE (widget); + initial_emission = !gtk_widget_has_rc_style (widget) && !GTK_WIDGET_USER_STYLE (widget); GTK_WIDGET_UNSET_FLAGS (widget, GTK_RC_STYLE); GTK_PRIVATE_SET_FLAG (widget, GTK_USER_STYLE); @@ -6343,7 +6362,7 @@ gtk_widget_ensure_style (GtkWidget *widget) g_return_if_fail (GTK_IS_WIDGET (widget)); if (!GTK_WIDGET_USER_STYLE (widget) && - !GTK_WIDGET_RC_STYLE (widget)) + !gtk_widget_has_rc_style (widget)) gtk_widget_reset_rc_style (widget); } @@ -6356,7 +6375,7 @@ gtk_widget_reset_rc_style (GtkWidget *widget) GtkStyle *new_style = NULL; gboolean initial_emission; - initial_emission = !GTK_WIDGET_RC_STYLE (widget) && !GTK_WIDGET_USER_STYLE (widget); + initial_emission = !gtk_widget_has_rc_style (widget) && !GTK_WIDGET_USER_STYLE (widget); GTK_PRIVATE_UNSET_FLAG (widget, GTK_USER_STYLE); GTK_WIDGET_SET_FLAGS (widget, GTK_RC_STYLE); @@ -6425,7 +6444,7 @@ gtk_widget_modify_style (GtkWidget *widget, * modifier style and the only reference was our own. */ - if (GTK_WIDGET_RC_STYLE (widget)) + if (gtk_widget_has_rc_style (widget)) gtk_widget_reset_rc_style (widget); } @@ -6964,7 +6983,7 @@ _gtk_widget_propagate_screen_changed (GtkWidget *widget, static void reset_rc_styles_recurse (GtkWidget *widget, gpointer data) { - if (GTK_WIDGET_RC_STYLE (widget)) + if (gtk_widget_has_rc_style (widget)) gtk_widget_reset_rc_style (widget); if (GTK_IS_CONTAINER (widget)) diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index f88825fa8e..02f4ceac8f 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -332,14 +332,19 @@ typedef enum #define GTK_WIDGET_HAS_GRAB(wid) ((GTK_WIDGET_FLAGS (wid) & GTK_HAS_GRAB) != 0) #endif +#ifndef GTK_DISABLE_DEPRECATED /** * GTK_WIDGET_RC_STYLE: * @wid: a #GtkWidget. * * Evaluates to %TRUE if the widget's style has been looked up through the rc * mechanism. + * + * Deprecated: 2.20: Use gtk_widget_has_rc_style() instead. */ #define GTK_WIDGET_RC_STYLE(wid) ((GTK_WIDGET_FLAGS (wid) & GTK_RC_STYLE) != 0) +#endif + #ifndef GTK_DISABLE_DEPRECATED /** * GTK_WIDGET_COMPOSITE_CHILD: @@ -1058,6 +1063,7 @@ gboolean gtk_widget_hide_on_delete (GtkWidget *widget); /* Widget styles. */ +gboolean gtk_widget_has_rc_style (GtkWidget *widget); void gtk_widget_set_style (GtkWidget *widget, GtkStyle *style); void gtk_widget_ensure_style (GtkWidget *widget);