19 |
|
|
20 |
#include "appdata.h" |
#include "appdata.h" |
21 |
|
|
22 |
void messagef(GtkWidget *parent, char *title, const char *fmt, ...) { |
static void vmessagef(GtkWidget *parent, int type, int buttons, |
23 |
va_list args; |
char *title, const char *fmt, |
24 |
va_start( args, fmt ); |
va_list args) { |
25 |
|
|
26 |
char *buf = g_strdup_vprintf(fmt, args); |
char *buf = g_strdup_vprintf(fmt, args); |
|
va_end( args ); |
|
27 |
|
|
|
printf("%s: \"%s\"\n", title, buf); |
|
|
|
|
28 |
GtkWidget *dialog = gtk_message_dialog_new( |
GtkWidget *dialog = gtk_message_dialog_new( |
29 |
GTK_WINDOW(parent), |
GTK_WINDOW(parent), |
30 |
GTK_DIALOG_DESTROY_WITH_PARENT, |
GTK_DIALOG_DESTROY_WITH_PARENT, |
31 |
GTK_MESSAGE_INFO, GTK_BUTTONS_OK, |
type, buttons, buf); |
|
buf); |
|
32 |
|
|
33 |
gtk_window_set_title(GTK_WINDOW(dialog), title); |
gtk_window_set_title(GTK_WINDOW(dialog), title); |
34 |
|
|
38 |
g_free(buf); |
g_free(buf); |
39 |
} |
} |
40 |
|
|
41 |
|
|
42 |
|
void messagef(GtkWidget *parent, char *title, const char *fmt, ...) { |
43 |
|
va_list args; |
44 |
|
va_start( args, fmt ); |
45 |
|
vmessagef(parent, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, title, fmt, args); |
46 |
|
va_end( args ); |
47 |
|
} |
48 |
|
|
49 |
|
void errorf(GtkWidget *parent, const char *fmt, ...) { |
50 |
|
va_list args; |
51 |
|
va_start( args, fmt ); |
52 |
|
vmessagef(parent, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, |
53 |
|
_("Error"), fmt, args); |
54 |
|
va_end( args ); |
55 |
|
} |
56 |
|
|
57 |
|
void warningf(GtkWidget *parent, const char *fmt, ...) { |
58 |
|
va_list args; |
59 |
|
va_start( args, fmt ); |
60 |
|
vmessagef(parent, GTK_MESSAGE_WARNING, GTK_BUTTONS_CLOSE, |
61 |
|
_("Warning"), fmt, args); |
62 |
|
va_end( args ); |
63 |
|
} |
64 |
|
|
65 |
static void on_toggled(GtkWidget *button, gpointer data) { |
static void on_toggled(GtkWidget *button, gpointer data) { |
66 |
gboolean active = |
gboolean active = |
67 |
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)); |
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)); |
128 |
return yes; |
return yes; |
129 |
} |
} |
130 |
|
|
|
void errorf(GtkWidget *parent, const char *fmt, ...) { |
|
|
va_list args; |
|
|
va_start( args, fmt ); |
|
|
char *buf = g_strdup_vprintf(fmt, args); |
|
|
va_end( args ); |
|
|
|
|
|
printf("errorf(\"%s\")\n", buf); |
|
|
|
|
|
GtkWidget *dialog = gtk_message_dialog_new( |
|
|
GTK_WINDOW(parent), |
|
|
GTK_DIALOG_DESTROY_WITH_PARENT, |
|
|
GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, |
|
|
buf); |
|
|
|
|
|
gtk_window_set_title(GTK_WINDOW(dialog), _("ERROR")); |
|
|
|
|
|
gtk_dialog_run(GTK_DIALOG(dialog)); |
|
|
gtk_widget_destroy(dialog); |
|
|
|
|
|
g_free(buf); |
|
|
} |
|
|
|
|
131 |
static const char *data_paths[] = { |
static const char *data_paths[] = { |
132 |
"~/." PACKAGE, // in home directory |
"~/." PACKAGE, // in home directory |
133 |
PREFIX "/share/" PACKAGE , // final installation path |
PREFIX "/share/" PACKAGE , // final installation path |