From 7bf7400a5d5f1290335add313fb83892836b8337 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 26 Feb 2025 09:31:38 +0600 Subject: [PATCH] Added function --- source/libublsettings-gtk3-misc.c | 12 ++++++++++++ source/libublsettings-gtk3.h | 1 + 2 files changed, 13 insertions(+) diff --git a/source/libublsettings-gtk3-misc.c b/source/libublsettings-gtk3-misc.c index c92688b..76380f6 100644 --- a/source/libublsettings-gtk3-misc.c +++ b/source/libublsettings-gtk3-misc.c @@ -386,11 +386,23 @@ gboolean _yon_on_gtk_revealer_set_from_switch(GtkSwitch *target, int status, Gtk return 0; } +gboolean _yon_on_gtk_revealer_set_from_expander(GtkExpander *target,GtkRevealer *revealer){ + int status = gtk_expander_get_expanded(target); + gtk_revealer_set_reveal_child(revealer,!status); + gtk_revealer_set_transition_type(revealer,!status?GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN:GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP); + return 0; +} + void yon_gtk_revealer_set_from_switch(GtkRevealer *revealer, GtkSwitch *target){ g_return_if_fail(GTK_IS_REVEALER(revealer)&>K_IS_SWITCH(target)); g_signal_connect(G_OBJECT(target),"state-set",G_CALLBACK(_yon_on_gtk_revealer_set_from_switch),revealer); } +void yon_gtk_revealer_set_from_expander(GtkRevealer *revealer, GtkExpander *target){ + g_return_if_fail(GTK_IS_REVEALER(revealer)&>K_IS_EXPANDER(target)); + g_signal_connect(G_OBJECT(target),"activate",G_CALLBACK(_yon_on_gtk_revealer_set_from_expander),revealer); +} + struct revealer_wrapper { GtkWidget *revealer; GtkWidget *window; diff --git a/source/libublsettings-gtk3.h b/source/libublsettings-gtk3.h index 4d1da3e..20a38df 100644 --- a/source/libublsettings-gtk3.h +++ b/source/libublsettings-gtk3.h @@ -532,5 +532,6 @@ int yon_calendar_get_last_date(); config_str yon_resource_open_file(const char *path, int *size); void yon_gtk_revealer_set_from_switch(GtkRevealer *revealer, GtkSwitch *target); +void yon_gtk_revealer_set_from_expander(GtkRevealer *revealer, GtkExpander *target); void yon_gtk_window_set_shrinking_from_revealer_resizing(GtkWindow *window, GtkRevealer *revealer); \ No newline at end of file