summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-02-13 19:04:10 -0500
committerMatthias Clasen <mclasen@redhat.com>2021-02-14 10:12:10 -0500
commit39f72b38341d2ff2d67c2043ce04915797d24fb8 (patch)
treed0afe75f8a5135948ea9569ded7b50013bf671c9
parent7332b4f1d92880e14b2bc11eedda67bcc4f39ca3 (diff)
downloadgtk+-39f72b38341d2ff2d67c2043ce04915797d24fb8.tar.gz
gizmo: Add a css_changed function
In a break from the current gizmo api, add a separate setter, since the calls with long argument lists full of NULL are getting out of hand.
-rw-r--r--gtk/gtkgizmo.c20
-rw-r--r--gtk/gtkgizmoprivate.h7
2 files changed, 26 insertions, 1 deletions
diff --git a/gtk/gtkgizmo.c b/gtk/gtkgizmo.c
index 00162645b3..45b23b20eb 100644
--- a/gtk/gtkgizmo.c
+++ b/gtk/gtkgizmo.c
@@ -83,6 +83,16 @@ gtk_gizmo_grab_focus (GtkWidget *widget)
}
static void
+gtk_gizmo_css_changed (GtkWidget *widget,
+ GtkCssStyleChange *change)
+{
+ GtkGizmo *self = GTK_GIZMO (widget);
+
+ if (self->css_changed_func)
+ self->css_changed_func (self, change);
+}
+
+static void
gtk_gizmo_finalize (GObject *object)
{
GtkGizmo *self = GTK_GIZMO (object);
@@ -115,6 +125,7 @@ gtk_gizmo_class_init (GtkGizmoClass *klass)
widget_class->contains = gtk_gizmo_contains;
widget_class->grab_focus = gtk_gizmo_grab_focus;
widget_class->focus = gtk_gizmo_focus;
+ widget_class->css_changed = gtk_gizmo_css_changed;
}
static void
@@ -165,3 +176,12 @@ gtk_gizmo_new_with_role (const char *css_name,
return GTK_WIDGET (gizmo);
}
+
+void
+gtk_gizmo_set_css_changed_func (GtkGizmo *gizmo,
+ GtkGizmoCssChangedFunc css_changed_func)
+{
+ g_return_if_fail (!gtk_widget_get_realized (GTK_WIDGET (gizmo)));
+
+ gizmo->css_changed_func = css_changed_func;
+}
diff --git a/gtk/gtkgizmoprivate.h b/gtk/gtkgizmoprivate.h
index 9257201a59..a830e3550d 100644
--- a/gtk/gtkgizmoprivate.h
+++ b/gtk/gtkgizmoprivate.h
@@ -33,7 +33,9 @@ typedef gboolean (* GtkGizmoContainsFunc) (GtkGizmo *gizmo,
double y);
typedef gboolean (* GtkGizmoFocusFunc) (GtkGizmo *gizmo,
GtkDirectionType direction);
-typedef gboolean (* GtkGizmoGrabFocusFunc)(GtkGizmo *gizmo);
+typedef gboolean (* GtkGizmoGrabFocusFunc) (GtkGizmo *gizmo);
+typedef void (* GtkGizmoCssChangedFunc) (GtkGizmo *gizmo,
+ GtkCssStyleChange *change);
struct _GtkGizmo
{
@@ -45,6 +47,7 @@ struct _GtkGizmo
GtkGizmoContainsFunc contains_func;
GtkGizmoFocusFunc focus_func;
GtkGizmoGrabFocusFunc grab_focus_func;
+ GtkGizmoCssChangedFunc css_changed_func;
};
struct _GtkGizmoClass
@@ -71,5 +74,7 @@ GtkWidget *gtk_gizmo_new_with_role (const char *css_name,
GtkGizmoFocusFunc focus_func,
GtkGizmoGrabFocusFunc grab_focus_func);
+void gtk_gizmo_set_css_changed_func (GtkGizmo *gizmo,
+ GtkGizmoCssChangedFunc css_changed_func);
#endif