- gtk_box_pack_start(GTK_BOX(hbox), icon, TRUE, FALSE, 10);
- gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 10);
+ mv_destroy (&dialog->mvl);
+ g_free (dialog->encoding);
+
+ G_OBJECT_CLASS (psppire_missing_val_dialog_parent_class)->finalize (obj);
+}
+
+PsppireMissingValDialog *
+psppire_missing_val_dialog_new (const struct variable *var)
+{
+ return PSPPIRE_MISSING_VAL_DIALOG (
+ g_object_new (PSPPIRE_TYPE_MISSING_VAL_DIALOG,
+ "variable", var,
+ NULL));
+}
+
+gint
+psppire_missing_val_dialog_run (GtkWindow *parent_window,
+ const struct variable *var,
+ struct missing_values *mv)
+{
+ PsppireMissingValDialog *dialog;
+
+ dialog = psppire_missing_val_dialog_new (var);
+ gtk_window_set_transient_for (GTK_WINDOW (dialog), parent_window);
+ gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+ gtk_widget_show (GTK_WIDGET (dialog));
+
+ gint result = psppire_dialog_run (PSPPIRE_DIALOG (dialog));
+ if (result == GTK_RESPONSE_OK)
+ mv_copy (mv, psppire_missing_val_dialog_get_missing_values (dialog));
+ else
+ mv_copy (mv, var_get_missing_values (var));
+
+ gtk_widget_destroy (GTK_WIDGET (dialog));
+ return result;
+}
+
+
+/* A simple (sub) dialog box for displaying user input errors */
+static void
+err_dialog (const gchar *msg, GtkWindow *window)
+{
+ GtkWidget *dialog =
+ gtk_message_dialog_new (window,
+ GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE,
+ "%s",msg);
+
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+}