New file: builder-wrapper.h and builder-wrapper.c
[pspp-builds.git] / src / ui / gui / factor-dialog.c
index 61427cc23285f25a928afdae15a664af0a8f120e..3385505fc388a676a7ada1ae3ef721dd55b17ab6 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2009  Free Software Foundation
+   Copyright (C) 2009, 2010, 2011, 2012  Free Software Foundation
 
    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
@@ -17,7 +17,6 @@
 #include <config.h>
 
 #include "dialog-common.h"
-#include <language/syntax-string-source.h>
 #include <ui/syntax-gen.h>
 #include <libpspp/str.h>
 
 #include "psppire-data-window.h"
 #include "psppire-var-view.h"
 
-#include "widget-io.h"
+#include "psppire-scanf.h"
 
 #include "executor.h"
 #include "helper.h"
+#include "builder-wrapper.h"
 
 #include <gtk/gtk.h>
 
@@ -341,10 +341,18 @@ factor_dialog (PsppireDataWindow *dw)
 
   {
     GtkWidget *hbox = get_widget_assert (fd.xml, "hbox6");
-    GtkWidget *eigenvalue_extraction = widget_scanf (_("Eigenvalues over %4.2f times the mean eigenvalue"), &fd.mineigen);
+    GtkWidget *eigenvalue_extraction ;
 
-    fd.nfactors_toggle = get_widget_assert (fd.xml, "nfactors-radiobutton");
     fd.mineigen_toggle = get_widget_assert (fd.xml, "mineigen-radiobutton");
+
+    eigenvalue_extraction = psppire_scanf_new (_("_Eigenvalues over %4.2f times the mean eigenvalue"), &fd.mineigen);
+
+    g_object_set (eigenvalue_extraction,
+                 "use-underline", TRUE,
+                 "mnemonic-widget", fd.mineigen_toggle,
+                 NULL);
+
+    fd.nfactors_toggle = get_widget_assert (fd.xml, "nfactors-radiobutton");
     fd.n_factors = get_widget_assert (fd.xml, "spinbutton-nfactors");
     fd.extract_iterations = get_widget_assert (fd.xml, "spinbutton-extract-iterations");
     fd.covariance_toggle = get_widget_assert (fd.xml,  "covariance-radiobutton");
@@ -400,22 +408,10 @@ factor_dialog (PsppireDataWindow *dw)
   switch (response)
     {
     case GTK_RESPONSE_OK:
-      {
-       gchar *syntax = generate_syntax (&fd);
-
-       struct getl_interface *sss = create_syntax_string_source (syntax);
-       execute_syntax (sss);
-
-       g_free (syntax);
-      }
+      g_free (execute_syntax_string (dw, generate_syntax (&fd)));
       break;
     case PSPPIRE_RESPONSE_PASTE:
-      {
-       gchar *syntax = generate_syntax (&fd);
-        paste_syntax_to_window (syntax);
-
-       g_free (syntax);
-      }
+      g_free (paste_syntax_to_window (generate_syntax (&fd)));
       break;
     default:
       break;