gnome: add about dialog
Refs #69343
Change-Id: I3ef4e4af22c503d5fb92ab544afca43a8b195a32
diff --git a/src/dialogs.c b/src/dialogs.c
index 4a64e2d..d4f4f06 100644
--- a/src/dialogs.c
+++ b/src/dialogs.c
@@ -31,6 +31,8 @@
#include "dialogs.h"
#include <gtk/gtk.h>
+#include <glib/gprintf.h>
+#include "config.h"
GtkWidget *
ring_dialog_working(GtkWidget *parent, const gchar *msg)
@@ -70,4 +72,54 @@
gtk_widget_show_all(content_area);
return dialog;
-}
\ No newline at end of file
+}
+
+void
+ring_about_dialog(GtkWidget *parent)
+{
+ /* get parent window */
+ if (parent && GTK_IS_WIDGET(parent))
+ parent = gtk_widget_get_toplevel(GTK_WIDGET(parent));
+
+ /* get logo */
+ GError *error = NULL;
+ GdkPixbuf* logo = gdk_pixbuf_new_from_resource("/cx/ring/RingGnome/ring-logo-blue", &error);
+ if (logo == NULL) {
+ g_debug("Could not load logo: %s", error->message);
+ g_error_free(error);
+ }
+
+ gchar *version = g_strdup_printf("%d.%d.%d", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH);
+
+ const gchar *authors[] = {
+ [0] = "Stepan Salenikovich",
+ [1] = "Éloi Bail",
+ [2] = "Guillaume Roguez",
+ [3] = "Emmanuel Lepage",
+ [4] = "Alexandre Lision",
+ [5] = "Thibault Cohen",
+ [6] = NULL,
+ };
+
+ const gchar *artists[] = {
+ [0] = "Marianne Forget",
+ [1] = NULL,
+ };
+
+ gtk_show_about_dialog(
+ GTK_WINDOW(parent),
+ "program-name", "Gnome Ring",
+ "copyright", "© 2015 Savoir-faire Linux",
+ "license-type", GTK_LICENSE_GPL_3_0,
+ "logo", logo,
+ "version", version,
+ "comments", "The GNOME client for Ring.\nRing is a Voice-over-IP software phone.",
+ "authors", authors,
+ "website", "http://www.ring.cx/",
+ "website-label", "www.ring.cx",
+ "artists", artists,
+ NULL
+ );
+
+ g_free(version);
+}