diff src/xs_config.c @ 896:911401ea2145

Add message box functionality.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 09 Nov 2012 08:24:37 +0200
parents 5d4677af3c8e
children cfc20df88401
line wrap: on
line diff
--- a/src/xs_config.c	Fri Nov 09 08:22:41 2012 +0200
+++ b/src/xs_config.c	Fri Nov 09 08:24:37 2012 +0200
@@ -950,6 +950,49 @@
 }
 
 
+void xs_messagebox_ok(GtkButton *button, gpointer user_data)
+{
+    (void) button;
+    gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+
+
+void xs_messagebox_const(const gchar *title, const gchar *msg)
+{
+    GtkWidget *win = create_xs_messagebox();
+    GtkWidget *wid;
+
+    gtk_signal_connect(
+        GTK_OBJECT(lookup_widget(win, "xs_messagebox_ok")),
+        "clicked", GTK_SIGNAL_FUNC(xs_messagebox_ok), win);
+
+    if ((wid = lookup_widget(win, "xs_messagebox_frame")) != NULL)
+    {
+        gtk_frame_set_label(GTK_FRAME(wid), title);
+    }
+
+    if ((wid = lookup_widget(win, "xs_messagebox_msg")) != NULL)
+    {
+        gtk_label_set_text(GTK_LABEL(wid), msg);
+    }
+
+    gtk_widget_show(win);
+}
+
+
+void xs_messagebox(const gchar *title, const gchar *fmt, ...)
+{
+    va_list ap;
+    gchar *msg;
+
+    va_start(ap, fmt);
+    msg = g_strdup_vprintf(fmt, ap);
+    va_end(ap);
+
+    xs_messagebox_const(title, msg);
+    g_free(msg);
+}
+
 /* Confirmation window
  */
 gboolean xs_confirmwin_delete(GtkWidget *widget, GdkEvent *event, gpointer user_data)