]> err.no Git - mapper/blob - src/dialogs.c
Split out simple dialogs from ui-common.c to dialogs.c
[mapper] / src / dialogs.c
1 #include "config.h"
2
3 #include <glib/gstdio.h>
4 #include <gtk/gtk.h>
5
6 #include "ui-maemo.h"
7 #include "hildon-wrappers.h"
8 #include "dialogs.h"
9
10 /**
11  * Pop up a modal dialog box with simple error information in it.
12  */
13 void 
14 popup_error(GtkWidget *window, const gchar *error)
15 {
16 GtkWidget *dialog;
17
18 #ifdef WITH_HILDON
19 dialog=hildon_note_new_information(GTK_WINDOW(window), error);
20 #else
21 dialog=gtk_message_dialog_new (GTK_WINDOW(window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, error);
22 #endif
23 gtk_dialog_run(GTK_DIALOG(dialog));
24 gtk_widget_destroy(dialog);
25 }
26
27 gboolean
28 dialog_confirm(GtkWidget *window, const gchar *msg)
29 {
30 GtkWidget *confirm;
31 gboolean r;
32
33 confirm=hildon_note_new_confirmation(GTK_WINDOW(window),msg);
34 r=(GTK_RESPONSE_OK == gtk_dialog_run(GTK_DIALOG(confirm))) ? TRUE : FALSE;
35 gtk_widget_destroy(confirm);
36 return r;
37 }
38
39 GtkWidget *
40 progress_dialog(GtkWidget *window, const gchar *title, GtkWidget *progress)
41 {
42 GtkWidget *dialog;
43
44 dialog=gtk_dialog_new();
45 gtk_window_set_title(GTK_WINDOW(dialog), title);
46 gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(window));
47 gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
48 #ifndef WITH_HILDON
49 gtk_window_set_deletable(GTK_WINDOW(dialog), FALSE);
50 #endif
51 /* gtk_window_set_decorated(GTK_WINDOW(dialog), FALSE); */
52 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), gtk_label_new(title), TRUE, TRUE, 0);
53 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), progress, TRUE, TRUE, 0);
54 gtk_widget_show_all(dialog);
55 return dialog;
56 }
57
58 void
59 progress_dialog_remove(GtkWidget *dialog)
60 {
61 if (dialog)
62         gtk_widget_destroy(dialog);
63 }