mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-06 02:40:07 +00:00
GtkWidget: Add the style-updated signal
This signal is emitted whenever the widget's style changes.
This commit is contained in:
parent
77ccdfc94e
commit
3c390c9c8e
@ -445,6 +445,7 @@ enum {
|
|||||||
COMPOSITED_CHANGED,
|
COMPOSITED_CHANGED,
|
||||||
QUERY_TOOLTIP,
|
QUERY_TOOLTIP,
|
||||||
DRAG_FAILED,
|
DRAG_FAILED,
|
||||||
|
STYLE_UPDATED,
|
||||||
LAST_SIGNAL
|
LAST_SIGNAL
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -531,6 +532,7 @@ static gboolean gtk_widget_real_query_tooltip (GtkWidget *widget,
|
|||||||
gint y,
|
gint y,
|
||||||
gboolean keyboard_tip,
|
gboolean keyboard_tip,
|
||||||
GtkTooltip *tooltip);
|
GtkTooltip *tooltip);
|
||||||
|
static void gtk_widget_real_style_updated (GtkWidget *widget);
|
||||||
static gboolean gtk_widget_real_show_help (GtkWidget *widget,
|
static gboolean gtk_widget_real_show_help (GtkWidget *widget,
|
||||||
GtkWidgetHelpType help_type);
|
GtkWidgetHelpType help_type);
|
||||||
|
|
||||||
@ -863,6 +865,7 @@ gtk_widget_class_init (GtkWidgetClass *klass)
|
|||||||
klass->can_activate_accel = gtk_widget_real_can_activate_accel;
|
klass->can_activate_accel = gtk_widget_real_can_activate_accel;
|
||||||
klass->grab_broken_event = NULL;
|
klass->grab_broken_event = NULL;
|
||||||
klass->query_tooltip = gtk_widget_real_query_tooltip;
|
klass->query_tooltip = gtk_widget_real_query_tooltip;
|
||||||
|
klass->style_updated = gtk_widget_real_style_updated;
|
||||||
|
|
||||||
klass->show_help = gtk_widget_real_show_help;
|
klass->show_help = gtk_widget_real_show_help;
|
||||||
|
|
||||||
@ -1499,6 +1502,15 @@ gtk_widget_class_init (GtkWidgetClass *klass)
|
|||||||
G_TYPE_NONE, 1,
|
G_TYPE_NONE, 1,
|
||||||
GTK_TYPE_STYLE);
|
GTK_TYPE_STYLE);
|
||||||
|
|
||||||
|
widget_signals[STYLE_UPDATED] =
|
||||||
|
g_signal_new (I_("style-updated"),
|
||||||
|
G_TYPE_FROM_CLASS (gobject_class),
|
||||||
|
G_SIGNAL_RUN_FIRST,
|
||||||
|
G_STRUCT_OFFSET (GtkWidgetClass, style_updated),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__VOID,
|
||||||
|
G_TYPE_NONE, 0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GtkWidget::direction-changed:
|
* GtkWidget::direction-changed:
|
||||||
* @widget: the object on which the signal is emitted
|
* @widget: the object on which the signal is emitted
|
||||||
@ -6219,6 +6231,17 @@ gtk_widget_real_query_tooltip (GtkWidget *widget,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_widget_real_style_updated (GtkWidget *widget)
|
||||||
|
{
|
||||||
|
GtkStyleContext *context;
|
||||||
|
|
||||||
|
context = g_object_get_qdata (G_OBJECT (widget),
|
||||||
|
quark_style_context);
|
||||||
|
if (context)
|
||||||
|
gtk_style_context_invalidate (context);
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gtk_widget_real_show_help (GtkWidget *widget,
|
gtk_widget_real_show_help (GtkWidget *widget,
|
||||||
GtkWidgetHelpType help_type)
|
GtkWidgetHelpType help_type)
|
||||||
@ -13293,6 +13316,15 @@ gtk_widget_get_path (GtkWidget *widget)
|
|||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
style_context_changed (GtkStyleContext *context,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
GtkWidget *widget = user_data;
|
||||||
|
|
||||||
|
g_signal_emit (widget, widget_signals[STYLE_UPDATED], 0);
|
||||||
|
}
|
||||||
|
|
||||||
GtkStyleContext *
|
GtkStyleContext *
|
||||||
gtk_widget_get_style_context (GtkWidget *widget)
|
gtk_widget_get_style_context (GtkWidget *widget)
|
||||||
{
|
{
|
||||||
@ -13314,6 +13346,8 @@ gtk_widget_get_style_context (GtkWidget *widget)
|
|||||||
"direction", gtk_widget_get_direction (widget),
|
"direction", gtk_widget_get_direction (widget),
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
g_signal_connect (context, "changed",
|
||||||
|
G_CALLBACK (style_context_changed), widget);
|
||||||
|
|
||||||
g_object_set_qdata_full (G_OBJECT (widget),
|
g_object_set_qdata_full (G_OBJECT (widget),
|
||||||
quark_style_context, context,
|
quark_style_context, context,
|
||||||
|
@ -416,6 +416,8 @@ struct _GtkWidgetClass
|
|||||||
gint *allocated_pos,
|
gint *allocated_pos,
|
||||||
gint *allocated_size);
|
gint *allocated_size);
|
||||||
|
|
||||||
|
void (* style_updated) (GtkWidget *widget);
|
||||||
|
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
|
|
||||||
/* Padding for future expansion */
|
/* Padding for future expansion */
|
||||||
|
Loading…
Reference in New Issue
Block a user