Added funcion to block entry from inserting anything but figits

pull/25/head
parent ac4d8323e4
commit 787dde3f7b

@ -1190,6 +1190,27 @@ rmb_menu_window *yon_rmb_menu_setup(GtkWidget *target_widget, int (show_function
} }
} }
void yon_on_text_insert_only_digits(GtkEditable *editable, const gchar *text, gint length, gint *position, gpointer user_data){
gchar *new_text = g_new(gchar, length + 1);
gint i, j = 0;
for (i = 0; i < length; i++) {
if (g_ascii_isdigit(text[i])) {
new_text[j] = text[i];
j++;
}
}
if (j < length) {
g_signal_handlers_block_by_func(editable, G_CALLBACK(yon_on_text_insert_only_digits), user_data);
gtk_editable_insert_text(editable, new_text, j, position);
g_signal_handlers_unblock_by_func(editable, G_CALLBACK(yon_on_text_insert_only_digits), user_data);
g_signal_stop_emission_by_name(editable, "insert-text");
}
g_free(new_text);
}
// GtkEntry section // GtkEntry section
// struct entry_pattern_data { // struct entry_pattern_data {
// GtkEntry *entry; // GtkEntry *entry;

@ -482,6 +482,8 @@ typedef struct {
rmb_menu_window *yon_rmb_menu_setup(GtkWidget *target_widget, int (*show_function)(void*), void *show_data, const char *button_label, const char *icon_name, GCallback function, gpointer data,...); rmb_menu_window *yon_rmb_menu_setup(GtkWidget *target_widget, int (*show_function)(void*), void *show_data, const char *button_label, const char *icon_name, GCallback function, gpointer data,...);
#endif #endif
void yon_on_text_insert_only_digits(GtkEditable *editable, const gchar *text, gint length, gint *position, gpointer user_data);
// GtkTreeStore section // GtkTreeStore section
dictionary *yon_gtk_tree_store_get_children(GtkTreeStore *tree, GtkTreeIter *parent,int column); dictionary *yon_gtk_tree_store_get_children(GtkTreeStore *tree, GtkTreeIter *parent,int column);

Loading…
Cancel
Save