diff --git a/source/libublsettings-gtk3-misc.c b/source/libublsettings-gtk3-misc.c index 3b9c095..206c6bc 100644 --- a/source/libublsettings-gtk3-misc.c +++ b/source/libublsettings-gtk3-misc.c @@ -402,6 +402,12 @@ gboolean _yon_on_gtk_revealer_set_from_switch(GtkSwitch *target, int status, Gtk return 0; } +gboolean _yon_on_gtk_revealer_set_from_switch_inversed(GtkSwitch *target, int status, GtkRevealer *revealer){ + 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; +} + 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); @@ -414,6 +420,11 @@ void yon_gtk_revealer_set_from_switch(GtkRevealer *revealer, GtkSwitch *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_switch_inversed(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_inversed),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); diff --git a/source/libublsettings-gtk3.h b/source/libublsettings-gtk3.h index 00e391a..49b0a59 100644 --- a/source/libublsettings-gtk3.h +++ b/source/libublsettings-gtk3.h @@ -562,6 +562,7 @@ 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_switch_inversed(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);