예제 #1
0
static void
cb_fill_series_ok_clicked (G_GNUC_UNUSED GtkWidget *button,
			   FillSeriesState *state)
{
	GtkWidget       *radio;
	fill_series_t           *fs;
	data_analysis_output_t  *dao;

	fs = g_new0 (fill_series_t, 1);
	dao  = parse_output ((GenericToolState *)state, NULL);

	/* Read the `Series in' radio buttons. */
	radio = go_gtk_builder_get_widget (state->base.gui, "series_in_rows");
	fs->series_in_rows = ! gnm_gtk_radio_group_get_selected
	        (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)));

	/* Read the `Type' radio buttons. */
	radio = go_gtk_builder_get_widget (state->base.gui, "type_linear");
	fs->type = gnm_gtk_radio_group_get_selected
	        (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)));

	/* Read the `Date unit' radio buttons. */
	radio = go_gtk_builder_get_widget (state->base.gui, "unit_day");
	fs->date_unit = gnm_gtk_radio_group_get_selected
	        (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)));

	fs->is_step_set = ! entry_to_float (GTK_ENTRY (state->step_entry),
					    &fs->step_value, TRUE);
	fs->is_stop_set = ! entry_to_float (GTK_ENTRY (state->stop_entry),
					    &fs->stop_value, TRUE);
	entry_to_float (GTK_ENTRY (state->start_entry),
			&fs->start_value, TRUE);

	if (!cmd_analysis_tool (WORKBOOK_CONTROL (state->base.wbcg),
				state->base.sheet,
				dao, fs, fill_series_engine, TRUE))
		gtk_widget_destroy (state->base.dialog);
}
예제 #2
0
static void
cb_type_button_clicked (G_GNUC_UNUSED GtkWidget *button,
			FillSeriesState *state)
{
	GtkWidget          *radio;
	fill_series_type_t type;


	/* Read the `Type' radio buttons. */
	radio = go_gtk_builder_get_widget (state->base.gui, "type_linear");
	type = gnm_gtk_radio_group_get_selected (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)));

	if (type == FillSeriesTypeDate)
		gtk_widget_set_sensitive (state->date_steps_type, TRUE);
	else
		gtk_widget_set_sensitive (state->date_steps_type, FALSE);
}
예제 #3
0
static void
cb_delete_cell_ok_clicked (DeleteCellState *state)
{
	WorkbookControl *wbc = GNM_WBC (state->wbcg);
	GtkWidget *radio_0;
	int  cols, rows;
	int i;

	radio_0 = go_gtk_builder_get_widget (state->gui, "radio_0");
	g_return_if_fail (radio_0 != NULL);

	i = gnm_gtk_radio_group_get_selected
	  (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio_0)));

	cols = state->sel->end.col - state->sel->start.col + 1;
	rows = state->sel->end.row - state->sel->start.row + 1;

	switch (i) {
	case 0 :
		cmd_shift_rows (wbc, state->sheet,
				state->sel->end.col + 1,
				state->sel->start.row,
				state->sel->end.row, - cols);
		break;
	case 1 :
		cmd_shift_cols (wbc, state->sheet,
				state->sel->start.col,
				state->sel->end.col,
				state->sel->end.row + 1, - rows);
		break;
	case 2 :
		cmd_delete_rows (wbc, state->sheet,
				 state->sel->start.row, rows);
		break;
	default :
		cmd_delete_cols (wbc, state->sheet,
				 state->sel->start.col, cols);
		break;
	}
	gtk_widget_destroy (state->dialog);
}