GnumericSheetPtr gnumeric_add_sheet(GnumericWorkbookPtr workbook, const char *name) { WorkbookView *wbv = (WorkbookView *)workbook; #ifndef OLD_GNUMERIC int cols = gnm_conf_get_core_workbook_n_cols (); int rows = gnm_conf_get_core_workbook_n_rows (); if (!gnm_sheet_valid_size (cols, rows)) { gnm_sheet_suggest_size (&cols, &rows); } Sheet *sheet = workbook_sheet_add (wb_view_get_workbook (wbv), -1, cols, rows); #else Sheet *sheet = workbook_sheet_add (wb_view_get_workbook (wbv), -1, TRUE); #endif if (name!=NULL) { int idx = gnumeric_get_sheet_count(workbook)-1; GSList *idxs = NULL; GSList *names = NULL; idxs = g_slist_append(idxs, GINT_TO_POINTER(idx)); names = g_slist_append(names, (gpointer)name); workbook_sheet_rename(wb_view_get_workbook (wbv), idxs, names, cc); g_slist_free(idxs); g_slist_free(names); } return (GnumericSheetPtr*)sheet; }
static void cb_append_clicked (G_GNUC_UNUSED GtkWidget *ignore, SheetManager *state) { WorkbookSheetState *old_state; WorkbookControl *wbc = GNM_WBC (state->wbcg); Workbook *wb = wb_control_get_workbook (wbc); GtkTreeIter iter; Sheet *sheet, *old_sheet; workbook_signals_block (state); old_state = workbook_sheet_state_new (wb); old_sheet = workbook_sheet_by_index (wb, 0); workbook_sheet_add (wb, -1, gnm_sheet_get_max_cols (old_sheet), gnm_sheet_get_max_rows (old_sheet)); cmd_reorganize_sheets (wbc, old_state, NULL); update_undo (state, wbc); workbook_signals_unblock (state); sheet = workbook_sheet_by_index (wb, workbook_sheet_count (wb) - 1); g_signal_handler_block (state->model, state->model_row_insertion_listener); gtk_list_store_append (state->model, &iter); g_signal_handler_unblock (state->model, state->model_row_insertion_listener); set_sheet_info_at_iter (state, &iter, sheet); cb_selection_changed (NULL, state); }
static Sheet * html_get_sheet (char const *name, Workbook *wb) { Sheet *sheet = NULL; if (name) { sheet = workbook_sheet_by_name (wb, name); if (sheet == NULL) { sheet = sheet_new (wb, name, GNM_DEFAULT_COLS, GNM_DEFAULT_ROWS); workbook_sheet_attach (wb, sheet); } } else sheet = workbook_sheet_add (wb, -1, GNM_DEFAULT_COLS, GNM_DEFAULT_ROWS); return sheet; }
static void cb_add_clicked (G_GNUC_UNUSED GtkWidget *ignore, SheetManager *state) { GtkTreeIter sel_iter, iter; GtkTreeSelection *selection = gtk_tree_view_get_selection (state->sheet_list); GList *selected_rows; int index = -1; WorkbookSheetState *old_state; WorkbookControl *wbc = GNM_WBC (state->wbcg); Workbook *wb = wb_control_get_workbook (wbc); Sheet *sheet, *old_sheet = NULL; g_return_if_fail (selection != NULL); g_return_if_fail (gtk_tree_selection_count_selected_rows (selection) == 1); selected_rows = gtk_tree_selection_get_selected_rows (selection, NULL); gtk_tree_model_get_iter (GTK_TREE_MODEL (state->model), &sel_iter, (GtkTreePath *) selected_rows->data); g_list_free_full (selected_rows, (GDestroyNotify) gtk_tree_path_free); gtk_tree_model_get (GTK_TREE_MODEL (state->model), &sel_iter, SHEET_POINTER, &old_sheet, -1); index = old_sheet->index_in_wb; workbook_signals_block (state); old_state = workbook_sheet_state_new (wb); workbook_sheet_add (wb, index, gnm_sheet_get_max_cols (old_sheet), gnm_sheet_get_max_rows (old_sheet)); cmd_reorganize_sheets (wbc, old_state, NULL); update_undo (state, wbc); workbook_signals_unblock (state); g_signal_handler_block (state->model, state->model_row_insertion_listener); sheet = workbook_sheet_by_index (wb, index); gtk_list_store_insert_before (state->model, &iter, &sel_iter); g_signal_handler_unblock (state->model, state->model_row_insertion_listener); set_sheet_info_at_iter (state, &iter, sheet); cb_selection_changed (NULL, state); }
static DifInputContext * dif_input_context_new (GOIOContext *io_context, Workbook *wb, GsfInput *input) { DifInputContext *ctxt = NULL; ctxt = g_new (DifInputContext, 1); ctxt->io_context = io_context; ctxt->input = (GsfInputTextline *) gsf_input_textline_new (input); ctxt->line_no = 1; ctxt->line = NULL; ctxt->sheet = workbook_sheet_add (wb, -1, GNM_DEFAULT_COLS, GNM_DEFAULT_ROWS); ctxt->converter = g_iconv_open ("UTF-8", "ISO-8859-1"); go_io_progress_message (io_context, _("Reading file...")); return ctxt; }
static GODataCache * build_cache(void) { Workbook *wb; Sheet *sheet; GODataCache *cache; GnmRange *range; int row, col, numRows = 60, numCols = 5; wb = workbook_new(); sheet = workbook_sheet_add (wb, -1, 1024, 1024); for (row = 0; row < numRows; row++) { for (col = 0; col < numCols; col++) { GnmCell * tempCell = sheet_cell_create(sheet, col, row); GnmValue * tempVal; if (col == 0) { if (row%4 == 0) { tempVal = value_new_string_nocopy((char *)"A"); } else if (row%4 == 1) { tempVal = value_new_string_nocopy((char *)"B"); } else if (row%4 == 2) { tempVal = value_new_string_nocopy((char *)"C"); } else { tempVal = value_new_string_nocopy((char *)"D"); } } else if (col == 1) { tempVal = value_new_int(row); } else if (col == 2) { if (row%5 == 0) { tempVal = value_new_float(14.4); } else if (row%5 == 1) { tempVal = value_new_float(18.8); } else if (row%5 == 2) { tempVal = value_new_float(7.6); } else if (row%5 == 3) { tempVal = value_new_float(3.3); } else { tempVal = value_new_float(11.6); } } else if (col == 3) { tempVal = value_new_int(row % 10); } else if (col == 4) { if (row == 0) { GnmEvalPos *pos = g_new(GnmEvalPos, 1); pos = eval_pos_init(pos, sheet, col, row); tempVal = value_new_error_DIV0(pos); } else if (row == 1) { GnmEvalPos *pos = g_new(GnmEvalPos, 1); pos = eval_pos_init(pos, sheet, col, row); tempVal = value_new_error_NA(pos); } else if (row == 2) { GnmEvalPos *pos = g_new(GnmEvalPos, 1); pos = eval_pos_init(pos, sheet, col, row); tempVal = value_new_error_REF(pos); } else if (row == 3) { tempVal = value_new_bool(TRUE); } else if (row == 4) { tempVal = value_new_bool(FALSE); } else if (row == 5) { tempVal = value_new_empty(); } else { if (row%5 == 1) { tempVal = value_new_string_nocopy((char *)"a"); } else if (row%5 == 2) { tempVal = value_new_string_nocopy((char *)"b"); } else if (row%5 == 3) { tempVal = value_new_string_nocopy((char *)"c"); } else if (row%5 == 4) { tempVal = value_new_string_nocopy((char *)"d"); } else { tempVal = value_new_string_nocopy((char *)"e"); } } } sheet_cell_set_value(tempCell, tempVal); } } cache = g_object_new(GO_DATA_CACHE_TYPE, NULL); range = g_new(GnmRange, 1); range = range_init(range, 0, 0, numCols - 1, numRows - 1); go_data_cache_build_cache(cache, sheet, range); g_object_unref (wb); return cache; }
static void test_insdel_rowcol_names (void) { Workbook *wb; Sheet *sheet1,*sheet2; const char *test_name = "test_insdel_rowcol_names"; GOUndo *undo; int i; mark_test_start (test_name); wb = workbook_new (); sheet1 = workbook_sheet_add (wb, -1, GNM_DEFAULT_COLS, GNM_DEFAULT_ROWS); sheet2 = workbook_sheet_add (wb, -1, GNM_DEFAULT_COLS, GNM_DEFAULT_ROWS); define_name ("Print_Area", "Sheet1!$A$1:$IV$65536", sheet1); define_name ("Print_Area", "Sheet2!$A$1:$IV$65536", sheet2); define_name ("NAMEGA1", "A1", wb); define_name ("NAMEG2", "$A$14+Sheet1!$A$14+Sheet2!$A$14", wb); define_name ("NAMEA1", "A1", sheet1); define_name ("NAMEA2", "A2", sheet1); define_name ("NAMEA1ABS", "$A$1", sheet1); define_name ("NAMEA2ABS", "$A$2", sheet1); dump_names (wb); for (i = 3; i >= 0; i--) { g_printerr ("About to insert before column %d on %s\n", i, sheet1->name_unquoted); sheet_insert_cols (sheet1, i, 12, &undo, NULL); dump_names (wb); g_printerr ("Undoing.\n"); go_undo_undo_with_data (undo, NULL); g_object_unref (undo); g_printerr ("Done.\n"); } for (i = 3; i >= 0; i--) { g_printerr ("About to insert before column %d on %s\n", i, sheet2->name_unquoted); sheet_insert_cols (sheet2, i, 12, &undo, NULL); dump_names (wb); g_printerr ("Undoing.\n"); go_undo_undo_with_data (undo, NULL); g_object_unref (undo); g_printerr ("Done.\n"); } for (i = 3; i >= 0; i--) { g_printerr ("About to delete column %d on %s\n", i, sheet1->name_unquoted); sheet_delete_cols (sheet1, i, 1, &undo, NULL); dump_names (wb); g_printerr ("Undoing.\n"); go_undo_undo_with_data (undo, NULL); g_object_unref (undo); g_printerr ("Done.\n"); } g_object_unref (wb); mark_test_end (test_name); }