/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation
+ Copyright (C) 2009, 2010, 2011, 2012, 2014 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
#include "psppire-dialog-action-factor.h"
+#include <float.h>
+
#include "psppire-var-view.h"
#include "dialog-common.h"
#include "psppire-selector.h"
G_DEFINE_TYPE (PsppireDialogActionFactor, psppire_dialog_action_factor, PSPPIRE_TYPE_DIALOG_ACTION);
-static const char *rot_method_syntax[] =
+static const char *rot_method_syntax[] =
{
"NOROTATE",
"VARIMAX",
}
static char *
-generate_syntax (PsppireDialogAction *act)
+generate_syntax (const PsppireDialogAction *act)
{
PsppireDialogActionFactor *rd = PSPPIRE_DIALOG_ACTION_FACTOR (act);
if ( rd->extraction.explicit_nfactors )
ds_put_c_format (&str, "FACTORS (%d)", rd->extraction.n_factors);
else
- ds_put_c_format (&str, "MINEIGEN (%g)", rd->extraction.mineigen);
+ ds_put_c_format (&str, "MINEIGEN (%.*g)",
+ DBL_DIG + 1, rd->extraction.mineigen);
/*
The CRITERIA = ITERATE subcommand is overloaded.
ds_put_cstr (&str, "\n\t/PRINT = ");
ds_put_cstr (&str, "INITIAL ");
- if ( rd->extraction.unrotated )
+ if ( rd->extraction.unrotated )
ds_put_cstr (&str, "EXTRACTION ");
if ( rd->rotation.rotated_solution )
{
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fd->display_rotated_solution),
p->rotated_solution);
-
+
gtk_spin_button_set_value (GTK_SPIN_BUTTON (fd->rotate_iterations),
p->iterations);
gtk_combo_box_set_active (GTK_COMBO_BOX (fd->extraction_combo), 1);
else
gtk_combo_box_set_active (GTK_COMBO_BOX (fd->extraction_combo), 0);
-
+
}
static gboolean
}
}
-static void
-psppire_dialog_action_factor_activate (GtkAction *a)
+static GtkBuilder *
+psppire_dialog_action_factor_activate (PsppireDialogAction *a, GVariant *param)
{
PsppireDialogAction *pda = PSPPIRE_DIALOG_ACTION (a);
PsppireDialogActionFactor *act = PSPPIRE_DIALOG_ACTION_FACTOR (a);
GtkWidget *extraction_button ;
GtkWidget *rotation_button ;
- GtkBuilder *xml = builder_new ("factor.ui");
+ GtkBuilder *xml = builder_new ( "factor.ui");
pda->dialog = get_widget_assert (xml, "factor-dialog");
pda->source = get_widget_assert (xml, "dict-view");
G_CALLBACK (run_extractions_subdialog), act);
g_signal_connect_swapped (rotation_button, "clicked", G_CALLBACK (run_rotations_subdialog), act);
-
psppire_dialog_action_set_valid_predicate (pda, (void *) dialog_state_valid);
psppire_dialog_action_set_refresh (pda, dialog_refresh);
- PSPPIRE_DIALOG_ACTION_CLASS (psppire_dialog_action_factor_parent_class)->activate (pda);
-
- g_object_unref (xml);
+ return xml;
}
static void
psppire_dialog_action_factor_class_init (PsppireDialogActionFactorClass *class)
{
- GTK_ACTION_CLASS (class)->activate = psppire_dialog_action_factor_activate;
+ PSPPIRE_DIALOG_ACTION_CLASS (class)->initial_activate = psppire_dialog_action_factor_activate;
PSPPIRE_DIALOG_ACTION_CLASS (class)->generate_syntax = generate_syntax;
}