/** * dialog_advanced_filter: * @wbcg: * @sheet: * * Show the dialog (guru). * **/ void dialog_advanced_filter (WBCGtk *wbcg) { AdvancedFilterState *state; WorkbookControl *wbc; g_return_if_fail (wbcg != NULL); wbc = WORKBOOK_CONTROL (wbcg); /* Only pop up one copy per workbook */ if (gnumeric_dialog_raise_if_exists (wbcg, ADVANCED_FILTER_KEY)) return; state = g_new (AdvancedFilterState, 1); if (dialog_tool_init (state, wbcg, wb_control_cur_sheet (wbc), GNUMERIC_HELP_LINK_ADVANCED_FILTER, "advanced-filter.ui", "Filter", _("Could not create the Advanced Filter dialog."), ADVANCED_FILTER_KEY, G_CALLBACK (advanced_filter_ok_clicked_cb), NULL, G_CALLBACK (advanced_filter_update_sensitivity_cb), 0)) return; gnm_dao_set_inplace (GNM_DAO (state->gdao), _("Filter _in-place")); gnm_dao_set_put (GNM_DAO (state->gdao), FALSE, FALSE); advanced_filter_update_sensitivity_cb (NULL, state); tool_load_selection ((GenericToolState *)state, TRUE); return; }
void dialog_scenario_add (WBCGtk *wbcg) { ScenariosState *state; WorkbookControl *wbc; GtkWidget *comment_view; char const *error_str = _("Could not create the Scenario Add dialog."); GString *buf; if (wbcg == NULL) return; wbc = WORKBOOK_CONTROL (wbcg); /* Only pop up one copy per workbook */ if (gnumeric_dialog_raise_if_exists (wbcg, "ScenarioAdd")) return; state = g_new (ScenariosState, 1); if (dialog_tool_init (&state->base, wbcg, wb_control_cur_sheet (wbc), GNUMERIC_HELP_LINK_SCENARIOS_ADD, "scenario-add.ui", "ScenarioAdd", error_str, "ScenarioAdd", G_CALLBACK (scenario_add_ok_clicked_cb), NULL, G_CALLBACK (scenario_add_update_sensitivity_cb), GNM_EE_SHEET_OPTIONAL)) { g_free (state); return; } state->name_entry = go_gtk_builder_get_widget (state->base.gui, "name_entry"); if (state->name_entry == NULL) return; comment_view = go_gtk_builder_get_widget (state->base.gui, "comment_view"); if (comment_view == NULL) return; buf = g_string_new (NULL); g_string_append_printf (buf, _("Created on ")); dao_append_date (buf); gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (comment_view)), buf->str, strlen (buf->str)); g_string_free (buf, FALSE); state->base.gdao = NULL; gnm_dialog_setup_destroy_handlers (GTK_DIALOG (state->base.dialog), wbcg, GNM_DIALOG_DESTROY_SHEET_REMOVED); gnumeric_editable_enters (GTK_WINDOW (state->base.dialog), GTK_WIDGET (state->name_entry)); scenario_add_update_sensitivity_cb (NULL, state); tool_load_selection ((GenericToolState *)state, TRUE); }
/** * dialog_shuffle: * @wbcg: * @sheet: * * Show the dialog (guru). * **/ void dialog_shuffle (WBCGtk *wbcg) { ShuffleState *state; WorkbookControl *wbc; GtkWidget *w; char const *type; GnmRange const *r; g_return_if_fail (wbcg != NULL); wbc = WORKBOOK_CONTROL (wbcg); /* Only pop up one copy per workbook */ if (gnumeric_dialog_raise_if_exists (wbcg, SHUFFLE_KEY)) return; state = g_new (ShuffleState, 1); if (dialog_tool_init (state, wbcg, wb_control_cur_sheet (wbc), GNUMERIC_HELP_LINK_DATA_SHUFFLE, "shuffle.ui", "Shuffling", _("Could not create the Data Shuffling dialog."), SHUFFLE_KEY, G_CALLBACK (shuffle_ok_clicked_cb), NULL, G_CALLBACK (shuffle_update_sensitivity_cb), 0)) return; shuffle_update_sensitivity_cb (NULL, state); state->gdao = NULL; tool_load_selection ((GenericToolState *)state, FALSE); r = selection_first_range (state->sv, NULL, NULL); if (range_width (r) == 1) type = "shuffle_cols"; else if (range_height (r) == 1) type = "shuffle_rows"; else type = "shuffle_area"; w = go_gtk_builder_get_widget (state->gui, type); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), TRUE); gtk_widget_show (state->dialog); return; }
/** * dialog_random_cor_tool: * @wbcg: * @sheet: * * Show the dialog (guru). * **/ int dialog_random_cor_tool (WBCGtk *wbcg, Sheet *sheet) { RandomCorToolState *state; if (wbcg == NULL) { return 1; } /* Only pop up one copy per workbook */ if (gnm_dialog_raise_if_exists (wbcg, RANDOM_COR_KEY)) { return 0; } state = g_new (RandomCorToolState, 1); if (dialog_tool_init ((GnmGenericToolState *)state, wbcg, sheet, GNUMERIC_HELP_LINK_RANDOM_GENERATOR_COR, "res:ui/random-generation-cor.ui", "CorRandom", _("Could not create the Correlated Random Tool dialog."), RANDOM_COR_KEY, G_CALLBACK (random_cor_tool_ok_clicked_cb), NULL, G_CALLBACK (random_cor_tool_update_sensitivity_cb), 0)) return 0; gnm_dao_set_put (GNM_DAO (state->base.gdao), TRUE, TRUE); dialog_random_cor_tool_init (state); tool_load_selection ((GnmGenericToolState *)state, TRUE); gtk_widget_show_all (state->base.dialog); return 0; }
/** * dialog_kaplan_meier_tool: * @wbcg: * @sheet: * * Show the dialog (guru). * **/ int dialog_kaplan_meier_tool (WBCGtk *wbcg, Sheet *sheet) { KaplanMeierToolState *state; GtkWidget *widget; char const * plugins[] = { "Gnumeric_fnstat", "Gnumeric_fnlookup", "Gnumeric_fnmath", "Gnumeric_fninfo", "Gnumeric_fnlogical", NULL}; if ((wbcg == NULL) || gnm_check_for_plugins_missing (plugins, wbcg_toplevel (wbcg))) return 1; /* Only pop up one copy per workbook */ if (gnumeric_dialog_raise_if_exists (wbcg, KAPLAN_MEIER_KEY)) return 0; state = g_new0 (KaplanMeierToolState, 1); if (dialog_tool_init (&state->base, wbcg, sheet, GNUMERIC_HELP_LINK_KAPLAN_MEIER, "kaplan-meier.glade", "KaplanMeier", _("Could not create the Kaplan Meier Tool dialog."), KAPLAN_MEIER_KEY, G_CALLBACK (kaplan_meier_tool_ok_clicked_cb), NULL, G_CALLBACK (kaplan_meier_tool_update_sensitivity_cb), 0)) return 0; state->censorship_button = GTK_WIDGET (glade_xml_get_widget (state->base.gui, "censor-button")); state->censor_spin_from = GTK_WIDGET (glade_xml_get_widget (state->base.gui, "censored-spinbutton1")); gtk_spin_button_set_range (GTK_SPIN_BUTTON (state->censor_spin_from), 0.,G_MAXSHORT); state->censor_spin_to = GTK_WIDGET (glade_xml_get_widget (state->base.gui, "censored-spinbutton2")); gtk_spin_button_set_range (GTK_SPIN_BUTTON (state->censor_spin_to), 0.,G_MAXSHORT); state->graph_button = GTK_WIDGET (glade_xml_get_widget (state->base.gui, "graph-button")); state->tick_button = GTK_WIDGET (glade_xml_get_widget (state->base.gui, "tick-button")); state->add_group_button = GTK_WIDGET (glade_xml_get_widget (state->base.gui, "add-button")); state->remove_group_button = GTK_WIDGET (glade_xml_get_widget (state->base.gui, "remove-button")); state->std_error_button = GTK_WIDGET (glade_xml_get_widget (state->base.gui, "std-error-button")); state->logrank_button = GTK_WIDGET (glade_xml_get_widget (state->base.gui, "logrank-button")); state->groups_check = GTK_WIDGET (glade_xml_get_widget (state->base.gui, "groups-check")); state->groups_table = GTK_WIDGET (glade_xml_get_widget (state->base.gui, "groups-table")); state->groups_input = gnm_expr_entry_new (state->base.wbcg, TRUE); gnm_expr_entry_set_flags (state->groups_input, GNM_EE_FORCE_ABS_REF, GNM_EE_MASK); gtk_table_attach (GTK_TABLE (state->groups_table), GTK_WIDGET (state->groups_input), 1, 3, 0, 1, GTK_EXPAND | GTK_FILL, 0, 0, 0); dialog_kaplan_meier_tool_setup_treeview (state); g_signal_connect_after (G_OBJECT (state->groups_check), "toggled", G_CALLBACK (kaplan_meier_tool_update_sensitivity_cb), state); g_signal_connect_after (G_OBJECT (state->censorship_button), "toggled", G_CALLBACK (kaplan_meier_tool_update_sensitivity_cb), state); g_signal_connect_after (G_OBJECT (state->graph_button), "toggled", G_CALLBACK (kaplan_meier_tool_update_sensitivity_cb), state); g_signal_connect_after (G_OBJECT (state->std_error_button), "toggled", G_CALLBACK (kaplan_meier_tool_update_sensitivity_cb), state); g_signal_connect_after (G_OBJECT (state->groups_input), "changed", G_CALLBACK (kaplan_meier_tool_update_sensitivity_cb), state); g_signal_connect_after (G_OBJECT (state->groups_check), "toggled", G_CALLBACK (kaplan_meier_tool_update_groups_sensitivity_cb), state); g_signal_connect_after (G_OBJECT (state->tick_button), "toggled", G_CALLBACK (kaplan_meier_tool_set_graph_cb), state); g_signal_connect_after (G_OBJECT (state->add_group_button), "clicked", G_CALLBACK (kaplan_meier_tool_add_group_cb), state); g_signal_connect_after (G_OBJECT (state->remove_group_button), "clicked", G_CALLBACK (kaplan_meier_tool_remove_group_cb), state); g_signal_connect_after (G_OBJECT (state->censor_spin_from), "value-changed", G_CALLBACK (kaplan_meier_tool_set_censor_from_cb), state); g_signal_connect_after (G_OBJECT (state->censor_spin_to), "value-changed", G_CALLBACK (kaplan_meier_tool_set_censor_cb), state); g_signal_connect (G_OBJECT (gnm_expr_entry_get_entry ( GNM_EXPR_ENTRY (state->base.input_entry_2))), "focus-in-event", G_CALLBACK (kaplan_meier_tool_set_censorship_cb), state); g_signal_connect (G_OBJECT (gnm_expr_entry_get_entry ( GNM_EXPR_ENTRY (state->groups_input))), "focus-in-event", G_CALLBACK (kaplan_meier_tool_set_groups_cb), state); gnumeric_editable_enters (GTK_WINDOW (state->base.dialog), GTK_WIDGET (state->groups_input)); widget = glade_xml_get_widget (state->base.gui, "groups-label"); gtk_label_set_mnemonic_widget (GTK_LABEL (widget), GTK_WIDGET (state->groups_input)); go_atk_setup_label (widget, GTK_WIDGET (state->groups_input)); gnm_dao_set_put (GNM_DAO (state->base.gdao), TRUE, TRUE); kaplan_meier_tool_update_sensitivity_cb (NULL, state); kaplan_meier_tool_update_groups_sensitivity_cb (NULL, state); tool_load_selection ((GenericToolState *)state, TRUE); gtk_widget_show_all (GTK_WIDGET (state->base.dialog)); /* And to hide the in-place button again */ gnm_dao_set_inplace ( GNM_DAO (state->base.gdao), NULL); return 0; }