[gnumeric] Fix spin button handling in various tool dialogs. [#619971]
- From: Andreas J. Guelzow <guelzow src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] Fix spin button handling in various tool dialogs. [#619971]
- Date: Tue, 1 Jun 2010 01:22:37 +0000 (UTC)
commit 9a9dacc013a455d18da943e499d985b3ffe15ed0
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date: Mon May 31 19:22:28 2010 -0600
Fix spin button handling in various tool dialogs. [#619971]
2010-05-31 Andreas J. Guelzow <aguelzow pyrshep ca>
* tool-dialogs.h (tool_setup_update): new
* dialog-analysis-tool-chi-squared.c (dialog_chi_square_tool):
use tool_setup_update
* dialog-analysis-tool-frequency.c (dialog_frequency_tool):
ditto
* dialog-analysis-tool-normality.c (dialog_normality_tool):
ditto
* dialog-analysis-tool-sign-test.c (dialog_sign_test_two_tool):
ditto
(dialog_sign_test_tool): ditto
* dialog-analysis-tools.c (tool_setup_update): new
NEWS | 3 +-
src/dialogs/ChangeLog | 14 +++++
src/dialogs/dialog-analysis-tool-chi-squared.c | 28 +++++-----
src/dialogs/dialog-analysis-tool-frequency.c | 33 ++++++-------
src/dialogs/dialog-analysis-tool-normality.c | 12 ++---
src/dialogs/dialog-analysis-tool-sign-test.c | 61 ++++++++++--------------
src/dialogs/dialog-analysis-tools.c | 22 +++++++++
src/dialogs/tool-dialogs.h | 5 ++
8 files changed, 102 insertions(+), 76 deletions(-)
---
diff --git a/NEWS b/NEWS
index f21e0ea..7c39e1e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,8 @@
Gnumeric 1.10.6
Andreas:
- * Add Wilcoxon Signed Rank Test tools for one and two populations.
+ * Add Wilcoxon Signed Rank Test tools for one and two populations.
+ * Fix spin button handling in various tool dialogs. [#619971]
Morten:
* Make sure windows for help commands show up on right screen.
diff --git a/src/dialogs/ChangeLog b/src/dialogs/ChangeLog
index 627c418..0d714d6 100644
--- a/src/dialogs/ChangeLog
+++ b/src/dialogs/ChangeLog
@@ -1,5 +1,19 @@
2010-05-31 Andreas J. Guelzow <aguelzow pyrshep ca>
+ * tool-dialogs.h (tool_setup_update): new
+ * dialog-analysis-tool-chi-squared.c (dialog_chi_square_tool):
+ use tool_setup_update
+ * dialog-analysis-tool-frequency.c (dialog_frequency_tool):
+ ditto
+ * dialog-analysis-tool-normality.c (dialog_normality_tool):
+ ditto
+ * dialog-analysis-tool-sign-test.c (dialog_sign_test_two_tool):
+ ditto
+ (dialog_sign_test_tool): ditto
+ * dialog-analysis-tools.c (tool_setup_update): new
+
+2010-05-31 Andreas J. Guelzow <aguelzow pyrshep ca>
+
* dialogs.h (dialog_sign_test_two_tool): new
* dialog-analysis-tool-sign-test.c
(sign_test_tool_update_common_sensitivity_cb): new
diff --git a/src/dialogs/dialog-analysis-tool-chi-squared.c b/src/dialogs/dialog-analysis-tool-chi-squared.c
index 692486a..4cd60f9 100644
--- a/src/dialogs/dialog-analysis-tool-chi-squared.c
+++ b/src/dialogs/dialog-analysis-tool-chi-squared.c
@@ -228,21 +228,21 @@ dialog_chi_square_tool (WBCGtk *wbcg, Sheet *sheet, gboolean independence)
type ="test-of-independence";
else
type ="test-of-homogeneity";
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (glade_xml_get_widget (state->base.gui, type)),
- TRUE);
- state->label = glade_xml_get_widget (state->base.gui,
- "labels_button");
- g_signal_connect_after (G_OBJECT (state->label),
- "toggled",
- G_CALLBACK (chi_squared_tool_update_sensitivity_cb), state);
- state->alpha_entry = glade_xml_get_widget (state->base.gui,
- "alpha-entry");
+ gtk_toggle_button_set_active
+ (GTK_TOGGLE_BUTTON (glade_xml_get_widget (state->base.gui,
+ type)),
+ TRUE);
+
+ state->label = tool_setup_update
+ (&state->base, "labels_button",
+ G_CALLBACK (chi_squared_tool_update_sensitivity_cb),
+ state);
+
+ state->alpha_entry = tool_setup_update
+ (&state->base, "alpha-entry",
+ G_CALLBACK (chi_squared_tool_update_sensitivity_cb),
+ state);
float_to_entry (GTK_ENTRY (state->alpha_entry), 0.05);
- g_signal_connect_after (G_OBJECT (state->alpha_entry),
- "changed",
- G_CALLBACK (chi_squared_tool_update_sensitivity_cb), state);
- gnumeric_editable_enters (GTK_WINDOW (state->base.dialog),
- GTK_WIDGET (state->alpha_entry));
gnm_dao_set_put (GNM_DAO (state->base.gdao), TRUE, TRUE);
chi_squared_tool_update_sensitivity_cb (NULL, state);
diff --git a/src/dialogs/dialog-analysis-tool-frequency.c b/src/dialogs/dialog-analysis-tool-frequency.c
index 742bfeb..69a4243 100644
--- a/src/dialogs/dialog-analysis-tool-frequency.c
+++ b/src/dialogs/dialog-analysis-tool-frequency.c
@@ -262,24 +262,21 @@ dialog_frequency_tool (WBCGtk *wbcg, Sheet *sheet)
0))
return 0;
- state->predetermined_button = GTK_WIDGET (glade_xml_get_widget
- (state->base.gui,
- "pre_determined_button"));
- state->calculated_button = GTK_WIDGET (glade_xml_get_widget
- (state->base.gui,
- "calculated_button"));
- state->n_entry = GTK_ENTRY(glade_xml_get_widget (state->base.gui,
- "n_entry"));
-
- g_signal_connect_after (G_OBJECT (state->predetermined_button),
- "toggled",
- G_CALLBACK (frequency_tool_update_sensitivity_cb), state);
- g_signal_connect_after (G_OBJECT (state->calculated_button),
- "toggled",
- G_CALLBACK (frequency_tool_update_sensitivity_cb), state);
- g_signal_connect_after (G_OBJECT (state->n_entry),
- "changed",
- G_CALLBACK (frequency_tool_update_sensitivity_cb), state);
+ state->predetermined_button = tool_setup_update
+ (&state->base, "pre_determined_button",
+ G_CALLBACK (frequency_tool_update_sensitivity_cb),
+ state);
+
+ state->calculated_button = tool_setup_update
+ (&state->base, "calculated_button",
+ G_CALLBACK (frequency_tool_update_sensitivity_cb),
+ state);
+
+ state->n_entry =
+ GTK_ENTRY(tool_setup_update
+ (&state->base, "n_entry",
+ G_CALLBACK (frequency_tool_update_sensitivity_cb),
+ state));
g_signal_connect (G_OBJECT (state->n_entry),
"key-press-event",
G_CALLBACK (frequency_tool_set_calculated), state);
diff --git a/src/dialogs/dialog-analysis-tool-normality.c b/src/dialogs/dialog-analysis-tool-normality.c
index ee7323b..a52e821 100644
--- a/src/dialogs/dialog-analysis-tool-normality.c
+++ b/src/dialogs/dialog-analysis-tool-normality.c
@@ -206,14 +206,12 @@ dialog_normality_tool (WBCGtk *wbcg, Sheet *sheet)
return 0;
- state->alpha_entry = glade_xml_get_widget (state->base.gui,
- "alpha-entry");
+ state->alpha_entry = tool_setup_update
+ (&state->base, "alpha-entry",
+ G_CALLBACK (normality_tool_update_sensitivity_cb),
+ state);
+
float_to_entry (GTK_ENTRY (state->alpha_entry), 0.05);
- g_signal_connect_after (G_OBJECT (state->alpha_entry),
- "changed",
- G_CALLBACK (normality_tool_update_sensitivity_cb), state);
- gnumeric_editable_enters (GTK_WINDOW (state->base.dialog),
- GTK_WIDGET (state->alpha_entry));
gnm_dao_set_put (GNM_DAO (state->base.gdao), TRUE, TRUE);
normality_tool_update_sensitivity_cb (NULL, state);
diff --git a/src/dialogs/dialog-analysis-tool-sign-test.c b/src/dialogs/dialog-analysis-tool-sign-test.c
index 027cbc1..aedde52 100644
--- a/src/dialogs/dialog-analysis-tool-sign-test.c
+++ b/src/dialogs/dialog-analysis-tool-sign-test.c
@@ -266,27 +266,21 @@ dialog_sign_test_two_tool (WBCGtk *wbcg, Sheet *sheet, signtest_type type)
return 0;
- state->alpha_entry = glade_xml_get_widget (state->base.gui,
- "alpha-entry");
+ state->alpha_entry = tool_setup_update
+ (&state->base, "alpha-entry",
+ G_CALLBACK (sign_test_two_tool_update_sensitivity_cb),
+ state);
float_to_entry (GTK_ENTRY (state->alpha_entry), 0.05);
- g_signal_connect (G_OBJECT (state->alpha_entry),
- "value-changed",
- G_CALLBACK (sign_test_two_tool_update_sensitivity_cb),
- state);
- gnumeric_editable_enters (GTK_WINDOW (state->base.dialog),
- GTK_WIDGET (state->alpha_entry));
-
- state->median_entry = glade_xml_get_widget (state->base.gui,
- "median-entry");
+
+ state->median_entry = tool_setup_update
+ (&state->base, "median-entry",
+ G_CALLBACK (sign_test_two_tool_update_sensitivity_cb),
+ state);
int_to_entry (GTK_ENTRY (state->median_entry), 0);
- g_signal_connect_after (G_OBJECT (state->median_entry),
- "changed",
- G_CALLBACK (sign_test_two_tool_update_sensitivity_cb),
- state);
- gnumeric_editable_enters (GTK_WINDOW (state->base.dialog),
- GTK_WIDGET (state->median_entry));
+
w = glade_xml_get_widget (state->base.gui,
- (type == SIGNTEST) ? "signtest" : "signedranktest");
+ (type == SIGNTEST) ? "signtest"
+ : "signedranktest");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), TRUE);
gnm_dao_set_put (GNM_DAO (state->base.gdao), TRUE, TRUE);
@@ -417,26 +411,21 @@ dialog_sign_test_tool (WBCGtk *wbcg, Sheet *sheet, signtest_type type)
return 0;
- state->alpha_entry = glade_xml_get_widget (state->base.gui,
- "alpha-entry");
- float_to_entry (GTK_ENTRY (state->alpha_entry), 0.05);
- g_signal_connect (G_OBJECT (state->alpha_entry),
- "value-changed",
- G_CALLBACK (sign_test_tool_update_sensitivity_cb),
- state);
- gnumeric_editable_enters (GTK_WINDOW (state->base.dialog),
- GTK_WIDGET (state->alpha_entry));
-
- state->median_entry = glade_xml_get_widget (state->base.gui,
- "median-entry");
+ state->alpha_entry = tool_setup_update
+ (&state->base, "alpha-entry",
+ G_CALLBACK (sign_test_two_tool_update_sensitivity_cb),
+ state);
+ state->median_entry = tool_setup_update
+ (&state->base, "median-entry",
+ G_CALLBACK (sign_test_two_tool_update_sensitivity_cb),
+ state);
+
int_to_entry (GTK_ENTRY (state->median_entry), 0);
- g_signal_connect_after (G_OBJECT (state->median_entry),
- "changed", G_CALLBACK (sign_test_tool_update_sensitivity_cb),
- state);
- gnumeric_editable_enters (GTK_WINDOW (state->base.dialog),
- GTK_WIDGET (state->median_entry));
+ float_to_entry (GTK_ENTRY (state->alpha_entry), 0.05);
+
w = glade_xml_get_widget (state->base.gui,
- (type == SIGNTEST) ? "signtest" : "signedranktest");
+ (type == SIGNTEST) ? "signtest"
+ : "signedranktest");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), TRUE);
gnm_dao_set_put (GNM_DAO (state->base.gdao), TRUE, TRUE);
diff --git a/src/dialogs/dialog-analysis-tools.c b/src/dialogs/dialog-analysis-tools.c
index d7fdebf..4a95a92 100644
--- a/src/dialogs/dialog-analysis-tools.c
+++ b/src/dialogs/dialog-analysis-tools.c
@@ -529,6 +529,28 @@ tool_load_selection (GenericToolState *state, gboolean allow_multiple)
FALSE);
}
+
+GtkWidget *
+tool_setup_update (GenericToolState* state, char const *name, GCallback cb,
+ gpointer closure)
+{
+ GtkWidget *w = glade_xml_get_widget (state->gui, name);
+ if (GTK_IS_SPIN_BUTTON (w)) {
+ g_signal_connect_after (w, "value-changed", cb, closure);
+ gnumeric_editable_enters (GTK_WINDOW (state->dialog), w);
+ } else if (GTK_IS_ENTRY (w)) {
+ g_signal_connect_after (w, "changed", cb, closure);
+ gnumeric_editable_enters (GTK_WINDOW (state->dialog), w);
+ } else if (GTK_IS_TOGGLE_BUTTON (w))
+ g_signal_connect_after (w, "toggled", cb, closure);
+ else
+ g_warning ("tool_setup_update called with unknown type");
+ return w;
+}
+
+
+
+
/**********************************************/
/* Generic functions for the analysis tools */
/* Functions in this section are being used */
diff --git a/src/dialogs/tool-dialogs.h b/src/dialogs/tool-dialogs.h
index cf81c50..53c5baa 100644
--- a/src/dialogs/tool-dialogs.h
+++ b/src/dialogs/tool-dialogs.h
@@ -65,4 +65,9 @@ gboolean dialog_tool_init (GenericToolState *state,
GCallback sensitivity_cb,
GnmExprEntryFlags flags);
+GtkWidget *tool_setup_update (GenericToolState* state,
+ char const *name,
+ GCallback cb,
+ gpointer closure);
+
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]