Added revealer shrinking function WIP

pull/32/head
Ivan Dmitrievich Yartsev 11 months ago
parent ddfc3c9a21
commit 5879b14c2d

@ -325,4 +325,40 @@ void yon_on_insert_custom_restricted_check(GtkEditable *editable, const gchar *t
void yon_gtk_entry_block_symbols(GtkEntry *target, char *symbols){
g_return_if_fail(GTK_IS_ENTRY(target));
g_signal_connect(G_OBJECT(target),"insert-text",G_CALLBACK(yon_on_insert_custom_restricted_check),yon_char_new(symbols));
}
void _yon_on_gtk_revealer_set_from_switch(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);
}
void yon_gtk_revealer_set_from_switch(GtkRevealer *revealer, GtkSwitch *target){
g_return_if_fail(GTK_IS_REVEALER(revealer)&&GTK_IS_SWITCH(target));
g_signal_connect(G_OBJECT(target),"state-set",G_CALLBACK(_yon_on_gtk_revealer_set_from_switch),revealer);
}
struct revealer_wrapper {
GtkWidget *revealer;
GtkWidget *window;
int height;
};
gboolean _yon_on_revealer_hidden(struct revealer_wrapper *wrapped){
gtk_window_resize
}
gboolean _yon_on_revealer_switched(struct revealer_wrapper *wrapped){
if (!gtk_revealer_get_child_revealed(GTK_REVEALER(wrapped->revealer))){
g_timeout_add(gtk_revealer_get_transition_duration(GTK_REVEALER(wrapped->revealer))+1,(GSourceFunc)_yon_on_revealer_hidden,wrapped);
}
}
yon_gtk_window_set_shrinking_from_revealer_resizing(GtkWindow *window, GtkRevealer *revealer){
int height=0;
gtk_window_get_size(window, NULL, &height);
struct revealer_wrapper *wrapped = malloc(sizeof(struct revealer_wrapper));
wrapped->revealer=revealer;
wrapped->height=height;
wrapped->window=gtk_widget_get_toplevel(GTK_WIDGET(revealer));
g_signal_connect(G_OBJECT(wrapped->revealer),"notify::reveal-child",G_CALLBACK(_yon_on_revealer_switched),wrapped);
}

@ -519,4 +519,6 @@ void yon_calendar_popover_open(GtkEntry *TargetEntry,GtkWidget *PopupTarget);
int yon_calendar_get_last_date();
config_str yon_resource_open_file(const char *path, int *size);
config_str yon_resource_open_file(const char *path, int *size);
void yon_gtk_revealer_set_from_switch(GtkRevealer *revealer, GtkSwitch *target);
Loading…
Cancel
Save