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