mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
GTK 3 cleanup: use GtkMessageDialog for message_box().
This is a lot easier than faffing about setting up a dialog box ourself, and also avoids direct access to GtkDialog's action area (deprecated in GTK 3.16).
This commit is contained in:
44
gtk.c
44
gtk.c
@ -1372,18 +1372,6 @@ static void window_destroy(GtkWidget *widget, gpointer data)
|
|||||||
gtk_main_quit();
|
gtk_main_quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void msgbox_button_clicked(GtkButton *button, gpointer data)
|
|
||||||
{
|
|
||||||
GtkWidget *window = GTK_WIDGET(data);
|
|
||||||
int v, *ip;
|
|
||||||
|
|
||||||
ip = (int *)g_object_get_data(G_OBJECT(window), "user-data");
|
|
||||||
v = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "user-data"));
|
|
||||||
*ip = v;
|
|
||||||
|
|
||||||
gtk_widget_destroy(GTK_WIDGET(data));
|
|
||||||
}
|
|
||||||
|
|
||||||
static int win_key_press(GtkWidget *widget, GdkEventKey *event, gpointer data)
|
static int win_key_press(GtkWidget *widget, GdkEventKey *event, gpointer data)
|
||||||
{
|
{
|
||||||
GObject *cancelbutton = G_OBJECT(data);
|
GObject *cancelbutton = G_OBJECT(data);
|
||||||
@ -1411,6 +1399,37 @@ static void align_label(GtkLabel *label, double x, double y)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if GTK_CHECK_VERSION(3,0,0)
|
||||||
|
int message_box(GtkWidget *parent, char *title, char *msg, int centre,
|
||||||
|
int type)
|
||||||
|
{
|
||||||
|
GtkWidget *window;
|
||||||
|
gint ret;
|
||||||
|
|
||||||
|
window = gtk_message_dialog_new
|
||||||
|
(GTK_WINDOW(parent),
|
||||||
|
(GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT),
|
||||||
|
(type == MB_OK ? GTK_MESSAGE_INFO : GTK_MESSAGE_QUESTION),
|
||||||
|
(type == MB_OK ? GTK_BUTTONS_OK : GTK_BUTTONS_YES_NO),
|
||||||
|
"%s", msg);
|
||||||
|
gtk_window_set_title(GTK_WINDOW(window), title);
|
||||||
|
ret = gtk_dialog_run(GTK_DIALOG(window));
|
||||||
|
gtk_widget_destroy(window);
|
||||||
|
return (type == MB_OK ? TRUE : (ret == GTK_RESPONSE_YES));
|
||||||
|
}
|
||||||
|
#else /* GTK_CHECK_VERSION(3,0,0) */
|
||||||
|
static void msgbox_button_clicked(GtkButton *button, gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *window = GTK_WIDGET(data);
|
||||||
|
int v, *ip;
|
||||||
|
|
||||||
|
ip = (int *)g_object_get_data(G_OBJECT(window), "user-data");
|
||||||
|
v = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "user-data"));
|
||||||
|
*ip = v;
|
||||||
|
|
||||||
|
gtk_widget_destroy(GTK_WIDGET(data));
|
||||||
|
}
|
||||||
|
|
||||||
int message_box(GtkWidget *parent, char *title, char *msg, int centre,
|
int message_box(GtkWidget *parent, char *title, char *msg, int centre,
|
||||||
int type)
|
int type)
|
||||||
{
|
{
|
||||||
@ -1474,6 +1493,7 @@ int message_box(GtkWidget *parent, char *title, char *msg, int centre,
|
|||||||
gtk_main();
|
gtk_main();
|
||||||
return (type == MB_YESNO ? i == 1 : TRUE);
|
return (type == MB_YESNO ? i == 1 : TRUE);
|
||||||
}
|
}
|
||||||
|
#endif /* GTK_CHECK_VERSION(3,0,0) */
|
||||||
|
|
||||||
void error_box(GtkWidget *parent, char *msg)
|
void error_box(GtkWidget *parent, char *msg)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user