/** * random_cor_tool_update_sensitivity_cb: * @dummy: * @state: * * Update the dialog widgets sensitivity if the only items of interest * are the standard input (one range) and output items. **/ static void random_cor_tool_update_sensitivity_cb (G_GNUC_UNUSED GtkWidget *dummy, RandomCorToolState *state) { GnmValue *input_range; gint height, width, count; input_range = gnm_expr_entry_parse_as_value (GNM_EXPR_ENTRY (state->base.input_entry), state->base.sheet); if (input_range == NULL) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The matrix range is not valid.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); return; } height = input_range->v_range.cell.b.row - input_range->v_range.cell.a.row; width = input_range->v_range.cell.b.col - input_range->v_range.cell.a.col; value_release (input_range); if (height != width || height == 0) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The matrix must be symmetric positive-definite.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); return; } if (!gnm_dao_is_ready (GNM_DAO (state->base.gdao))) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The output specification " "is invalid.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); return; } if (entry_to_int (GTK_ENTRY (state->count_entry), &count, FALSE) != 0 || count <= 0) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The number of random numbers requested is invalid.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); return; } gtk_label_set_text (GTK_LABEL (state->base.warning), ""); gtk_widget_set_sensitive (state->base.ok_button, TRUE); }
/** * advanced_filter_update_sensitivity_cb: * @dummy: * @state: * * Update the dialog widgets sensitivity **/ static void advanced_filter_update_sensitivity_cb (G_GNUC_UNUSED GtkWidget *dummy, AdvancedFilterState *state) { GnmValue *input_range = NULL; GnmValue *criteria_range = NULL; input_range = gnm_expr_entry_parse_as_value ( GNM_EXPR_ENTRY (state->input_entry), state->sheet); if (input_range == NULL) { gtk_label_set_text (GTK_LABEL (state->warning), _("The list range is invalid.")); gtk_widget_set_sensitive (state->ok_button, FALSE); return; } else value_release (input_range); criteria_range = gnm_expr_entry_parse_as_value (state->input_entry_2, state->sheet); if (criteria_range == NULL) { gtk_label_set_text (GTK_LABEL (state->warning), _("The criteria range is invalid.")); gtk_widget_set_sensitive (state->ok_button, FALSE); return; } else value_release (criteria_range); if (!gnm_dao_is_ready (GNM_DAO (state->gdao))) { gtk_label_set_text (GTK_LABEL (state->warning), _("The output range is invalid.")); gtk_widget_set_sensitive (state->ok_button, FALSE); return; } gtk_label_set_text (GTK_LABEL (state->warning), ""); gtk_widget_set_sensitive (state->ok_button, TRUE); return; }
static void cb_fill_series_update_sensitivity (G_GNUC_UNUSED GtkWidget *dummy, FillSeriesState *state) { gboolean ready; gboolean step, stop; gnm_float a_float; step = !entry_to_float (GTK_ENTRY (state->step_entry), &a_float, FALSE); stop = !entry_to_float (GTK_ENTRY (state->stop_entry), &a_float,FALSE); ready = gnm_dao_is_ready (GNM_DAO (state->base.gdao)) && !entry_to_float (GTK_ENTRY (state->start_entry), &a_float, FALSE) && ((gnm_dao_is_finite (GNM_DAO (state->base.gdao)) && (step || stop)) || (step && stop)); gtk_widget_set_sensitive (state->base.ok_button, ready); }
/** * kaplan_meier_tool_update_sensitivity_cb: * @dummy: * @state: * * Update the dialog widgets sensitivity **/ static void kaplan_meier_tool_update_sensitivity_cb (G_GNUC_UNUSED GtkWidget *dummy, KaplanMeierToolState *state) { gboolean censorship; gboolean groups; GnmValue *input_range; GnmValue *input_range_2 = NULL; int height, width; censorship = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (state->censorship_button)); groups = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (state->groups_check)); gtk_widget_set_sensitive (state->tick_button, censorship); input_range = gnm_expr_entry_parse_as_value (GNM_EXPR_ENTRY (state->base.input_entry), state->base.sheet); if (input_range == NULL) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The time column is not valid.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); return; } height = input_range->v_range.cell.b.row - input_range->v_range.cell.a.row; width = input_range->v_range.cell.b.col - input_range->v_range.cell.a.col; value_release (input_range); if (width != 0) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The time column should be part of a single column.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); return; } if (censorship) { input_range_2 = gnm_expr_entry_parse_as_value (GNM_EXPR_ENTRY (state->base.input_entry_2), state->base.sheet); if (input_range_2 == NULL) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The censorship column is not valid.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); return; } if (input_range_2->v_range.cell.b.col != input_range_2->v_range.cell.a.col) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The censorship column should be part of a single column.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); value_release (input_range_2); return; } if (input_range_2->v_range.cell.b.row - input_range_2->v_range.cell.a.row != height) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The censorship and time columns should have the same height.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); value_release (input_range_2); return; } value_release (input_range_2); } if (groups) { input_range_2 = gnm_expr_entry_parse_as_value (GNM_EXPR_ENTRY (state->groups_input), state->base.sheet); if (input_range_2 == NULL) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The groups column is not valid.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); return; } if (input_range_2->v_range.cell.b.col != input_range_2->v_range.cell.a.col) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The groups column should be part of a single column.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); value_release (input_range_2); return; } if (input_range_2->v_range.cell.b.row - input_range_2->v_range.cell.a.row != height) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The groups and time columns should have the same height.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); value_release (input_range_2); return; } value_release (input_range_2); } if (!gnm_dao_is_ready (GNM_DAO (state->base.gdao))) { gtk_label_set_text (GTK_LABEL (state->base.warning), _("The output specification " "is invalid.")); gtk_widget_set_sensitive (state->base.ok_button, FALSE); return; } gtk_label_set_text (GTK_LABEL (state->base.warning), ""); gtk_widget_set_sensitive (state->base.ok_button, TRUE); return; }