/*
PSPPIRE --- A Graphical User Interface for PSPP
Copyright (C) 2004,2005 Free Software Foundation
- Written by John Darrington
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <stdarg.h>
#include <config.h>
+#include <gettext.h>
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
#include <libpspp/message.h>
+#include <libpspp/msg-locator.h>
#include "message-dialog.h"
#include "progname.h"
extern GladeXML *xml;
-#define _(A) A
-static void handle_msg(const struct msg *);
-static void enqueue_msg(const struct msg *m);
+
+static void enqueue_msg (const struct msg *m);
static GQueue *message_queue;
+
void
-message_dialog_init (void)
+message_dialog_init (struct source_stream *ss)
{
message_queue = g_queue_new();
- msg_init(enqueue_msg);
+ msg_init (ss, enqueue_msg);
}
-
void
message_dialog_done (void)
{
if ( m )
{
- handle_msg(m);
+ popup_message(m);
msg_destroy(m);
return TRUE;
}
g_idle_add(dequeue_message, 0);
}
-static void
-handle_msg(const struct msg *m)
+
+void
+popup_message(const struct msg *m)
{
GtkWindow *parent;
GtkWidget *dialog;
msg = _("PSPP Error");
break;
};
-
+
parent = GTK_WINDOW(get_widget_assert(xml, "data_editor"));
dialog = gtk_message_dialog_new(parent,
message_type,
GTK_BUTTONS_CLOSE,
msg);
-
+
gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
- "%s", m->text);
-
+ _("%s (line %d) %s"),
+ m->where.file_name,
+ m->where.line_number,
+ m->text);
+
gtk_window_set_transient_for(GTK_WINDOW(dialog), parent);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy (dialog);
}
-/* FIXME: This is a stub .
- * A temporary workaround until getl.c is rearranged
- */
-void
-msg_location (struct msg_locator *loc)
-{
- loc->file_name = 0;
- loc->line_number = -1;
-}
-