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)
{
GObject *cancelbutton = G_OBJECT(data);
#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 type)
{
gtk_main();
return (type == MB_YESNO ? i == 1 : TRUE);
}
+#endif /* GTK_CHECK_VERSION(3,0,0) */
void error_box(GtkWidget *parent, char *msg)
{
static void menu_about_event(GtkMenuItem *menuitem, gpointer data)
{
frontend *fe = (frontend *)data;
+
+#if GTK_CHECK_VERSION(3,0,0)
+ extern char *const *const xpm_icons[];
+ extern const int n_xpm_icons;
+ GdkPixbuf *icon = gdk_pixbuf_new_from_xpm_data
+ ((const gchar **)xpm_icons[n_xpm_icons-1]);
+ gtk_show_about_dialog
+ (GTK_WINDOW(fe->window),
+ "program-name", thegame.name,
+ "version", ver,
+ "comments", "Part of Simon Tatham's Portable Puzzle Collection",
+ "logo", icon,
+ (const gchar *)NULL);
+ g_object_unref(G_OBJECT(icon));
+#else
char titlebuf[256];
char textbuf[1024];
"%.500s", thegame.name, ver);
message_box(fe->window, titlebuf, textbuf, TRUE, MB_OK);
+#endif
}
static GtkWidget *add_menu_item_with_key(frontend *fe, GtkContainer *cont,