## Migrating from GnomeAbout to GtkAboutDialog

Since version 2.6, GTK+ provides the GtkAboutDialog widget as a replacement for the GnomeAbout dialog in the libgnomeui library.

GtkAboutDialog supports all features found in GnomeAbout. The GtkAboutDialog API is bigger, since it follows the GTK+ policy to have getters and setters for all widget properties, but it isn't much more complex than GnomeAbout.

To convert an application that uses GnomeAbout to GtkAboutDialog, as a first step, replace calls like

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    const gchar *documentors[] = {
          "Documenter 1",
          "Documenter 2",
          NULL
        };

        const gchar *documentors[] = {
          "Author 1",
          "Author 2",
          NULL
        };

        GtkWidget *about = gnome_about_new ("GNOME Test Program", VERSION,
                                            "(C) 1998-2001 The Free Software Foundation",
                                            "Program to display GNOME functions.",
                                            authors,
                                            documenters,
                                            _("translator-credits"),
                                            "logo.png");

by something like

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    GdkPixbuf *logo = gdk_pixbuf_new_from_file ("logo.png", NULL);
        GtkWidget *about = g_object_new (GTK_TYPE_ABOUT_DIALOG,
                                         "name", "GNOME Test Program",
                                         "version", VERSION,
                                         "copyright", "(C) 1998-2001 The Free Software Foundation",
                                         "comments", "Program to display GNOME functions.",
                                         "authors", authors,
                                         "documenters", documenters,
                                         "translator-credits", _("translator-credits"),
                                         "logo", logo,
                                         NULL);
        g_object_unref (pixbuf);

If the `g_object_new()` construction scares you, you can also use `gtk_about_dialog_new()` to construct the dialog and then use the setters for the individual properties.

Once you are done with the initial conversion, you may want to look into using some of the features of GtkAboutDialog which are not present in GnomeAbout.

- You can specify license information with the "license" property

- You can add separate credits for artists with the "artists" property

- You can add a pointer to the website of your application, using the "website" and "website-label" properties.

- If your credits contain email addresses or URLs, you can turn them into clickable links using `gtk_about_dialog_set_email_hook()` and `gtk_about_dialog_set_url_hook()`.