|
|
|
|
@ -416,4 +416,65 @@ void yon_gtk_window_set_shrinking_from_revealer_resizing(GtkWindow *window, GtkR
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// void on_entry_pattern_inserted(GtkEditable *self, const gchar *text, gint length, gint *position, char *pattern){
|
|
|
|
|
// if (length!=1) {
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
// const char *old = gtk_entry_get_text(GTK_ENTRY(self));
|
|
|
|
|
// int old_size = strlen(old);
|
|
|
|
|
|
|
|
|
|
// char *final = yon_char_append((char*)old,text);
|
|
|
|
|
|
|
|
|
|
// switch(pattern[old_size]){
|
|
|
|
|
// case '\1':{
|
|
|
|
|
// if (text[0]>='0'&&text[0]<='9')
|
|
|
|
|
// }
|
|
|
|
|
// break;
|
|
|
|
|
// case '\2':
|
|
|
|
|
// break;
|
|
|
|
|
// default:
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if (strlen(new_text) < strlen(text)) {
|
|
|
|
|
// g_signal_handlers_block_by_func(editable, G_CALLBACK(yon_on_space_first_changed), NULL);
|
|
|
|
|
// gtk_entry_set_text(editable, new_text);
|
|
|
|
|
// g_signal_handlers_unblock_by_func(editable, G_CALLBACK(yon_on_space_first_changed), NULL);
|
|
|
|
|
// g_signal_stop_emission_by_name(editable, "changed");
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// void yon_entry_set_pattern(GtkEntry *target, char *pattern){
|
|
|
|
|
// char *pattern_copy = yon_char_new(pattern);
|
|
|
|
|
// g_signal_connect(G_OBJECT(target),"insert-text",G_CALLBACK(on_entry_pattern_inserted),pattern_copy)
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
void yon_on_insert_allowed_check(GtkEditable *editable, char *text, int length, int *position,char *symbols){
|
|
|
|
|
|
|
|
|
|
gchar *new_text = g_new(gchar, length + 1);
|
|
|
|
|
memset(new_text,0,length+1);
|
|
|
|
|
gint i, j = 0;
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < length; i++) {
|
|
|
|
|
if (strchr(symbols,text[i])) {
|
|
|
|
|
new_text[j] = text[i];
|
|
|
|
|
j++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (j < length) {
|
|
|
|
|
g_signal_handlers_block_by_func(editable, G_CALLBACK(yon_on_insert_restricted_check), NULL);
|
|
|
|
|
gtk_editable_insert_text(editable, new_text, j, position);
|
|
|
|
|
g_signal_handlers_unblock_by_func(editable, G_CALLBACK(yon_on_insert_restricted_check), NULL);
|
|
|
|
|
g_signal_stop_emission_by_name(editable, "insert-text");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
g_free(new_text);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_on_entry_set_allowed_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_allowed_check),symbols);
|
|
|
|
|
}
|