Commit 101d8550 authored by Jukka-Pekka Iivonen's avatar Jukka-Pekka Iivonen Committed by jpekka

Implemented Glade dialogs for T-Test tools.

2000-02-18  Jukka-Pekka Iivonen  <iivonen@iki.fi>

	* src/dialogs/analysis-tools.glade,
 	src/dialogs/dialog-analysis-tools.c: Implemented Glade dialogs for
 	T-Test tools.

	* src/dialogs/dialog-autosave.c: Fixed a few bugs in
 	dialog_autosave (cancel caused segmentation fault at the next
 	run).  Made the prompt button unsensitive if the autosave is
 	turned off.

	* src/analysis-tools.c: Made the titles to be printed in italic
 	style for Correlation, Covariance, F-Test, and T-Test tools.  In
 	addition, the columns are autosized.
parent f72bc295
2000-02-18 Jukka-Pekka Iivonen <iivonen@iki.fi>
* src/dialogs/analysis-tools.glade,
src/dialogs/dialog-analysis-tools.c: Implemented Glade dialogs for
T-Test tools.
* src/dialogs/dialog-autosave.c: Fixed a few bugs in
dialog_autosave (cancel caused segmentation fault at the next
run). Made the prompt button unsensitive if the autosave is
turned off.
* src/analysis-tools.c: Made the titles to be printed in italic
style for Correlation, Covariance, F-Test, and T-Test tools. In
addition, the columns are autosized.
2000-02-16 Miguel de Icaza <miguel@gnu.org>
* src/widgets/widget-pixmap-combo.c (pixmap_combo_select_pixmap):
......
2000-02-18 Jukka-Pekka Iivonen <iivonen@iki.fi>
* src/dialogs/analysis-tools.glade,
src/dialogs/dialog-analysis-tools.c: Implemented Glade dialogs for
T-Test tools.
* src/dialogs/dialog-autosave.c: Fixed a few bugs in
dialog_autosave (cancel caused segmentation fault at the next
run). Made the prompt button unsensitive if the autosave is
turned off.
* src/analysis-tools.c: Made the titles to be printed in italic
style for Correlation, Covariance, F-Test, and T-Test tools. In
addition, the columns are autosized.
2000-02-16 Miguel de Icaza <miguel@gnu.org>
* src/widgets/widget-pixmap-combo.c (pixmap_combo_select_pixmap):
......
......@@ -3,6 +3,8 @@
*
* Author:
* Jukka-Pekka Iivonen <iivonen@iki.fi>
*
* (C) Copyright 2000 by Jukka-Pekka Iivonen <iivonen@iki.fi>
*/
#include <config.h>
......@@ -247,6 +249,48 @@ prepare_output (Workbook *wb, data_analysis_output_t *dao, char *name)
}
}
static void
autofit_column (data_analysis_output_t *dao, int col)
{
int ideal_size, actual_col;
if (dao->type == NewSheetOutput ||
dao->type == NewWorkbookOutput)
actual_col = col;
else
actual_col = dao->start_col + col;
ideal_size = sheet_col_size_fit_pixels (dao->sheet, actual_col);
if (ideal_size == 0)
return;
sheet_col_set_size_pixels (dao->sheet, actual_col, ideal_size+5,
TRUE);
}
static void
set_italic (data_analysis_output_t *dao, int col1, int row1,
int col2, int row2)
{
MStyle *mstyle = mstyle_new ();
Range range;
int col_inc, row_inc;
if (dao->type == RangeOutput) {
col_inc = dao->start_col;
row_inc = dao->start_row;
} else
col_inc = row_inc= 0;
range.start.col = col1 + col_inc;
range.start.row = row1 + row_inc;
range.end.col = col2 + col_inc;
range.end.row = row2 + row_inc;
mstyle_set_font_italic (mstyle, TRUE);
sheet_style_attach (dao->sheet, range, mstyle);
}
/************* Correlation Tool *******************************************
*
......@@ -395,6 +439,16 @@ correlation_tool (Workbook *wb, Sheet *sheet,
free_data_set (&data_sets[i]);
g_free (data_sets);
set_italic (dao, 0, 0, 0, vars+1);
set_italic (dao, 0, 0, vars+1, 0);
for (col=0; col<=vars; col++)
autofit_column (dao, col);
sheet_set_dirty (dao->sheet, TRUE);
sheet_compute_visible_ranges (dao->sheet);
sheet_redraw_all (dao->sheet);
return 0;
}
......@@ -542,6 +596,16 @@ covariance_tool (Workbook *wb, Sheet *sheet,
free_data_set (&data_sets[i]);
g_free (data_sets);
set_italic (dao, 0, 0, 0, vars+1);
set_italic (dao, 0, 0, vars+1, 0);
for (col=0; col<=vars; col++)
autofit_column (dao, col);
sheet_set_dirty (dao->sheet, TRUE);
sheet_compute_visible_ranges (dao->sheet);
sheet_redraw_all (dao->sheet);
return 0;
}
......@@ -1263,6 +1327,17 @@ ttest_paired_tool (Workbook *wb, Sheet *sheet, Range *input_range1,
free_data_set (&set_one);
free_data_set (&set_two);
set_italic (dao, 0, 0, 0, 11);
set_italic (dao, 0, 0, 2, 0);
autofit_column (dao, 0);
autofit_column (dao, 1);
autofit_column (dao, 2);
sheet_set_dirty (dao->sheet, TRUE);
sheet_compute_visible_ranges (dao->sheet);
sheet_redraw_all (dao->sheet);
return 0;
}
......@@ -1389,6 +1464,17 @@ ttest_eq_var_tool (Workbook *wb, Sheet *sheet, Range *input_range1,
free_data_set (&set_one);
free_data_set (&set_two);
set_italic (dao, 0, 0, 0, 11);
set_italic (dao, 0, 0, 2, 0);
autofit_column (dao, 0);
autofit_column (dao, 1);
autofit_column (dao, 2);
sheet_set_dirty (dao->sheet, TRUE);
sheet_compute_visible_ranges (dao->sheet);
sheet_redraw_all (dao->sheet);
return 0;
}
......@@ -1508,6 +1594,17 @@ ttest_neq_var_tool (Workbook *wb, Sheet *sheet, Range *input_range1,
free_data_set (&set_one);
free_data_set (&set_two);
set_italic (dao, 0, 0, 0, 11);
set_italic (dao, 0, 0, 2, 0);
autofit_column (dao, 0);
autofit_column (dao, 1);
autofit_column (dao, 2);
sheet_set_dirty (dao->sheet, TRUE);
sheet_compute_visible_ranges (dao->sheet);
sheet_redraw_all (dao->sheet);
return 0;
}
......@@ -1622,6 +1719,17 @@ ftest_tool (Workbook *wb, Sheet *sheet, Range *input_range1,
free_data_set (&set_one);
free_data_set (&set_two);
set_italic (dao, 0, 0, 0, 11);
set_italic (dao, 0, 0, 2, 0);
autofit_column (dao, 0);
autofit_column (dao, 1);
autofit_column (dao, 2);
sheet_set_dirty (dao->sheet, TRUE);
sheet_compute_visible_ranges (dao->sheet);
sheet_redraw_all (dao->sheet);
return 0;
}
......
This diff is collapsed.
......@@ -16,6 +16,17 @@ gchar *s = N_("Output options:");
gchar *s = N_("Output Range: ");
gchar *s = N_("New Workbook");
gchar *s = N_("New Sheet ");
gchar *s = N_("T-Test: Paired Two Sample for Means");
gchar *s = N_("Input:");
gchar *s = N_("Labels in First Row ");
gchar *s = N_(" Variable 1 Range: ");
gchar *s = N_(" Variable 2 Range: ");
gchar *s = N_("Hypothesized Mean Difference: ");
gchar *s = N_(" Alpha: ");
gchar *s = N_("Output options:");
gchar *s = N_("Output Range: ");
gchar *s = N_("New Workbook");
gchar *s = N_("New Sheet ");
gchar *s = N_("Correlation");
gchar *s = N_("Input:");
gchar *s = N_(" Input Range: ");
......
......@@ -1063,69 +1063,69 @@ ztest_dialog_loop:
static void
dialog_ttest_paired_tool (Workbook *wb, Sheet *sheet)
{
static GtkWidget *dialog, *box;
static GtkWidget *range1_entry, *range2_entry, *output_range_entry;
static GtkWidget *mean_diff_entry, *alpha_entry;
static GSList *output_ops;
static int labels = 0;
data_analysis_output_t dao;
float_t mean_diff, alpha;
char *text;
int selection, output;
static Range range_input1, range_input2;
label_row_flag = labels;
if (!dialog) {
dialog = new_dialog(_("t-Test: Paired Two Sample for Means"));
GladeXML *gui;
GtkWidget *range1_entry, *range2_entry;
GtkWidget *mean_diff_entry;
GtkWidget *alpha_entry;
GtkWidget *dialog;
GtkWidget *checkbutton;
GtkWidget *output_range_entry;
box = gtk_vbox_new (FALSE, 0);
data_analysis_output_t dao;
gtk_box_pack_start_defaults (GTK_BOX (GNOME_DIALOG
(dialog)->vbox), box);
gboolean labels = FALSE;
float_t alpha, mean_diff;
char *text;
int selection, x1, x2, y1, y2;
Range range_input1, range_input2;
box = new_frame(_("Input:"), box);
gui = glade_xml_new (GNUMERIC_GLADEDIR "/analysis-tools.glade", NULL);
range1_entry = hbox_pack_label_and_entry
(_("Variable 1 Range:"), "", 20, box);
if (!gui) {
printf ("Could not find analysis-tools.glade\n");
return;
}
range2_entry = hbox_pack_label_and_entry
(_("Variable 2 Range:"), "", 20, box);
dao.type = NewSheetOutput;
mean_diff_entry = hbox_pack_label_and_entry
(_("Hypothesized Mean Difference:"), "0", 20, box);
dialog = glade_xml_get_widget (gui, "TTest1");
range1_entry = glade_xml_get_widget (gui, "ttest1_entry1");
range2_entry = glade_xml_get_widget (gui, "ttest1_entry2");
mean_diff_entry = glade_xml_get_widget (gui, "ttest1_entry3");
alpha_entry = glade_xml_get_widget (gui, "ttest1_entry4");
checkbutton = glade_xml_get_widget (gui, "ttest1_checkbutton");
output_range_entry = glade_xml_get_widget (gui, "ttest1_entry5");
alpha_entry = hbox_pack_label_and_entry(_("Alpha:"), "0.95",
20, box);
add_check_buttons(box, first_row_label_button);
if (!dialog || !range1_entry || !range2_entry || !alpha_entry ||
!mean_diff_entry || !output_range_entry || !checkbutton) {
printf ("Corrupt file analysis-tools.glade\n");
return;
}
if (set_output_option_signals (gui, &dao, "ttest1"))
return;
box = gtk_vbox_new (FALSE, 0);
gtk_box_pack_start_defaults (GTK_BOX (GNOME_DIALOG
(dialog)->vbox), box);
gtk_entry_set_text (GTK_ENTRY (mean_diff_entry), "0");
gtk_entry_set_text (GTK_ENTRY (alpha_entry), "0.95");
output_range_entry = add_output_frame(box, &output_ops);
gtk_signal_connect (GTK_OBJECT (checkbutton), "toggled",
GTK_SIGNAL_FUNC (checkbutton_toggled), &labels);
gtk_widget_show_all (dialog);
} else
gtk_widget_show_all (dialog);
gtk_widget_grab_focus (range1_entry);
ttest_dialog_loop:
dialog_loop:
selection = gnumeric_dialog_run (wb, GNOME_DIALOG (dialog));
if (selection == -1)
if (selection == -1) {
gtk_object_unref (GTK_OBJECT (gui));
return;
}
if (selection != 0) {
gnome_dialog_close (GNOME_DIALOG (dialog));
gtk_object_destroy (GTK_OBJECT (dialog));
return;
}
output = gtk_radio_group_get_selected (output_ops);
text = gtk_entry_get_text (GTK_ENTRY (range1_entry));
if (!parse_range (text, &range_input1.start.col,
&range_input1.start.row,
......@@ -1134,7 +1134,7 @@ ttest_dialog_loop:
error_in_entry(wb, range1_entry,
_("You should introduce a valid cell range "
"in 'Variable 1:'"));
goto ttest_dialog_loop;
goto dialog_loop;
}
text = gtk_entry_get_text (GTK_ENTRY (range2_entry));
......@@ -1145,94 +1145,109 @@ ttest_dialog_loop:
error_in_entry(wb, range2_entry,
_("You should introduce a valid cell range "
"in 'Variable 2:'"));
goto ttest_dialog_loop;
goto dialog_loop;
}
text = gtk_entry_get_text (GTK_ENTRY (mean_diff_entry));
mean_diff = atof(text);
text = gtk_entry_get_text (GTK_ENTRY (alpha_entry));
alpha = atof(text);
if (parse_output(output, sheet, output_range_entry, wb, &dao))
goto ttest_dialog_loop;
text = gtk_entry_get_text (GTK_ENTRY (mean_diff_entry));
mean_diff = atof(text);
if (dao.type == RangeOutput) {
text = gtk_entry_get_text (GTK_ENTRY (output_range_entry));
if (!parse_range (text, &x1, &y1, &x2, &y2)) {
error_in_entry(wb, output_range_entry,
_("You should introduce a valid cell "
"range in 'Output Range:'"));
goto dialog_loop;
} else {
dao.start_col = x1;
dao.start_row = y1;
dao.cols = x2-x1+1;
dao.rows = y2-y1+1;
dao.sheet = sheet;
}
}
labels = label_row_flag;
dao.labels_flag = labels;
if (ttest_paired_tool (wb, sheet, &range_input1, &range_input2,
mean_diff, alpha, &dao))
goto ttest_dialog_loop;
goto dialog_loop;
workbook_focus_sheet(sheet);
gnome_dialog_close (GNOME_DIALOG (dialog));
gtk_object_destroy (GTK_OBJECT (dialog));
gtk_object_unref (GTK_OBJECT (gui));
}
static void
dialog_ttest_eq_tool (Workbook *wb, Sheet *sheet)
{
static GtkWidget *dialog, *box;
static GtkWidget *range1_entry, *range2_entry, *output_range_entry;
static GtkWidget *mean_diff_entry, *alpha_entry;
static GSList *output_ops;
static int labels = 0;
data_analysis_output_t dao;
float_t mean_diff, alpha;
char *text;
int selection, output;
static Range range_input1, range_input2;
label_row_flag = labels;
if (!dialog) {
dialog = new_dialog(_("t-Test: Two-Sample Assuming Equal Variances"));
GladeXML *gui;
GtkWidget *range1_entry, *range2_entry;
GtkWidget *mean_diff_entry;
GtkWidget *alpha_entry;
GtkWidget *dialog;
GtkWidget *checkbutton;
GtkWidget *output_range_entry;
box = gtk_vbox_new (FALSE, 0);
data_analysis_output_t dao;
gtk_box_pack_start_defaults (GTK_BOX (GNOME_DIALOG
(dialog)->vbox), box);
gboolean labels = FALSE;
float_t alpha, mean_diff;
char *text;
int selection, x1, x2, y1, y2;
Range range_input1, range_input2;
box = new_frame(_("Input:"), box);
gui = glade_xml_new (GNUMERIC_GLADEDIR "/analysis-tools.glade", NULL);
range1_entry = hbox_pack_label_and_entry
(_("Variable 1 Range:"), "", 20, box);
if (!gui) {
printf ("Could not find analysis-tools.glade\n");
return;
}
range2_entry = hbox_pack_label_and_entry
(_("Variable 2 Range:"), "", 20, box);
dao.type = NewSheetOutput;
mean_diff_entry = hbox_pack_label_and_entry
(_("Hypothesized Mean Difference:"), "0", 20, box);
dialog = glade_xml_get_widget (gui, "TTest2");
range1_entry = glade_xml_get_widget (gui, "ttest2_entry1");
range2_entry = glade_xml_get_widget (gui, "ttest2_entry2");
mean_diff_entry = glade_xml_get_widget (gui, "ttest2_entry3");
alpha_entry = glade_xml_get_widget (gui, "ttest2_entry4");
checkbutton = glade_xml_get_widget (gui, "ttest2_checkbutton");
output_range_entry = glade_xml_get_widget (gui, "ttest2_entry5");
alpha_entry = hbox_pack_label_and_entry(_("Alpha:"), "0.95",
20, box);
add_check_buttons(box, first_row_label_button);
if (!dialog || !range1_entry || !range2_entry || !alpha_entry ||
!mean_diff_entry || !output_range_entry || !checkbutton) {
printf ("Corrupt file analysis-tools.glade\n");
return;
}
if (set_output_option_signals (gui, &dao, "ttest2"))
return;
box = gtk_vbox_new (FALSE, 0);
gtk_box_pack_start_defaults (GTK_BOX (GNOME_DIALOG
(dialog)->vbox), box);
gtk_entry_set_text (GTK_ENTRY (mean_diff_entry), "0");
gtk_entry_set_text (GTK_ENTRY (alpha_entry), "0.95");
output_range_entry = add_output_frame(box, &output_ops);
gtk_signal_connect (GTK_OBJECT (checkbutton), "toggled",
GTK_SIGNAL_FUNC (checkbutton_toggled), &labels);
gtk_widget_show_all (dialog);
} else
gtk_widget_show_all (dialog);
gtk_widget_grab_focus (range1_entry);
ttest_dialog_loop:
dialog_loop:
selection = gnumeric_dialog_run (wb, GNOME_DIALOG (dialog));
if (selection == -1)
if (selection == -1) {
gtk_object_unref (GTK_OBJECT (gui));
return;
}
if (selection != 0) {
gnome_dialog_close (GNOME_DIALOG (dialog));
gtk_object_destroy (GTK_OBJECT (dialog));
return;
}
output = gtk_radio_group_get_selected (output_ops);
text = gtk_entry_get_text (GTK_ENTRY (range1_entry));
if (!parse_range (text, &range_input1.start.col,
&range_input1.start.row,
......@@ -1241,7 +1256,7 @@ ttest_dialog_loop:
error_in_entry(wb, range1_entry,
_("You should introduce a valid cell range "
"in 'Variable 1:'"));
goto ttest_dialog_loop;
goto dialog_loop;
}
text = gtk_entry_get_text (GTK_ENTRY (range2_entry));
......@@ -1252,95 +1267,109 @@ ttest_dialog_loop:
error_in_entry(wb, range2_entry,
_("You should introduce a valid cell range "
"in 'Variable 2:'"));
goto ttest_dialog_loop;
goto dialog_loop;
}
text = gtk_entry_get_text (GTK_ENTRY (mean_diff_entry));
mean_diff = atof(text);
text = gtk_entry_get_text (GTK_ENTRY (alpha_entry));
alpha = atof(text);
if (parse_output(output, sheet, output_range_entry, wb, &dao))
goto ttest_dialog_loop;
text = gtk_entry_get_text (GTK_ENTRY (mean_diff_entry));
mean_diff = atof(text);
if (dao.type == RangeOutput) {
text = gtk_entry_get_text (GTK_ENTRY (output_range_entry));
if (!parse_range (text, &x1, &y1, &x2, &y2)) {
error_in_entry(wb, output_range_entry,
_("You should introduce a valid cell "
"range in 'Output Range:'"));
goto dialog_loop;
} else {
dao.start_col = x1;
dao.start_row = y1;
dao.cols = x2-x1+1;
dao.rows = y2-y1+1;
dao.sheet = sheet;
}
}
labels = label_row_flag;
dao.labels_flag = labels;
if (ttest_eq_var_tool (wb, sheet, &range_input1, &range_input2,
mean_diff, alpha, &dao))
goto ttest_dialog_loop;
goto dialog_loop;
workbook_focus_sheet(sheet);
gnome_dialog_close (GNOME_DIALOG (dialog));
gtk_object_destroy (GTK_OBJECT (dialog));
gtk_object_unref (GTK_OBJECT (gui));
}
static void
dialog_ttest_neq_tool (Workbook *wb, Sheet *sheet)
{
static GtkWidget *dialog, *box;
static GtkWidget *range1_entry, *range2_entry, *output_range_entry;
static GtkWidget *mean_diff_entry, *alpha_entry;
static GSList *output_ops;
static int labels = 0;
data_analysis_output_t dao;
float_t mean_diff, alpha;
char *text;
int selection, output;
static Range range_input1, range_input2;
label_row_flag = labels;
if (!dialog) {
dialog = new_dialog(_("t-Test: Two-Sample Assuming "
"Unequal Variances"));
GladeXML *gui;
GtkWidget *range1_entry, *range2_entry;
GtkWidget *mean_diff_entry;
GtkWidget *alpha_entry;
GtkWidget *dialog;
GtkWidget *checkbutton;
GtkWidget *output_range_entry;
box = gtk_vbox_new (FALSE, 0);
data_analysis_output_t dao;
gtk_box_pack_start_defaults (GTK_BOX (GNOME_DIALOG
(dialog)->vbox), box);
gboolean labels = FALSE;
float_t alpha, mean_diff;
char *text;
int selection, x1, x2, y1, y2;
Range range_input1, range_input2;
box = new_frame(_("Input:"), box);
gui = glade_xml_new (GNUMERIC_GLADEDIR "/analysis-tools.glade", NULL);
range1_entry = hbox_pack_label_and_entry
(_("Variable 1 Range:"), "", 20, box);
if (!gui) {
printf ("Could not find analysis-tools.glade\n");
return;
}
range2_entry = hbox_pack_label_and_entry
(_("Variable 2 Range:"), "", 20, box);
dao.type = NewSheetOutput;
mean_diff_entry = hbox_pack_label_and_entry
(_("Hypothesized Mean Difference:"), "0", 20, box);
dialog = glade_xml_get_widget (gui, "TTest3");
range1_entry = glade_xml_get_widget (gui, "ttest3_entry1");
range2_entry = glade_xml_get_widget (gui, "ttest3_entry2");
mean_diff_entry = glade_xml_get_widget (gui, "ttest3_entry3");
alpha_entry = glade_xml_get_widget (gui, "ttest3_entry4");
checkbutton = glade_xml_get_widget (gui, "ttest3_checkbutton");
output_range_entry = glade_xml_get_widget (gui, "ttest3_entry5");
alpha_entry = hbox_pack_label_and_entry(_("Alpha:"), "0.95",
20, box);
add_check_buttons(box, first_row_label_button);
if (!dialog || !range1_entry || !range2_entry || !alpha_entry ||
!mean_diff_entry || !output_range_entry || !checkbutton) {
printf ("Corrupt file analysis-tools.glade\n");
return;
}
if (set_output_option_signals (gui, &dao, "ttest3"))
return;
box = gtk_vbox_new (FALSE, 0);
gtk_box_pack_start_defaults (GTK_BOX (GNOME_DIALOG
(dialog)->vbox), box);
gtk_entry_set_text (GTK_ENTRY (mean_diff_entry), "0");
gtk_entry_set_text (GTK_ENTRY (alpha_entry), "0.95");
output_range_entry = add_output_frame(box, &output_ops);
gtk_signal_connect (GTK_OBJECT (checkbutton), "toggled",
GTK_SIGNAL_FUNC (checkbutton_toggled), &labels);
gtk_widget_show_all (dialog);
} else
gtk_widget_show_all (dialog);
gtk_widget_grab_focus (range1_entry);
ttest_dialog_loop:
dialog_loop:
selection = gnumeric_dialog_run (wb, GNOME_DIALOG (dialog));
if (selection == -1)
if (selection == -1) {
gtk_object_unref (GTK_OBJECT (gui));
return;
}
if (selection != 0) {
gnome_dialog_close (GNOME_DIALOG (dialog));
gtk_object_destroy (GTK_OBJECT (dialog));
return;
}
output = gtk_radio_group_get_selected (output_ops);
text = gtk_entry_get_text (GTK_ENTRY (range1_entry));
if (!parse_range (text, &range_input1.start.col,
&range_input1.start.row,
......@@ -1349,7 +1378,7 @@ ttest_dialog_loop:
error_in_entry(wb, range1_entry,
_("You should introduce a valid cell range "
"in 'Variable 1:'"));
goto ttest_dialog_loop;
goto dialog_loop;
}
text = gtk_entry_get_text (GTK_ENTRY (range2_entry));
......@@ -1360,26 +1389,41 @@ ttest_dialog_loop:
error_in_entry(wb, range2_entry,
_("You should introduce a valid cell range "
"in 'Variable 2:'"));
goto ttest_dialog_loop;
goto dialog_loop;
}
text = gtk_entry_get_text (GTK_ENTRY (mean_diff_entry));
mean_diff = atof(text);
text = gtk_entry_get_text (GTK_ENTRY (alpha_entry));
alpha = atof(text);
if (parse_output(output, sheet, output_range_entry, wb, &dao))
goto ttest_dialog_loop;
text = gtk_entry_get_text (GTK_ENTRY (mean_diff_entry));
mean_diff = atof(text);
if (dao.type == RangeOutput) {
text = gtk_entry_get_text (GTK_ENTRY (output_range_entry));
if (!parse_range (text, &x1, &y1, &x2, &y2)) {
error_in_entry(wb, output_range_entry,
_("You should introduce a valid cell "
"range in 'Output Range:'"));
goto dialog_loop;
} else {
dao.start_col = x1;
dao.start_row = y1;
dao.cols = x2-x1+1;
dao.rows = y2-y1+1;
dao.sheet = sheet;
}
}
labels = label_row_flag;
dao.labels_flag = labels;
if (ttest_neq_var_tool (wb, sheet, &range_input1, &range_input2,
mean_diff, alpha, &dao))
goto ttest_dialog_loop;
goto dialog_loop;
workbook_focus_sheet(sheet);