|
|
|
|
@ -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)&>K_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);
|
|
|
|
|
}
|