diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-02-13 19:04:10 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-02-14 10:12:10 -0500 |
commit | 39f72b38341d2ff2d67c2043ce04915797d24fb8 (patch) | |
tree | d0afe75f8a5135948ea9569ded7b50013bf671c9 | |
parent | 7332b4f1d92880e14b2bc11eedda67bcc4f39ca3 (diff) | |
download | gtk+-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.c | 20 | ||||
-rw-r--r-- | gtk/gtkgizmoprivate.h | 7 |
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 |