| 1 | #include <gtk/gtk.h> |
|---|
| 2 | #include <assert.h> |
|---|
| 3 | #include <stdlib.h> |
|---|
| 4 | #include <string.h> |
|---|
| 5 | #include "gtk_dlg.h" |
|---|
| 6 | #include "gtk_app_types.h" |
|---|
| 7 | |
|---|
| 8 | |
|---|
| 9 | |
|---|
| 10 | void insert_number_text_handler (GtkEntry *entry, |
|---|
| 11 | const gchar *text, |
|---|
| 12 | gint length, |
|---|
| 13 | gint *position, |
|---|
| 14 | gpointer data) |
|---|
| 15 | { |
|---|
| 16 | #if 0 |
|---|
| 17 | GtkEditable *editable = GTK_EDITABLE(entry); |
|---|
| 18 | int i, count=0; |
|---|
| 19 | gchar *result = g_new (gchar, length); |
|---|
| 20 | |
|---|
| 21 | for (i=0; i < length; i++) |
|---|
| 22 | { |
|---|
| 23 | if (!isalpha(text[i])) |
|---|
| 24 | continue; |
|---|
| 25 | result[count++] = islower(text[i]) ? toupper(text[i]) : text[i]; |
|---|
| 26 | } |
|---|
| 27 | if (count > 0) |
|---|
| 28 | { |
|---|
| 29 | g_signal_handlers_block_by_func (G_OBJECT (editable), |
|---|
| 30 | G_CALLBACK (insert_number_text_handler), |
|---|
| 31 | data); |
|---|
| 32 | gtk_editable_insert_text (editable, result, count, position); |
|---|
| 33 | g_signal_handlers_unblock_by_func (G_OBJECT (editable), |
|---|
| 34 | G_CALLBACK (insert_number_text_handler), |
|---|
| 35 | data); |
|---|
| 36 | } |
|---|
| 37 | |
|---|
| 38 | g_signal_stop_emission_by_name (G_OBJECT (editable), "insert_text"); |
|---|
| 39 | |
|---|
| 40 | g_free (result); |
|---|
| 41 | #endif |
|---|
| 42 | int i; |
|---|
| 43 | GtkEditable *editable = GTK_EDITABLE(entry); |
|---|
| 44 | for (i=0; i < length; i++) |
|---|
| 45 | { |
|---|
| 46 | if (!isdigit(text[i])) |
|---|
| 47 | g_signal_stop_emission_by_name (G_OBJECT (editable), "insert_text"); |
|---|
| 48 | } |
|---|
| 49 | } |
|---|
| 50 | |
|---|
| 51 | void gtk_confirm_dlg_init(confirm_dlg_t *p_dlg,GtkBuilder *builder) |
|---|
| 52 | { |
|---|
| 53 | p_dlg->confirm_dlg = GTK_MESSAGE_DIALOG( gtk_builder_get_object( builder, "message_dialog" ) ); |
|---|
| 54 | APP_ASSERT(p_dlg->confirm_dlg); |
|---|
| 55 | } |
|---|
| 56 | |
|---|
| 57 | bool gtk_confirm_dlg(confirm_dlg_t *p_dlg, char * warning) |
|---|
| 58 | { |
|---|
| 59 | gint response; |
|---|
| 60 | |
|---|
| 61 | /* Populate the dialog */ |
|---|
| 62 | gtk_message_dialog_set_markup(p_dlg->confirm_dlg,warning); |
|---|
| 63 | |
|---|
| 64 | response = gtk_dialog_run(GTK_DIALOG(p_dlg->confirm_dlg)); |
|---|
| 65 | gtk_widget_hide( GTK_WIDGET(p_dlg->confirm_dlg) ); |
|---|
| 66 | |
|---|
| 67 | return ( response == GTK_RESPONSE_OK) ? true : false; |
|---|
| 68 | } |
|---|
| 69 | |
|---|
| 70 | void gtk_alert_dlg_init(alert_dlg_t *p_dlg,GtkBuilder *builder) |
|---|
| 71 | { |
|---|
| 72 | p_dlg->dlg = GTK_MESSAGE_DIALOG( gtk_builder_get_object( builder, "alert_dialog" ) ); |
|---|
| 73 | APP_ASSERT(p_dlg->dlg); |
|---|
| 74 | } |
|---|
| 75 | |
|---|
| 76 | void gtk_alert_dlg(alert_dlg_t *p_dlg, char * message) |
|---|
| 77 | { |
|---|
| 78 | /* Populate the dialog */ |
|---|
| 79 | gtk_message_dialog_set_markup(p_dlg->dlg,message); |
|---|
| 80 | |
|---|
| 81 | gtk_dialog_run(GTK_DIALOG(p_dlg->dlg)); |
|---|
| 82 | gtk_widget_hide( GTK_WIDGET(p_dlg->dlg) ); |
|---|
| 83 | } |
|---|
| 84 | |
|---|