chiark / gitweb /
GTK 3 cleanup: use GtkAboutDialog for the About box.
authorSimon Tatham <anakin@pobox.com>
Sun, 4 Oct 2015 18:57:25 +0000 (19:57 +0100)
committerSimon Tatham <anakin@pobox.com>
Sun, 4 Oct 2015 18:57:25 +0000 (19:57 +0100)
This is again easier than faffing about doing it manually, and as an
added bonus, we get to put the largest of our icons in the box as a
logo :-)

gtk.c

diff --git a/gtk.c b/gtk.c
index 62d0dd9278827bea0532192859a6b90f5d2a763e..78d8eaa5c4bba3e45a03c70bd0c0cff807a353f3 100644 (file)
--- a/gtk.c
+++ b/gtk.c
@@ -2229,6 +2229,21 @@ static void menu_config_event(GtkMenuItem *menuitem, gpointer data)
 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];
 
@@ -2239,6 +2254,7 @@ static void menu_about_event(GtkMenuItem *menuitem, gpointer data)
            "%.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,