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
This commit is contained in:
Javier Jardón 2010-01-18 17:12:42 +01:00 committed by Tristan Van Berkom
parent 9743d2e83c
commit ef3dc5fd42
4 changed files with 33 additions and 6 deletions

View File

@ -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

View File

@ -5143,6 +5143,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

View File

@ -5741,7 +5741,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");
@ -6308,6 +6308,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
@ -6329,7 +6348,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);
@ -6358,7 +6377,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);
}
@ -6371,7 +6390,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);
@ -6440,7 +6459,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);
}
@ -6979,7 +6998,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))

View File

@ -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:
@ -1064,6 +1069,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);