1999-07-09 Miguel de Icaza * src/about.c (dialog_about): Sort in alphabetical order. * src/print-info.c (print_hf_free): Killed the style_format feature. * src/print.c (print_job_info_get): Create render info context here for header/footer printing. (print_sheet_range): Setup number of pages here; Increment pages after each one is outputed. (print_headers): Implemented the header/footer printing. * src/print-info.c (hf_render_info_new, hf_render_info_destroy): New routines. * src/fn-date.c (gnumeric_return_current_time): New function. 1999-07-09 Miguel de Icaza * configure.in (GNOMEGNORBA_LIBS): Simplified the Bonobo detection code. 1999-07-09 Miguel de Icaza * src/analysis-tools.c: Changed prototype of int_compare to eliminate a warning. Removed unused variables. * src/cell.c: #inlcude gnumeric-util to eliminate warning. * src/fn-financial.c: Fixed all the help strings to get the SEELASO correctly done * src/style.c: Zoom factor 1.0 is a reminder to me, not a warning. 1999-07-09 Miguel de Icaza * src/sheet-view.c (sheet_view_construct): Reverted last plan. We do need a sheet_view_construct, as we require sheet_view->sheet to be set. 1999-07-08 Miguel de Icaza * src/cell.c (calc_text_dimensions): Use gdk_fonts for measuring the strings on the screen. Basically, back out using GnomeFont here. * src/print-info.c (render_date, render_time): Finished implementing. (render_opcode): Enable argument mechanism to extend the number of possible formats. Excel accepts stuff like &[DATE], we extend this to accept &[DATE:mmmm-yyyy]. The argument for &[DATE] and &[TIME] is a regular Gnumeric formatting code (ie, compattible with the cell formating in Excel). * src/sheet-view.h: Change style to suit forward declaration structure. * src/sheet.h: Use forward declaration for SheetView. * src/sheet.c (sheet_new_sheet_view, sheet_destroy_sheet_view): New routines for managing the sheet views. * src/sheet-view.c: Killed sheet_view_construct, there was nothing really required there. Moved all the code to sheet_view_init. (sheet_view_scrollbar_display, sheet_view_set_header_visibility): New routines that control the visibility of the various gadgets of a SheetView. * embeddable-grid.c, embeddable-grid.h: New files. They implement the Bonobo GnomeEmbeddable interfaces for embedding Gnumeric in applications. * src/workbook.c (workbook_new, workbook_core_new): Split this routine in two: GUI independant and GUI dependant. The next step is to provide multiple views of a workbook (although, I am not sure I want this). (workbook_new_with_sheets): Kill dead code. * src/corba-sheet.c (Sheet_row_height, Sheet_col_width, Sheet_max_cols_used, Sheet_max_rows_used): New methods. * src/Gnumeric.idl (Sheet): new methods max_cols_used, max_rows_used, col_width, row_height. (Grid): New interface for embeddable grids. * src/print-info.c (hf_format_render): Rendering routine for the header and footers formats. 1999-07-09 Michael Meeks * src/Gnumeric.idl: Add GNOME::Unknown back in. 1999-07-09 Jukka-Pekka Iivonen * src/dialog-analysis-tools.c, src/analysis-tools.c: Added an option to all tools to print the results to a new workbook. * src/dialog-analysis-tools.c, src/analysis-tools.c: Added Moving Average and Rank and Percentile tools. 1999-07-09 Michael Meeks * src/eval.c (add_value_deps): Add warning on default: (add_cell_range_deps): Fixup for correct inter-sheet dependencies; massive bug. * TODO: Updated. * doc/C/formulas.sgml: Wrote the 'name' documentation. 1999-07-08 Michael Meeks * src/func.c (function_iterate_do_value): Fix for NULL CellRef Sheet *, fallback to EvalPosition's Sheet * * src/fn-math.c (gnumeric_countif): ditto. * src/fn-math.c (gnumeric_seriessum): Add check for NULL nodes pointer. 1999-07-08 Jody Goldberg * src/cell-draw.c (cell_split_text) : Honour embedded newlines. Why do we call str_trim_spaces ? * src/print-cell.c (cell_split_text) : Ditto. Adjust gnome-print to make the code even more similar to cell-draw version. Should we be using double rather than int for width calculations ? NOTE : This requires some recent (1999/7/7) changes to gnome-print. * src/cell.c (cell_comment_realize) : reference the comment object to avoid verbose warnings when we exit. 1999-07-08 Jukka-Pekka Iivonen * doc/C/analysis-tools.sgml: New file. Added documentation for the following analysis tools: Correlation, Covariance, Descriptive Statistics, Random Number Generation, Sampling, and F-Test. * src/dialog-analysis-tools.c: Added some default parameters for the random number generation tool. * src/dialog-analysis-tools.c, src/analysis-tools.c: Started the implementation of regression tool. Feel free to fill in the rest of the calculations if you are familiar with the regression statistics. 1999-07-08 Michael Meeks * src/eval.c (add_tree_deps): Change exprt to expr_tree. * src/Gnumeric.idl: Removed : GNOME::Unknown from Workbook so people can compile for now. 1999-07-07 Michael Meeks * src/expr.c (do_expr_decode_tree): Add vital translation stuff. * src/parser.y (return_name): Created. (try_symbol): Add name lookup. * src/eval.c (add_tree_deps): Calculate name dependencies if at all possible. * src/main.c (gnumeric_main): Add expr_name_init. * src/expr.c (expr_tree_new_name, do_expr_tree_unref), (eval_expr, do_expr_decode_tree, do_expr_tree_invalidate_references), (do_expr_tree_fixup_references, expr_dump_tree): Add OPER_NAME support in every case just after OPER_FUNCALL. * src/expr.h: Add ExprName struct, include and OPER_NAME. * src/Makefile.am (GNUMERIC_BASE_SOURCES): Added expr_name.[ch] 1999-07-07 Miguel de Icaza * configure.in (EXTRA_GNOME_CFLAGS): Assemble all the flags we will be linking with here.X * src/Gnumeric.idl: Small typo fixes. * Killed liblgade from here, it is now a requirement. 1999-07-07 Jukka-Pekka Iivonen * src/dialog-analysis-tools.c: Cleaned up `groupped by' radio button code. Added `Labels in First Row' check buttons for all tools. Made the tool list inside of a scrolled window. * src/dialog-analysis-tools.c, src/analysis-tools.c: Implemented `Random Number Generation' tool with the following distributions: Discrete, Normal, and Uniform. 1999-07-07 Michael Meeks * src/about.c (dialog_about): Add Jody, updated Sean. * src/dialog-cell-sort.c (dialog_cell_sort): Stop degenerate cases from producing confusing 'Add / Remove clause' boxes. 1999-07-05 Miguel de Icaza * src/Gnumeric.idl: Use new interface name. 1999-07-06 Jukka-Pekka Iivonen * src/dialog-analysis-tools.c, src/analysis-tools.c: Added some error checks, not complete yet. 1999-07-06 Jukka-Pekka Iivonen * src/dialog-analysis-tools.c, src/analysis-tools.c: Added output frames and an option to output into an existing sheet. 1999-07-06 Jukka-Pekka Iivonen * src/dialog-analysis-tools.c: Cleaned up a lot. Added input frames to input entries. 1999-07-06 Jukka-Pekka Iivonen * src/analysis-tools.c, src/dialog-analysis-tools.c, src/dialogs.h: Implemented F-Test tool. 1999-07-06 Jukka-Pekka Iivonen * src/analysis-tools.c, src/dialog-analysis-tools.c, src/dialogs.h: Implemented t-Test and z-Test tools. 1999-07-05 Miguel de Icaza * src/about.c (dialog_about): Added link to IGS web site. 1999-07-05 Jody Goldberg * src/cell.c (cell_set_formula) : Rework array-formula logic to deal with cell_set_array_formula releasing the wrapper generated by the parser. (cell_set_text) : Crude but effective prohibition for editing 1 cell in an array. * src/eval.c : Add more debug info. (search_cell_deps) : Rename search_range_deps. (search_cell_deps) : New function. Special case of a single cell only needs 1 call to intersect. * src/expr.c (do_expr_tree_invalidate_references, do_expr_tree_fixup_references) : Implement for OPER_ARRAY. (expr_tree_get_const_str) : New function. * src/format.c (format_number) : Made debug warning more verbose but only print it the 1st time. * src/gnumeric-util.[c,h] (gnumeric_no_modify_array_notice) : New. * src/sheet.c (sheet_clear_region): Use gnumeric_no_modify_array_notice. (avoid_dividing_array_horizontal, avoid_dividing_array_vertical) : New. (sheet_insert_row, sheet_insert_row) : Use them. (sheet_fill_selection_with) : Add flag to differentiate fills and array-formulas. Check to ensure that the array/fill operation does not overwrite a subset of an array. * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet) : Pass is_array. (gnumeric_sheet_patterns) : Adjust to more exactly match Excel. NOTE : They are listed in DISPLAY order not excel's internal index scheme, that requires a map. * src/gnumeric-sheet.h : Increase number of patterns. * src/pattern-selector.c : Adjust layout to match Excel. Still need to figure out how to get the stipples on a white background. * src/main.c : Add debug_excel_{read,formulas,color,chart} to allow run time vs compile time verbosity. 1999-07-05 Morten Welinder * src/expr.c (value_array_resize): Shined up, fixed, not tested. * src/print-info.c (print_hf_new): Constify. (print_hf_free): Fix leaks. * src/workbook.c (workbook_do_destroy): Fix leak. * src/style.c (style_shutdown): Unref out fonts. * src/sheet.c (sheet_start_editing_at_cursor): Doc fix. 1999-07-05 Jukka-Pekka Iivonen * src/analysis-tools.c, src/dialog-analysis-tools.c, src/dialogs.h: Implemented Sampling Tool. Still more to come. 1999-07-05 Morten Welinder * src/style.c (style_font_new_simple): Reinstate negative caching. * src/xml-io.c (xml_set_gnome_canvas_points): Handle zero point case. Don't rely on return value from sprintf. * src/dialog-function-select.c (function_definition_update): Kill warnings. * src/dialog-analysis-tools.c (dummy_fun): Make static. (summary_stat_signal_fun): Ditto. (confidence_signal_fun): Ditto. (kth_largest_signal_fun): Ditto. (kth_smallest_signal_fun): Ditto. (tool_dialog_range): Ditto. (selection_made): Ditto. (dialog_data_analysis): Kill warning. * src/analysis-tools.c (descriptive_stat_tool): Kill warnings. 1999-07-05 Jukka-Pekka Iivonen * src/analysis-tools.c, src/dialog-analysis-tools.c, src/dialogs.h: Implemented Descriptive Statistics Tool. Please do not edit these files (unless a serious bug fix) for a couple of days; there is more to come. 1999-07-05 Miguel de Icaza * src/print.c: Only print the headers and sides * plugins/text/text-io.c (text_cleanup_plugin): Kill probing here. (text_init): kill probing here as well. (text_parse_file): kill probing support here as well. (text_parse_file): Do not use first line as sheet name. * src/file.c (workbook_import): Added import dialog box. (workbook_read): Now does only probe for existing probe routines. (file_format_register_open): probe function being NULL now means that this is not an auto-probe filter, but an import filter (ie, the user has to manually select the file). 1999-07-04 Miguel de Icaza * src/file.c (file_format_register_open): Allow the probe_fn to be NULL. * src/workbook.c (import_file_cmd): Added import menu item. 1999-07-05 Michael Meeks * src/sheet.c (sheet_update_auto_expr): Removed parsing. * src/workbook.c (workbook_set_auto_expr): Moved unsafe parser call in here. * src/sheet.h: Changed auto_expr_text to ExprTree auto_expr. * src/parser.y (gnumeric_expr_parser): Added. (gnumeric_unsafe_expr_parser): Renamed and changed arguments. * plugins/guile/plugin.c (init_plugin): New function stuff. (func_scm_apply): ditto. (func_scm_eval): ditto. (func_marshal_func): ditto. (scm_register_function): ditto. * plugins/python/python.c (__register_function): Updated to new function stuff. (marshal_func): ditto. * plugins/perl/ext/Makefile.PL.in: Added GNOME_PRINT bits. 1999-07-04 Michael Meeks * src/workbook.c (workbook_sheet_get_free_name): Made more similar to Excel: base sheet no. = 1 + no space. (workbook_new_with_sheets): Update to more Excel friendly names. 1999-07-02 Miguel de Icaza * doc/Design, doc/translating.sgml: small touchups. * src/dialog-printer-setup.c (do_setup_main_dialog): Set the window parent here. (do_setup_main_dialog): Force destruction of parent widget. * src/print.glade: Removed visibility flag from toplevel dialog box. * doc/C/files.sgml: Updated indentation. * src/dialog-printer-setup.c (do_setup_page): Use relative path for printing here. 1999-06-30 Miguel de Icaza * src/item-grid.c (item_grid_draw_cell): Eliminate warning. * src/dialog-printer-setup.c: Adapted to the new setup for keeping track of col/rows ranges. (do_fetch_page_info): ditto. * src/print.c (PrintJobInfo): Use doubles for all the printing units. (print_sheet_range): Take into account the repeat ranges for repeated headers, repeated columns. (print_sheet): compute space used by repeated headers and repeated columns. (print_page): Print repeating top rows and repeating left columns on each page. Loop over printing routines. (print_page_cells): new routine: prints a cell range only. (print_page_repeated_rows, print_page_repeated_cols): Prints the repeating columns and repeating rows. * src/dialog-cell-format.c (apply_font_format): Implement GnomePrint based version. * src/print-info.c (save_range): Updated to reflect the new change to PrintRepeatRange. (print_info_save): ditto. (load_range): ditto. (print_info_new): ditto. * src/print-info.h: Store ranges as a structure that contains an explicit tag for validness instead of overloading the definition of Value/CellRange. 1999-07-02 Jukka-Pekka Iivonen * src/anaysis-tools.c: New file for data analysis tools. Currently only correlation and covariance tools implemented. * src/dialog-analysis-tools.c: New file. * src/dialogs.h: Added some definitions for data analysis tools. * src/workbook.c: Added data analysis menu entry. 1999-06-26 Morten Welinder * src/fn-string.c (gnumeric_dollar): Avoid warning overflows. * src/print-info.c (print_unit_new): Warning killer. * src/fn-financial.c (calculate_fvif): Warning killer. * src/expr.c (build_error_string): Re-remove. * src/dialog-printer-setup.c (unit_into_to_points): Warning killer. * src/mathfunc.c (MATHLIB_WARNING2, MATHLIB_WARNING4): Warning killer. 1999-07-01 Michael Meeks * src/main.c (gnumeric_main): Added excel_shutdown. 1999-07-01 Jukka-Pekka Iivonen * samples/datefuns.xls: Added a few missing function tests. 1999-06-30 Heath Martin * src/cell.c, src/cell.h: (cell_get_comment) New function. * src/xml-io.c: (xml_write_cell) Save comments. (xml_read_cell) Load comments. 1999-06-30 Michael Meeks * TODO: Moved some bits to plugins/excel. add a bit about Styles. 1999-06-29 Jody Goldberg * src/cell.c (cell_set_formula) : Handle special case of array by setting the entire matrix from the top left corner. (cell_set_array_formula) : New function. * src/cell.h : Add cell_set_array_formula. * src/eval.c (add_cell_range_deps) : Split setup into new function. (add_cell_range_dep) : Here. (add_tree_deps) : Support Array operators. * src/parser.y : Parse new array formula syntax. (dump_tree) : rename to expr_dump_tree and move to. * src/expr.c (expr_dump_tree) : From parser.y. (expr_tree_get_const_int) : New function. (expr_tree_array_formula) : New function. (expr_tree_array_formula_corner) : New function. (do_expr_tree_unref) : Support Array operators. (value_area_get_at_x_y) : Renamed to value_area_fetch_x_y, fixed thinko, completed support for relative ranges. (value_area_get_x_y) : New function, like value_area_fetch_x_y but does not create missing values. (eval_expr) : Support Array operators. (do_expr_decode_tree) : Ditto. (do_expr_tree_invalidate_references) : Ditto. (do_expr_tree_fixup_references) : Ditto. * src/expr.h : Add expr_tree_get_const_int, expr_tree_array_formula, value_area_get_x_y, and Array operators. Rename value_area_get_at_x_y. * src/fn-lookup.c : Handle renamed value_area_fetch_x_y. * src/fn-math.c : Ditto. Add MMULT. * src/format.c : (format_value) Handle arrays. (assemble_clear_cell_list) : check that a subset of an array is not being cleared. * src/item-cursor.c : Ditto. * src/item-grid.c : Ditto. * src/xml-io.c : Deal with Array formula I/O. 1999-06-29 Miguel de Icaza * src/print-info.c (save_range): Save the repeat ranges routine. (print_info_save): Save the repeat ranges. * src/expr.c (value_cellrange_get_as_string): Implemented. (value_get_as_string): Expanded to render cellranges. * src/print-info.c (load_range): New routine, loads a range from the config file. * src/print.c (print_sheet_range): off-by-one error fix. 1999-06-29 Jukka-Pekka Iivonen * samples/textfuns.xls: Added a new test file. * samples/engfuns.xls, samples/mathfuns.xls: Updated. 1999-06-29 Jukka-Pekka Iivonen * src/fn-stat.c: Added FORECAST() and INTERCEPT(). * src/fn-math.c: SUMIF() can now take an optional argument (actual_range). * src/fn-information.c: Made N() return 0 if the given string is non-number, not an error. 1999-06-28 Michael Meeks * src/main.c (gnumeric_main): removed xbase_init. * src/Makefile.am: Removed xbase static link. 1999-06-28 Miguel de Icaza * src/dialog-printer-setup.c (load_image): Use a constant relative to the Gnumeric installation directory, do not use the gnome pixmap path routine. * src/workbook.c: Add print icon to the toolbar. * src/dialog-printer-setup.c (do_print_cb): Fetch settings when the user presses print from here. (do_setup_main_dialog): Hide non working widgets. 1999-06-28 Michael Meeks * CHANGES: Updated for new release. 1999-06-27 Raja R Harinath * src/Makefile.am (Gnumeric-impl.o): This depends on Gnumeric.h, Gnumeric-impl.c doesn't. Reinstate Perl plugin. * plugins/perl/Makefile.am: Clean up build. * plugins/perl/ext/Gnumeric.xs (register_function): Use FunctionCategory and `function_add_args' API instead of `install_symbol'. (marshal_func): Update to new callback prototype. * plugins/perl/ext/Makefile.PL.in ('INC'): Use @top_srcdir@ rather than @srcdir@/../../... * doc/C/Makefile.am: Misc. srcdir != builddir fixes. * configure.in (GNOME_PRINT_CFLAGS): Fix typo. 1999-06-25 Michael Meeks * src/dialog-function-wizard.c: Re-vamped table layout. * src/fn-string.c (string_functions_init): Change category name to 'String'; silly me. * src/dialog-function-select.c (function_definition_update): Fixed old & broken function pointer code. * src/expr.c (eval_funcall): Updated to use union. (function_def_call_with_values): ditto. * src/func.c (function_add_nodes): ditto. (function_add_args): ditto. * src/expr.h: Changed void *fn pointer to a slicker union. * src/plugin.h: Added a prototype for the one external function every plugin must have ( kills some plugins warnings ). * src/workbook.c (workbook_new): Updated call to set_auto_expr (change_auto_expr): ditto. (workbook_do_destroy): Update. (workbook_set_auto_expr): Updated, just to set text leaving heavy lifting for sheet.c. This removes possible error checking of our quick-functions, but an error will be displayed in the status bar having set the function, and the functionality wasn't used. * src/sheet.h: Removed previously extern'd workbook_set_auto_expr, this should be internal. Remove auto_expr_tree from Workbook *. * src/sheet.c (sheet_update_auto_expr): Moved auto_expr parsing into sheet_update_auto_expr. Rational; neater, and not performance critical. 1999-06-26 Miguel de Icaza * src/pixmaps.h: Removed unused pixmaps. * src/corba-sheet.c (Sheet_corba_class_init): Fill in some missing values fomr the GNOME::Gnumeric::Sheet epv interface. * src/expr.c (eval_funcall): Removed unused variable. * src/workbook.c (workbook_sheets): prepend and reverse instead of appending all the time. It is more efficient. * src/style.c (x11_font_compute_hints): Renamed as well. Might be useful in the future. * src/gnumeric-util.c (x11_font_get_italic_name, x11_font_get_bold_name, x11_font_change_component): Renamed these functions to reflect their actual usage. * src/expr.c (expr_tree_new_constant): Change style to use early return to keep indentation of the rest of the code at tab-1. This is a trick to keep indentation nice with 8-tab spaces. Liberal use of early returns, early continues, early breaks. * src/cell.h (CELL_TEXT_GET): Kill unused macro. 1999-06-25 Miguel de Icaza * src/xml-io.c (xml_read_cell): Merge the style we just read with the existing information from the cell (which are the defaults). This is only for compatibility with the old format 1999-06-24 Miguel de Icaza * src/xml-io.c (style_font_new_from_x11): Implemented * src/style.c (style_font_new): Improved matching of the font. * src/xml-io.c (xml_write_style): Save Bold and Italic properties. Save Units as double. (xml_read_style): Add conversion hook from old format. (xml_read_style): Load properly italic and bold properties. (xml_read_cell): Add new style reading code. It is compatible with the old Style reading code. (xml_read_rows_info, xml_read_cols_info, xml_read_styles): Moved Cols, Rows and Styles loading code here, for code clarity. * src/style.c (style_font_new_simple): Include the scale in the key lookup variable. * src/xml-io.c: The FontDefs and the HREFs to the fonts were never being used. The new code for styles simplifies this. Kill all the references to the FontDefs urls and the font indeces. * src/xml-io.c 1999-06-23 Miguel de Icaza * src/xml-io.c: Major updates. (xml_read_colrow_info): Use floating point for loading the units, margin_a and margin_b. (xml_write_colrow_info): Save units, margin_a and margin_b using floating point. (xml_set_value_double): Activate this function. (xml_write_cell): Do not save the style here. Lookup the style id, and write a record with the style id link. (xml_sheet_write): Add call to xml_cell_styles_init and xml_cell_styles_shutdown to init and shutdown the cell styles in a per-sheet basis. Renamed functions to suit the gnumeric coding sytle. Fixed indentation. File format now saves a different version. We store all cell styles first, and then we reference them. (parse_xml_context_t): renamed from parseXmlContext. Add style_table hash table for storing all the styles used by the cells on a workbook. Used to dump Styles first and then have the cells reference it. * src/style.c (style_hash, style_compare): New routines to put Styles on hash tables. * src/workbook.c (workbook_sheets): Use g_list_prepend instead of g_list_append and reverse the result. 1999-06-14 Miguel de Icaza * src/cell.h: Killed ColType and RowType definitions. They do not save any noticeable amount of memory; we are not using them but on the most useless places and finally they are the current limit to our spreadsheet size. * src/gnumeric-sheet.h: Use int instead of ColType, RowType * src/item-cursor.h: Use int instead of ColType, RowType * src/item-grid.h: Use int instead of ColType, RowType * src/print-cell.c (CELL_DIM): Use _pt variants of the margins here. (print_cell_text): and here. (print_cell): and here. (print_cell_range): and here. (print_cell_grid): and here. 1999-06-13 Miguel de Icaza * src/sheet.c (sheet_compute_col_row_new_size): Update margin_a and margin_b from the points. (col_row_info_init): New function to initialize a sample ColRowInfo. Inits the _pt fields. (col_row_unit_distance): Use the new fields in computation. (sheet_col_get_unit_distance): Use new fields in computation. * src/dialog-printer-setup.c (do_setup_margin): Set scroll region. (preview_page_create): Implement routine that draws the page for the margin setup. * src/sheet.h (ColRowInfo): Units are now doubles; margin_a_pt and margin_b_pt are doubles that represent the a and b margins in points. * src/sheet.c (sheet_compute_col_row_new_size): Use the 1999-06-11 Miguel de Icaza * src/cell-draw.c (cell_draw): Move the foreground setting routine here and handle single-line and multiline coloring properly. * src/print-info.c (unit_name_to_unit): New routine, returns the UniName from the string name. * src/dialog-printer-setup.c (dialog_printer_setup): Use print_info_save and kill the do_save_settings routine for the cleaner print_info routine. * src/print-info.c (print_info_new): Now loads the default settings from the saved configuration. (print_info_save): Saves the print information to the gnome_config. 1999-06-08 Miguel de Icaza * src/utils.c (str_trim_spaces): Moved str_trim_spaces ere. * src/dialog-printer-setup.c (do_setup_main_dialog): Connect print buttons. * src/print-cell.c (print_cell_grid): Simplify routine. * src/sheet.c (sheet_row_get_unit_distance, sheet_col_get_unit_distance): Include margins in computation. This is broken, as the margins are now pixels, and they should be made points. * src/dialog-printer-setup.c (do_fetch_page_info): Fetch other values. (do_save_settings): Saves the configuration. * src/print-cell.c (print_border): Implement border drawing. (print_cell_grid): Make this work as it should. * src/print.c (compute_groups): Handle the case where the contents fit entirely in one page. 1999-06-07 Miguel de Icaza * src/print.c: New file. Implements high-level printing. * src/dialog-printer-setup.c: New file. Implements the "Print Setup" dialog box. 1999-04-30 Miguel de Icaza * src/cell-draw.c: New file. All of the cell screen drawing code has been moved here now. * src/print-cell.c: Enhanced code. * src/workbook.c: hardcoded page size for testing purposes. 1999-03-10 Miguel de Icaza I do not like the current approach. I do think that StyleFonts should be static with regard to Zoom. And we would keep a cache of X fonts that are used for a particular size. * src/style.c (style_font_new_from): New routine that creates a new font. * src/sheet.c (sheet_set_zoom_factor): Scale fonts used in the Sheet. 1999-02-15 Miguel de Icaza * src/dialog-printer-setup.c: New file. Implements the workbook page configuration dialog box. * src/print-info.c, src/print-info.h: Manages the per-worbook print options. 1999-02-07 Miguel de Icaza * src/style.c (font_equal): Adapt function to the new StyleFont. (style_font_new, style_font_new_simple): Adapt for the upcoming gnome-print support. (font_init): Adapt. * src/xml-io.c: Use Gnome Print font scheme. * src/workbook.c: ditto. * src/cell.c: ditto. * src/item-bar.c, src/item-edit.c: ditto * src/dialog-cell-format.c: Disable font selector for now. 1999-06-26 Morten Welinder * src/fn-financial.c (gnumeric_rate): New function. * src/sheet.c (sheet_destroy): Sssshhhh! * src/fn-eng.c (val_to_base): Neat and tidy. 1999-06-25 Morten Welinder * src/fn-eng.c (eng_functions_init): Extend impower to handle two complex numbers. (eng_functions_init): Prepare for besseli and besselk. Docs please. * src/mathfunc.c (dweibull, pweibull, ppois, dpois, dexp, pexp, dbinom, pbinom, qbinom, besseli, besselk): New functions. * src/fn-stat.c: Use new mathfuncs. (gnumeric_kurt): Use range function. (gnumeric_kurtp): New function. (gnumeric_skewp): New function. * src/mathfunc.c (range_skew_est): Rename from range_skew. (range_skew_pop): New function. (range_kurtosis_m3_est): New function. (range_kurtosis_m3_pop): New function. * src/fn-math.c (gnumeric_gcd): Cleanup and fix. 1999-06-24 Michael Meeks * src/expr.c (value_area_get_at_x_y): Return value_zero instead of the leaky value_new_int. (value_area_get_at_x_y, value_area_get_width, value_area_get_height): Updated to fall back to EvalPosition's Sheet *. * src/expr.h: Added 'EvalPosition' parameter to area functions. 1999-06-23 Morten Welinder * src/fn-stat.c (gnumeric_poisson): Fix formula and error handling. (gnumeric_binomdist): Ditto. (gnumeric_correl): Ditto. * src/expr.c (eval_expr): Remove useless casts. (eval_funcall): Treat 'b' as 'f' for now. Don't use fd until it gets a value. * src/func.c (function_iterate_argument_values): Don't leak error message. * src/eval.c (cell_eval): Don't leak error message. * src/*.c: Remove strange casts to (Value *). 1999-06-24 Michael Meeks * src/expr.c (error_message_new): Fix stupid bug, such that every error was set. * src/fn-math.c: Add sumproduct back in. 1999-06-24 Michael Meeks * src/fn-stat.c: Added ftest, ttest again. 1999-06-23 Michael Meeks * src/sheet.c (sheet_update_auto_expr): Add check for cached text. * src/sheet.h: Added workbook_set_auto_expr. * src/workbook.c (workbook_new): Initialise auto_expr stuff before reading it in set_auto_expr. (workbook_do_destroy): Add freeing of auto_expr_text. (workbook_set_auto_expr): Hacked to cache expression until we have a sheet context. * src/expr.h: Add extra Parser error type for invalid args. * src/fn-financial.c (finance_functions_init): Fix financial functions, using 'i' as a token ( invalid ). 1999-06-23 Michael Meeks * docs/writing-functions.sgml: Updated to reflect my changes, expanded and removed anachronisms. * src/expr.h: Added FunctionArgs, FunctionNodes typedefs Created struct EvalPosition, struct FunctionEvalInfo and implemented through functions where necessary. * src/expr.c (function_error, function_error_alloc): created helper error return functions. (eval_pos_init, eval_pos_cell): Helper EvalPosition fn's (func_eval_info_init, func_eval_info_cell, func_eval_info_pos): created helper FunctionEvalInfo fn's (error_message_new, error_message_set_alloc), (error_message_set_small, error_message_txt, error_message_free): created error class. * src/expr.c (expr_parse_string, gnumeric_expr_parser), (expr_decode_tree, expr_tree_invalidate_referenced), (expr_tree_fixup_references, eval_expr): Updated to pass / use new EvalPosition / FunctionEvalInfo structures. * src/parser.y (gnumeric_expr_parser): Updated arguments to use EvalPosition, added more stringent checks. * src/func.h: Updated lots of things to new structures. Changed the iterators arguments to new structures, altered FunctionIterateCallback to suit. Re-implemented function storage / mapping. * src/func.c (function_get_category, function_add_args), (function_add_nodes): Created. (function_iterate_do_value, function_argument_values), (function_call_with_values, function_def_call_with_values): Updated to new scheme. * src/fn-*: Major major changes: - All function definitions changed to use: typedef Value *(FunctionArgs) (FunctionEvalInfo *fe, Value **args); or typedef Value *(FunctionNodes) (FunctionEvalInfo *fe, GList *nodes); - All error returns altered to use: return function_error (ei, _("foo")); instead of { *error_string = _("baa"); return NULL; } this will allow for changing the error handling. - A few functions that used Sheet *, eval_col, eval_row updated. 1999-06-23 Morten Welinder * src/collect.c, src/collect.h: New files. * src/Makefile.am (GNUMERIC_BASE_SOURCES): Add collect.c and collect.h. * src/fn-stat.c: Rewrite range-taking using collect and new range handling functions. Most look really nice now. (This fixes and number of leaks and makes error cases handled better. We might return the wrong error from time to time, though.) * src/fn-math.c: Ditto. * src/expr.c (eval_funcall): Fix insanity check. 1999-06-22 Morten Welinder * src/expr.c (eval_funcall): Add sanity check. * src/fn-stat.c (callback_function_ttest): Make static. * src/expr.h: Delete unwanted member "sym". 1999-06-22 Jukka-Pekka Iivonen * samples/statfuns.xls: Added MMULT and MINVERSE tests. * samples/lookfuns.xls: Added a new file for testing lookup and reference functions. * samples/logfuns.xls: Added a new file for testing logical functions. 1999-06-22 Nat Friedman * src/sheet-object-container.c (sheet_object_container_land): Use gnome_bonobo_object_clieint_new_view instead of gnome_bonobo_object_new_view. (sheet_object_container_realize): Likewise. 1999-06-22 Morten Welinder * src/number-match.c (format_create_regexp): You don't want to know. * src/fn-date.c (get_serial_date): Cleanup. (get_serial_time): Ditto. * src/sheet.c (sheet_set_text): Abandon old reverse test that lead to trouble with floating point formats. * src/number-match.c (format_match): Change from double to float_t. All callers changed. (compute_value): Ditto. 1999-06-22 Jukka-Pekka Iivonen * src/fn-stat.c: Added TTEST(). * src/fn-stat.c: Added FTEST(). * src/fn-math.c: Added SUMPRODUCT(). 1999-06-21 Morten Welinder * src/dialog-function-wizard.c (arg_data_list_new): Fix case of missing SYNTAX section. (create_description): Handle constness of tokenized_help_find. Delete weird #define. * src/func.c (tokenized_help_find): Constify. * src/expr.c (expr_tree_new_error): Smarten. * src/fn-misc.c (gnumeric_error_type): Fix case of incorrect number of arguments. * src/fn-information.c (get_value_class): Fix leak. 1999-06-21 Miguel de Icaza * src/func.c: Do not pre-initialize them. If they need to be pre-initialized something is wrong in some other place. Fix that instead. * src/clipboard.c (do_clipboard_paste_cell_region): Implement transpose-on-paste command. Change the increment steps for transpose and compute a different target column as well. (sheet_paste_selection): Swap the paste dimesions here if we are pasting/transpose. 1999-06-18 Miguel de Icaza * src/func.c: Remove static initialization of the error messages. 1999-06-14 Miguel de Icaza * src/clipboard.h: Define PASTE_TRANSPOSE. * src/dialog-paste-special.c (dialog_paste_special): Add new checkbutton for transpose-on-paste operation. 1999-06-21 Michael Meeks * src/func.c (iterate_cellrange_callback): Add case of no cell text ( yet ). 1999-06-21 Morten Welinder * src/fn-information.c (get_value_class): New function. (gnumeric_isnontext): Make non-strict. (gnumeric_istext): Make non-strict. (gnumeric_type): Make non-strict. (gnumeric_islogical): Make non-strict. (gnumeric_isnumber): Make non-strict. (gnumeric_n): Implement. (gnumeric_iseven): Implement. (gnumeric_isodd): Ditto. (gnumeric_cell): Fix error message. (gnumeric_info): Ditto. (gnumeric_type): Partly implement. * src/fn-math.c (gpow10): Rename from pow10 which colided with something in Linux with libc5. (Thanks to Alexander Jolk.) * src/utils.c (parse_cell_name): Don't use isdigit since we intend to subtract '0' from the character. * src/workbook.c (workbook_parse_and_jump): Cleanup. 1999-06-21 Jukka-Pekka Iivonen * samples/infofuns.xls: Added a new file for testing information functions. 1999-06-20 Morten Welinder * src/workbook.c (wb_edit_key_pressed): New function to handle Escape. (workbook_setup_edit_area): Activate wb_edit_key_pressed. * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet): Call sheet_start_editing_at_cursor for F2. * src/sheet.c (sheet_cancel_pending_input): Fix last change. Also update entry box. (sheet_start_editing_at_cursor): New args blankp and cursorp. All callers changed. * src/fn-math.c (gnumeric_mod): Another try. (gnumeric_int): Fix for negative numbers. * src/sheet.c (sheet_set_text): Set value directly, not via text. Also improve entry when a format is already set. (sheet_cancel_pending_input): Fixed behavior of canceling a cell entry. [From Bake Timmon.] 1999-06-18 Jukka-Pekka Iivonen * samples/dbfuns.xls: Added new file for database functions. * samples/mathfuns.xls: Added MDETERM test. * samples/statfuns.xls: Added AVERAGEA, MINA, MAXA, ... tests. 1999-06-17 Morten Welinder * src/fn-stat.c (gnumeric_count): Make non-strict and ignore cells with errors. * src/fn-logical.c (gnumeric_or, gnumeric_and): Make strict!. * src/func.c (IterateCallbackClosure): Add strict member. (iterate_cellrange_callback): Handle strict and non-strict case. (function_iterate_argument_values): New argument, strict. All callers changed. Initialise error_string always. Handle strict and non-strict case. (function_iterate_do_value): New argument, strict. Handle strict and non-strict case. All callers changed. 1999-06-18 Michael Meeks * src/main.c (gnumeric_main): Add xbase_init * src/Makefile.am (gnumeric_LDADD): Add xbase. * configure.in (XML_CFLAGS): Added xbase. * plugins/Makefile.am (SUBDIRS): Added xbase. 1999-06-17 Morten Welinder * src/expr.c (eval_expr): Fix error handling of comparisons. * src/expr.c (expr_tree_new_constant): New function. (expr_tree_new_unary): New function. (expr_tree_new_binary): New function. (expr_tree_new_funcall): New function. (expr_tree_new_var): New function. (expr_tree_new_error): Renamed from build_error_string, made public, and simplified. All callers changed. (do_expr_tree_invalidate_references): Simplify. (do_expr_tree_fixup_references): Ditto. (eval_expr): Simplify. (expr_tree_new): Obsolete. * src/func.c (constants_init): Simplify. * src/main.c (gnumeric_main): Call style_shutdown. * src/style.c (style_shutdown): New function. * src/expr.h: Avoid using bitfields here. They are slow and confuse tools like Purify. And used like this they don't save any space anyway. * src/complex.c: Fix includes. * src/fn-eng.c (gnumeric_impower): Use new complex_pow. (callback_function_imoper): Benefit from new and more intuitive behavoiur of complex_mul and complex_add. * src/complex.h (complex_mod): Use hypot for better precision. (complex_*): Use complex_init when possible. (This means that the output can be the same as one of the inputs without any trouble.) (complex_pow): New function. 1999-06-17 Jukka-Pekka Iivonen * src/fn-stat.c (gnumeric_percentrank): Interpolation and rounding fixes. 1999-06-17 Jukka-Pekka Iivonen * src/fn-eng.c (gnumeric_erf): ERF() changed back to the previous form. Negative arguments are wrong. 1999-06-16 Morten Welinder * src/complex.h, src/complex.c: New files. * src/fn-eng.c: Use complex.c; improve precision, fix a few bugs, plug a few leaks, add a few functions, and generally be merry. * src/Makefile.am (GNUMERIC_BASE_SOURCES): Add complex.c and complex.h. 1999-06-16 Jukka-Pekka Iivonen * samples/finfuns.xls: A new file for financial functions. * samples/engfuns.xls: A new file for engineering functions. * samples/mathfuns.xls: COMBIN and FACT fixed. * samples/statfuns.xls: Accuracy dropped again. 1999-06-16 Morten Welinder * src/workbook.c (workbook_feedback_set): Block the "clicked" handlers when we are just setting the feedback. 1999-06-16 Jukka-Pekka Iivonen * src/fn-math.c (gnumeric_gcd): Made GCD() to take variable number of arguments. * src/fn-stat.c (gnumeric_rank): RANK() fixed. * src/fn-eng.c (gnumeric_erf): ERF() fixed to return negative results if the argument is negative too like in Excel. * srg/fn-eng.c (get_real_and_imaginary): Added a branch for empty imaginary part. * src/fn-eng.c (gnumeric_improduct, gnumeric_imsum): Made IMSUM() and IMPRODUCT() to take variable number of arguments. 1999-06-15 Morten Welinder * src/style.c (style_font_new_simple): Plug leak. * src/cell.c (cell_set_formula_tree_simple): Ref before unref, just in case. * src/fn-math.c (callback_function_criteria): Just collect the values, not (incorrectly) allocated pointers to them. (gnumeric_countif): Release the values. (Leak fix.) (gnumeric_sumif): Ditto. (gnumeric_countif): Plug leak. (gnumeric_sumif): Ditto. (gnumeric_seriessum): Plug three leaks. (gnumeric_subtotal): Plug leaks and fix error handling. * src/style.c (style_font_new_simple): Fix memory access problem. * src/style.c (font_init): Rework. (Work in progress. Things should work ok, but will become even better.) (style_font_new_simple): Revert to loading a font, not a fontset. * src/gnumeric-util.c (font_get_italic_name): Plug leak and unref the StyleFont. (font_get_bold_name, font_get_italic_name): New parameter units. All callers changed. 1999-06-15 Tomas Ogren * configure.in: Added sv 1999-06-14 Morten Welinder * src/style.c (style_font_new_simple): Add negative caching. (DEFAULT_FONT): Don't have a complete wildcard here -- that might be a very weird font. * src/cell.c (cell_set_font_from_style): Mark font valid. Ref before unref. (cell_set_format_from_style): Mark format valid. Ref before unref. * src/gnumeric-util.c (font_get_italic_name): Plug leak. (font_change_component): Constify. Handle fontsets. 1999-06-14 Morten Welinder * src/fn-math.c (gnumeric_floor): Add significance argument. * src/fn-math.c (callback_function_seriessum): Simplify. (gnumeric_seriessum): Don't round x, n, and m to integers. Fix error handling. * src/fn-math.c (pow10): New function. (gnumeric_rounddown): Simplify and correct. (gnumeric_round): Ditto. (gnumeric_roundup): Ditto. (gnumeric_trunc): Ditto. (gnumeric_fact): Improve precision. Extend domain to all positive numbers. (gnumeric_factdouble): Use float_t instead of int. (gnumeric_atan2): Swap args to atan2. 1999-06-13 Morten Welinder * src/style.c (DEFAULT_FONT): Add extra font in the hope of curing 1207. (font_init): Shine up error message and avoid core dump. * src/gnumeric-sheet.c (gnumeric_sheet_stop_cell_selection): Temporary patch for refcounts until Miguel can fixup things. (destroy_item_editor): Ditto. * src/fn-financial.c: s/double/float_t/; (calculate_pvif, calculate_pvifa, calculate_fvif, calculate_fvifa, calculate_principal, calculate_pmt): Make static. (callback_function_npv): Simplify and truly ignore strings. (gnumeric_duration): More error checks. (gnumeric_nper): Ditto. (gnumeric_syd): Ditto. (gnumeric_sln): Ditto. (gnumeric_pv): Ditto. (gnumeric_fv): Ditto. * src/fn-information.c: Prune includes. * src/fn-string.c: Ditto. * src/fn-sheet.c: Ditto. * src/fn-misc.c: Ditto. * src/fn-financial.c: Ditto. * src/fn-date.c: Ditto. * src/fn-database.c: Ditto. * src/fn-lookup.c: Ditto. * src/fn-stat.c: Ditto. * src/fn-math.c: Ditto. * src/fn-logical.c: Ditto. * src/cell.h: Fix includes. * src/fn-information.c (gnumeric_isblank): Return boolean. (gnumeric_iseven): Ditto. (gnumeric_islogical): Ditto. (gnumeric_isnontext): Ditto. (gnumeric_isnumber): Ditto. (gnumeric_isodd): Ditto. (gnumeric_isref): Ditto. (gnumeric_istext): Ditto. (gnumeric_n): Ditto. * src/expr.c (value_new_bool): New function. (eval_expr): Return boolean Values. * src/fn-misc.c (gnumeric_iserr, gnumeric_iserror, gnumeric_isna): Return boolean; * src/fn-logical.c (callback_function_and): Simplify. (callback_function_or): Ditto. (gnumeric_and): Simplify and return boolean Values. (gnumeric_not): Ditto. (gnumeric_if): Fix error case. Simplify. * src/cell.c (cell_comment_destroy): Free realized_list. * fn-*.c: Use new standard error variables. 1999-06-12 Jody Goldberg * src/expr.h : Declare new standard error constants to avoid spelling problems and typos. * src/expr.c, src/func.c, src/fn-math.c : Use and define them. * src/fn-misc.c : First pass at finishing off error functions. * src/fn-information.c : Provide stubs for the rest of the information functions. 1999-06-12 Miguel de Icaza * src/dialog-cell-comment.c (dialog_cell_comment): Process the return value from gnome_dialog_run correctly as well. (ie we should catch the return value -1 as the "user closed dialog box" message and avoid destroying the dialog box ourselves). * src/item-grid.c (context_paste_special_cmd): Handle a cancel operation from the dialog_paste_special dialog box. * src/dialog-paste-special.c (dialog_paste_special): Hanlde the case in which the window manager closed the dialog box. * src/cell.c (cell_comment_destroy): Changed invocation from gtk_object_destroy to gtk_object_unref. (cell_comment_unrealize): ditto. (cell_comment_clicked): ditto. * src/dialog-cell-sort.c (dialog_cell_sort): ditto. * src/dialog-function-select.c (dialog_function_select): ditto * src/dialog-function-wizard.c (dialog_function_wizard): ditto * src/dialog-paste-special.c (dialog_paste_special): ditto * src/dialog-solver.c (constr_add_click): ditto. (constr_add_click): ditto (dialog_solver_options): ditto * src/gnumeric-sheet.c (gnumeric_sheet_stop_cell_selection): ditto (destroy_item_editor): ditto. (gnumeric_sheet_key_mode_object): ditto, and clear the pointer to the current_object. * src/sheet-object-container.c (sheet_object_container_destroy): ditto. * src/item-cursor.c (item_cursor_drag_event): ditto. (item_cursor_autofill_event): ditto * src/item-bar.c (item_bar_event): ditto * src/workbook.c (workbook_setup_auto_calc): ditto. * src/widget-editable-label.c (el_stop_editing): ditto * src/sheet-object.c (sheet_object_destroy): ditto (sheet_view_object_unrealize): ditto (sheet_object_destroy_control_points): ditto * src/sheet-view.c (sheet_view_destroy): ditto 1999-06-10 Miguel de Icaza * src/pattern-selector.c (pattern_selector_init): Use the GNOME canvas fill_stipple feature instead of using the hack of creating the bitmap and setting the stipple on the realize handler. 1999-06-01 Miguel de Icaza * po/hr.po: Added croat translation from Vladimir Vuksan . 1999-06-13 Jukka-Pekka Iivonen * samples/mathfuns.xls: New test file for math functions. * samples/statfuns.xls: Accuracy dropped to 1e-5 (since Excel is not as accurate as Gnumeric). Also the total number of functions in the test output fixed. 1999-06-12 Morten Welinder * src/fn-string.c: Use value_new_string where appropriate. (gnumeric_clean): Use unsigned chars. (gnumeric_t): Speed improvement. * src/file.c (workbook_read): After a workbook has been read, it is to be considered "clean", i.e., unchanged. * src/number-match.c (print_regex_error): Add a few missing breaks. * src/utils.c (gnumeric_strcase_hash): Use unsigned chars. (col_from_name): Ditto. * src/format.c (append_year): Ditto. (append_month): Ditto. (append_hour): Ditto. (append_day): Ditto. (append_minute): Ditto. (append_second): Ditto. (pre_parse_format): Ditto. * src/number-match.c (format_create_regexp): Ditto. * src/fn-string.c (gnumeric_lower): Use g_strdup to match g_free. (gnumeric_upper): Ditto. (gnumeric_lower): Use unsigned chars. (This fixes problems with non-English letters.) (gnumeric_upper): Ditto. (gnumeric_proper): Ditto. Operate on a _copy_ of the string, not the source string itself! 1999-06-10 Morten Welinder * src/parser.y (return_cellref): Surprise: isdigit and friends take unsigned chars (effectively). The results are *undefined* (and weird) for signed chars. (yylex): Ditto. * src/fn-string.c (gnumeric_proper): Ditto. * src/utils.c (parse_cell_name): Ditto. * src/sheet-autofill.c (string_has_number): Ditto. (autofill_cell): Ditto. * src/cell.c (cell_set_text_simple): Ditto. Also fix long/int confusion. 1999-06-10 James Henstridge * src/main.c (gnumeric_main): changed call to glade_init() to a call to glade_gnome_init(), so that gnome widget building routines get initialised correctly. 1999-06-09 Morten Welinder * src/xml-io.c: Fix major thinko in writing fonts. (The name hash table was used to look up a font, which always failed since keys are names in that hash.) 1999-06-09 Nat Friedman * src/sheet-view.c (sheet_view_insert_object): Commented out call to gnome_bonobo_object_new_view since the API changed and this function doesn't do anything anyways. * src/sheet-object-container.c: Include gnome-component-client.h and view-frame.h. (sheet_object_container_land): Pass soc->client_site to gnome_bonobo_object_new_view. Get the view wrapper widget from the view frame. (sheet_object_container_realize): Likewise. 1999-06-09 Morten Welinder * src/workbook.c (insert_at_cursor): Use cell_set_value instead of cell_set_text. Constify. Accept a Value *, not a double. All callers changed. 1999-06-08 Morten Welinder * src/fn-date.c (gnumeric_days360): Get it right, I hope. * src/xml-io.c (xmlGetDoubleValue): Improve precision. (xmlGetCoordinate): Ditto. (xmlGetGnomeCanvasPoints): Ditto. * src/fn-math.c (gnumeric_fact): s/float/float_t/ * src/fn-date.c: Fix types of most functions. (We really need a way of saying "scalar".) (get_serial_date): New helper function. (get_serial_time): Ditto. (gnumeric_hour): Use get_serial_time. (gnumeric_minute): Ditto. (gnumeric_second): Ditto. (gnumeric_year): Use get_serial_date. (gnumeric_month): Ditto. (gnumeric_day): Ditto. (gnumeric_weekday): Ditto. (gnumeric_datevalue): Ditto. (gnumeric_timevalue): Implement using get_serial_time. (gnumeric_days360): Pretty good first cut. * src/parser.y (yylex): Allow dots inside a function name. * src/fn-misc.c (gnumeric_error_type): New function. 1999-06-08 David Chan * src/fn-math.c (gcd): Correct. 1999-06-08 Morten Welinder * src/file.c (workbook_read): Temporarily switch to "C" locale when loading and saving. [Take 2.] (workbook_save_as): Ditto. (workbook_save): Ditto. 1999-06-06 Michael Meeks * src/expr.c (value_area_get_at_x_y): Add vital check for forthcoming name stuff. 1999-06-03 Morten Welinder * src/item-bar.c (item_bar_event): Handle zoom. (item_bar_get_line_points): Handle zoom. (item_bar_start_resize): Handle zoom better. (get_col_name): Delete. Use col_name instead. (bar_draw_cell): Constify. * src/item-bar.h (ItemBar): Delete member resize_guide_offset. 1999-06-02 Morten Welinder * src/fn-date.c (gnumeric_days360): New (unimplemented) function. * src/fn-date.c (gnumeric_year_month_day): Delete. (gnumeric_day, gnumeric_month, gnumeric_year): New functions. (gnumeric_hour_min_sec): Delete. (gnumeric_hour, gnumeric_minute, gnumeric_second): New functions. (gnumeric_weekday): New function. (gnumeric_date): Handle two-digit years. Check this, please. (gnumeric_timevalue): New function. (Untested -- Excel plugin does not handle it yet.) * src/utils.c (g_date_serial): Deal with 19000229. (g_date_new_serial): Ditto. * samples/datefuns.xls: New file from Nick Lamb. * src/eval.c (workbook_recalc): If a cell has already been computed, do not redo it. This should speed up things. (cell_queue_recalc): Delete useless cast. (cell_unqueue_from_recalc): Ditto. (cell_queue_recalc_list): Ditto. (cell_queue_recalc_list): Extra parameter freelist controls whether list is freed. All callers changed. (workbook_recalc_all): Use cell_queue_recalc_list. * src/dialog-goal-seek.c (goal_seek_eval): Properly reevaluate. * src/expr.c (eval_expr): Only evaluate references cells when they are queued for recalculation. * src/func.c (iterate_cellrange_callback): Ditto. * src/fn-math.c (gnumeric_lcm): Remove useless (Sheet *) cast. * src/fn-information.c (gnumeric_countblank): Ditto. * src/fn-database.c (find_column_of_field): Ditto. (parse_database_criteria): Ditto. (find_cells_that_match): Ditto. * src/cell.c (cell_comment_realize): Ditto. 1999-06-02 Michael Meeks * src/expr.c (do_expr_decode_tree): Added ARRAY support. 1999-06-01 Morten Welinder * src/format.c (format_value): Mark format for translation. (format_number): Locale improvements. * src/parser.y (yylex): Translate locale's decimal point into a dot. (gnumeric_expr_parser): Extract locale's decimal point. 1999-06-01 Akira Higuchi * src/gnumeric-util.c (font_change_component): Extend the size of the array components[] so that it can handle very long fontset names. * src/style.c: Change the default font names. * src/workbook.c: Add gtk_widget_ensure_style() call, which is necessary to knowing if a fontset is supplied for the label widget. 1999-06-01 Morten Welinder * src/fn-stat.c (callback_function_trimmean): Cleanup. (gnumeric_large): Fix conditional. Thanks to Nick Lamb. (gnumeric_small): Ditto. 1999-06-01 Morten Welinder * src/fn-stat.c (gnumeric_skew): Fix crashes and leaks. (gnumeric_covar): Ditto. (gnumeric_rsq): Ditto. (gnumeric_pearson): Ditto. (gnumeric_correl): Ditto. (gnumeric_avedev): Ditto. (gnumeric_stdev): Don't make assumptions of the type of VAR. (gnumeric_stdevp): Ditto. (gnumeric_stdeva): Ditto. (gnumeric_stdevpa): Ditto. (callback_function_covar): Simplify greatly. (callback_function_correl): Ditto. (callback_function_stat_avedev_sum): Ditto. (callback_function_skew_sum): Ditto. Also improve precision. (callback_function_rank): Ditto. (callback_function_trimmean): Ditto. (callback_function_mode): Ditto. (callback_function_stat_prod): Ditto. (callback_function_count): Ditto. (callback_function_kurt_sum): Ditto. (callback_function_ztest): Ditto. (callback_function_list): Ditto. (callback_function_percentrank): Ditto. (gnumeric_skew): Handle zero stddev. * src/expr.c (eval_cell_value): Delete. Use value_duplicate instead. (eval_funcall): Fix memory corruption on error. Fix serious leak. (free_values): Only free non-NULLs. 1999-06-01 Miguel de Icaza * src/file.c (dialog_query_load_file): (workbook_save_as): Prettify these. Thanks to Andrew for pointing this out. 1999-06-01 Morten Welinder * src/fn-stat.c (gnumeric_kurt): Fix crashes and leaks. 1999-06-01 Jukka-Pekka Iivonen * src/fn-string.c: Added SEARCH(). Quite a complex beast but should work completely. 1999-06-01 Morten Welinder * src/fn-stat.c (gnumeric_confidence): Fix sign. (gnumeric_devsq): Simplify and correct. * src/file.c: undo last change. (The operation succeeded, but the patient died.) 1999-05-31 Matt Loper * src/sheet-view.c: Because GNOME::Component was renamed to GNOME::BonoboObject, some bonobo function call names needed to be changed here (ex. gnome_component_new_view to gnome_bonobo_object_new_view). * src/sheet-object-container.c (sheet_object_container_land): likewise. (sheet_object_container_realize): likewise. 1999-05-31 Jukka-Pekka Iivonen * src/fn-lookup.c: Added ADDRESS(). Cleaned up too long lines. 1999-05-28 Morten Welinder * src/file.c (workbook_read): Temporarily switch to "C" locale when loading and saving. I am not sure this is the right thing to do, but until someone finds a better way, it will work fine. (workbook_save_as): Ditto. (workbook_save): Ditto. * src/fn-math.c (gnumeric_power): Fix domain. 1999-05-27 Morten Welinder * src/expr.c (value_get_as_string): Improve precision -- this impacts the results of saves. 1999-05-27 Morten Welinder * src/fn-stat.c (callback_function_mode): Ignore strings as advertised. (callback_function_stat_inv_sum): Ditto. (callback_function_rank): Ditto. (callback_function_trimmean): Ditto. (callback_function_covar): Ditto. (callback_function_correl): Ditto. (callback_function_stat_prod): Ditto. (callback_function_skew_sum): Ditto. (callback_function_kurt_sum): Ditto. (callback_function_stat_avedev_sum): Ditto. (callback_function_devsq_sum): Ditto. (callback_function_median): Ditto. (gnumeric_tinv): Fix meaning. (callback_function_count): Cleanup. (callback_function_stat_inv_sum): Ditto. Also fix error case. (gnumeric_normdist): Simplify using dnorm. (gnumeric_gammadist): Use dgamma. * src/mathfunc.c (dgamma): New function from R. 1999-05-27 Jukka-Pekka Iivonen * src/fn-stat.c: Added BETAINV() and CHITEST(). Added optional parameters A and B to BETADIST(). Implemented non-cumulative case of NORMDIST(). Implemented cumulative case of POISSON(). Fixed CHIDIST(), CHIINV(), FDIST(), FINV(), and TDIST() to return the complement of the probablity. It looks like TINV() is still broken after file restructurations. 1999-05-26 Morten Welinder * src/sheet-view.h: Include fix. * src/style.h: Include fix. * src/symbol.c (symbol_table_new): Use gnumeric_strcase_equal and gnumeric_strcase_hash. (g_strcase_equal): Delete. (g_strcase_hash): Delete. * src/eval.c (dependency_equal): Constify. * src/sheet.c (cell_hash): Constify. (cell_compare): Ditto. (CRsort): Ditto. 1999-05-26 Michael Meeks * src/file.c (file_saver_is_default_format): Fixed bug causing incorrect format to be displayed. (fill_save_menu): Wait until we have populated the option menu before setting the current item. (make_format_chooser): Move some code into file_save_menu. * src/xml-io.c (writeXmlSheetTo): Removed, (writeXmlWorkbook): Use the order workbook_sheets list. * src/workbook.c (cb_workbook_sheets): Commented out (workbook_sheets): Get sheets in order from notebook tabs. 1999-05-25 Morten Welinder * src/mathfunc.c, src/mathfunc.h: New files, mostly taken from the R package. (It's a GPL'ed gold mine.) * src/*.c: Use , not "math.h". * src/utils.c (random_normal): Use qnorm, not inv_phi. * src/fn-stat.c: Move all R code to mathfunc.c Change all uses to phi to pnorm. (gnumeric_normsinv): Use qnorm. (gnumeric_confidence): Use qnorm. (normsinv): Superseded by qnorm. (help_lognormdist): Fix. (gnumeric_lognormdist): Fix domain. (gnumeric_lognormdist): Use plnorm. (gnumeric_loginv): Use qlnorm. (gnumeric_norminv): Use qnorm. (gnumeric_tinv): Use qt. (gnumeric_fdist): Use qf. (gnumeric_gammainv): Use qgamma. (gnumeric_chiinv): Use qchisq. * src/Makefile.am (GNUMERIC_BASE_SOURCES): Add mathfunc.c and mathfunc.h. 1999-05-25 Morten Welinder * src/fn-string.c (gnumeric_code): Handle compilers for which the "char" type is signed. * src/utils.c (parse_cell_name): Don't use isalpha which is subject to locale. (So is toupper, but the effects are ok.) Move bounds check to handle overflow also. (col_from_name): Don't use isalpha. * src/fn-stat.c: Eliminate fmin2 and fmax2. * src/fn-math.c (gnumeric_randbetween): Use random_01. (gnumeric_rand): Ditto. * src/utils.c (random_01): Function moved from goal-seek.c and improved. (random_normal): Function moved from goal-seek.c. * configure.in: Check for a few ways of getting random numbers. 1999-05-23 Miguel de Icaza * src/file.c (workbook_save_as): Handle the window closing by the window manager here. (dialog_query_load_file): And here. * src/dialog-zoom.c (dialog_zoom): Handle window manager close here (it comes in the form of return value being NULL). * src/dialog-insert-cells.c (dialog_insert_cells): ditto. * src/dialog-delete-cells.c (dialog_delete_cells): ditto. 1999-05-24 Morten Welinder * src/workbook.c (workbook_fixup_references): Set formula directly, not via text strings. (This actually fixes a bug with insertion of columns/rows where we modify the cells before we restructure the sheet.) It's much faster and cleaner too. (workbook_invalidate_references): Ditto. 1999-05-23 Morten Welinder * src/gnumeric-sheet.c (gnumeric_sheet_cursor_set): Make the scroll bar reflect the top-left corner's position. This feels more natural. (gnumeric_sheet_set_top_col): Compute visible ranges; do nothing until things change. (gnumeric_sheet_set_top_row): Ditto. * src/dialog-goal-seek.c (gnumeric_goal_seek): Use goal_seek_initialise. (gnumeric_goal_seek): Trawl heavier and earlier in the middle. (dialog_goal_seek): downcase a stray uppercase letter. * src/goal-seek.c (goal_seek_initialise): New function. 1999-05-23 Morten Welinder * src/dialog-goal-seek.c: redesign non-gui part. (dialog_goal_seek): Added entries for xmin and xmax. * src/goal-seek.h: New file. * src/goal-seek.c: New file. * src/Makefile.am (GNUMERIC_BASE_SOURCES): Add goal-seek.c and goal-seek.h. 1999-05-22 Morten Welinder * src/fn-financial.c (gnumeric_pv): Revert last chance. (Bogosity is in me.) 1999-05-22 Morten Welinder * src/sheet.c (sheet_selection_to_string): Delete unused variable "assembler". * src/sheet-view.c (horizontal_scroll_event): Delete unused variable "distance". (vertical_scroll_event): Delete unused variable "distance". * src/sheet-object.c (control_point_handle_event): Delete unused variables "ll" and "object_item". * src/widget-editable-label.c (editable_label_set_text): Delete unused variable "item_text". * src/fn-string.c (gnumeric_replace): Delete unused variable "p". * src/fn-eng.c (get_real_and_imaginary): Delete unused variables "i" and "buf". * src/sheet-object-graphic.c (sheet_object_filled_update): Delete unused variables "x1", "x2", "y1", and "y2". * src/fn-stat.c (gnumeric_harmean): Delete unused variable "ans". (gnumeric_geomean): Delete unused variable "ans". (gnumeric_avedev): Delete unused variable "ans". (gnumeric_large): Delete unused variable "count". (gnumeric_small): Delete unused variable "count". * src/parser.y (make_string_return): Delete unused variable "type". * src/workbook.c (cb_sheet_check_dirty): Delete unused variable "f". (workbook_focus_sheet): Delete unused variable "sheet_view". (workbook_selection_to_string): Delete unused variable "str". * src/fn-date.c (gnumeric_datevalue): Delete unused variables "year", "month", and "day". (gnumeric_edate): Delete unused variables "year", "month", and "day". * src/dialog-cell-format.c (apply_coloring_format): Delete unused variable "cl". * src/dialog-solver.c: Delete unused variable "paste_types". * src/xml-io.c (xmlGetFloatValue): Delete unused variable "child". (xmlGetDoubleValue): Delete unused variable "child". (xmlGetCoordinate): Delete unused variable "child". (xmlGetGnomeCanvasPoints): Delete unused variable "child". (xmlGetColorValue): Delete unused variable "child". (xmlGetCoordinates): Delete unused variable "child". (xmlGetCoordinates): Delete unused variables "X1", "Y1", "X2", and "Y2". * src/sheet-object-graphic.c (sheet_object_graphic_update): Delete unused variable "sog". * src/cell.c (cell_set_value_simple): Delete unused variable "lconv". (cell_set_text_simple): Delete unused variable "lconv". (cell_draw): Delete unused variable "white_gc". (cell_get_text): Delete unused variable "sheet". * src/ranges.c (range_list_parse): Delete unused variable "range". (range_set_style): Delete unused variables "col" and "row". * src/dialog-solver.c (dialog_solver_options): Delete unused variable "button". * src/eval.c (search_cell_deps): Delete unused variables "inters" and "nointers". * src/dialog-cell-sort.c (dialog_cell_sort): Delete unused variable "txt". * src/fn-database.c (find_cells_that_match): Delete unused variable "new_item". * src/func.c (function_iterate_do_value): Delete unused variable "list". * src/fn-lookup.c (gnumeric_lookup): Delete unused variables "v1" and "ans". (lookup_functions): Use correct help variable for "columns". * src/dialog-function-select.c (function_select_create): Delete unused variable "hadj". * src/main.c (gnumeric_main): Delete unused variable. * src/dialog-function-wizard.c (function_type_input): Remove unused variable. (get_text_value): Ditto. (arg_data_list_destroy): Comment out -- not used. * src/fn-financial.c (gnumeric_pv): Fix sign error. Something is entirely bogus in this file. * src/ranges.h: Fix includes. * src/pattern-selector.h (PATTERN_SELECTOR_CLASS): Bogosity fixed; macro not used, though. * src/workbook.c (sheet_action_delete_sheet): Grammar fix. * src/sheet.c (sheet_verify_selection_simple): Grammar fix. * src/file.c (file_priority_sort): Constify. (file_format_register_open): Make description parameter const. (file_format_register_save): Ditto. (file_format_unregister_open): Plug leak. (file_format_unregister_save): Ditto. (workbook_save_as): Grammar fix. * src/about.c (dialog_about): Fix URL. 1999-05-22 Morten Welinder * src/sheet.c (sheet_set_text): Use General format for all numbers in standard format. (In particular, don't create a sticky "0" format whenever an integer is entered.) * src/format.c (format_number): Constify. (append_minute): Ditto. (append_day): Ditto. (append_hour): Ditto. (append_month): Ditto. (append_year): Ditto. (append_second): Ditto. (check_valid): Ditto. (append_half): Ditto. (lookup_color): Ditto. (render_number): Ditto. (format_value): Ditto. * src/expr.c (do_expr_decode_tree): Handle negative numbers, just in case. 1999-05-21 Morten Welinder * src/sheet-autofill.c (autofill_cell): Add FIXME. * src/sheet.h (IS_SHEET): Remove cast. * src/expr.h: Delete expr_tree_relocate. * src/expr.c (fixup_calc_new_cellref): New function. (do_expr_tree_fixup_references): Simplify using fixup_calc_new_cellref. (do_expr_tree_relocate): Delete. (expr_tree_relocate): Delete. * src/sheet.c (sheet_cell_formula_link): Add debug code. (sheet_insert_col, sheet_delete_col, sheet_insert_row, sheet_delete_row): Do fixups early. * src/cell.c (cell_relocate): Don't relocate cell -- fixup handles all that is needed. * src/color.c (gs_white, gs_black, gs_light_gray, gs_dark_gray, gs_red): Moved from src/gnumeric-sheet.c. (gnumeric_color_context): make static. 1999-05-21 Jukka-Pekka Iivonen * src/fn-stat.c: PERCENTRANK() added. * src/func.[ch]: function_iterate_do_value made public. 1999-05-21 Morten Welinder * configure.in: use AC_CHECK_HEADERS, not AC_CHECK_HEADER for the benefit of autoheader. 1999-05-19 Michael Meeks * src/fn-stat.c: Added 'static' to new non-global functions. * src/cell.c (cell_set_formula_tree_simple): Added missing sheet_cell_formula_unlink. 1999-05-19 Jukka-Pekka Iivonen * src/fn-math.c: SERIESSUM(), SUBTOTAL() and SUMA() added. * src/fn-stat.c: SLOPE(), AVERAGEA(), MAXA(), MINA(), STDEVA(), STDEVPA(), VARA(), and VARPA() added. * src/fn-stat.c (gnumeric_counta, gnumeric_min, gnumeric_max, gnumeric_stdev, gnumeric_stdevp, gnumeric_var, gnumeric_varp): made public (used also in src/fn-math.c for now on). 1999-05-19 Michael Meeks * CHANGES: copied to web and blanked. 1999-05-18 Miguel de Icaza * src/corba-args.c (gnumeric_arg_parse): Initialize as a server. Thanks to Elliot for fixing this one. 1999-05-17 Miguel de Icaza * src/utils.c (parse_cell_name): Return false if the cell name is outside the boundaries of the spreadsheet. * src/corba-sheet.c (Sheet_range_set_text): Implement. (Sheet_range_set_formula): Implement. (Sheet_range_set_format): Implement. * src/ranges.c (range_parse, range_list_parse, range_list_destroy, range_list_foreach_full, range_list_foreach_all, range_list_foreach, range_set_style): New functions. Used by the corba-sheet code. * src/corba-sheet.c (Sheet_range_get_values): Implement vector-based result return. * src/xml-io.c (xmlSetGnomeCanvasPoints): use g_malloc instead of alloc. * src/dialog-solver.c (constr_add_click): Use g_malloc instead of alloc. Use g_new instead of malloc. * src/utils.c (parse_cell_name_list): Add parameter checking. Use Migueestyle. 1999-05-16 Miguel de Icaza * src/corba-workbook.c (Workbook_corba_class_init): Make it work with the new bonobo. 1999-05-16 Raja R Harinath * src/Gnumeric.idl: Revert the following checkin: 1999-05-13 Kjartan Maraas . `gnome-object.idl' is part of `bonobo'. 1999-05-16 Morten Welinder * src/expr.c (do_expr_tree_relocate): Change to use lazy copying scheme -- this should improve sharing. (Until someone saves and reloads, of course. More about that at a later time.) (expr_tree_invalidate_references): Quiet. (expr_tree_fixup_references): Quiet. * src/cell.c (cell_relocate): Only update if changed. * src/expr.c (evaluate_level): Deleted. (bigger_prec): Deleted. (do_expr_decode_tree): Handle left/right associativity. * src/cell.c (cell_set_text_simple): Simplify value parsing. * src/dialog-goal-seek.c (test_cell_with_value): Cast to double, not float. 1999-05-16 Michael Meeks * src/workbook.c (cb_assemble_selection): Add 'char *sel' and change "," -> ',' (workbook_selection_to_string): Add 'char *result' Fix incorrect pointer dereference. * src/sheet.c (reference_append): Fix appended strings to characters. (sheet_selection_to_string): Add missing GList pointer 'selections'. Changes ":" -> ':', rename res to 'info->result' 1999-05-15 Heath Martin * src/gnumeric-sheet.c (gnumeric_sheet_compute_visible_ranges): Small cut and paste fix. Use row here instead of col. 1999-05-13 Miguel de Icaza * configure.in (ALL_LINGUAS): Added slovak language. 1999-05-09 Miguel de Icaza * src/sheet.c (sheet_selection_to_string): New routine. Returns a string representation of the current selection. * src/workbook.c (workbook_selection_to_string): New routine. Retunrs a string representation of the current selection. 1999-05-08 Miguel de Icaza * src/corba-workbook.c (corba_sheet): Fix. 1999-05-16 Michael Meeks * CHANGES: Added to ease burdern of creating accurate descriptions between versions. 1999-05-15 Jukka-Pekka Iivonen * samples/statfuns.xls: Added a new file. It can be used for regression testing. It is in Excel format so it tests the Excel plugin's functionality in the same time too. 1999-05-15 Michael Meeks * src/file.c (file_format_register_save): Changed to append new types; works round bug in selection. * src/expr.c (eval_cell_value): Fix sillyness of top left corner stuff. * src/expr.h: Added const to value_dump * src/parser.y (value_dump): Fixed array problem. Added const to parameter. 1999-05-15 Michael Meeks * src/parser.c (value_dump): Updated Arrays, to use Value * * src/func.c (function_iterate_do_value): same. * src/fn-sheet.c (gnumeric_selection): same. * src/eval.c (add_value_deps): same. * src/expr.c (value_get_as_string): Major re-work of ARRAY conversion. (value_array_set): Fix rather embarassing bug in assertions. (eval_cell_value): Return top left corner of array, seems to be what excel does. (value_release, value_array_set, value_array_new), (value_array_copy_to, value_array_resize): Updated value->v.array to Value *'s saves much hassle ! 1999-05-14 Michael Meeks * src/expr.c (value_area_get_width, value_area_get_height): Clip to sheet bounds if CELLRANGE: Massive speedup on some lookups. * src/expr.h: Added value_zero * src/func.c (constants_init): Added a 'value_zero' constant to kill leak in out-of-range / NULL cell cases in value_get_at_x_y 1999-05-14 Jukka-Pekka Iivonen * src/fn-math.c: Added LCM(). 1999-05-13 Kjartan Maraas * src/Gnumeric.idl: s/#include / #include , to make it compile. 1999-05-13 Michael Meeks * src/Gnumeric-impl.c: Fixes killing this file by mistake. 1999-05-13 Michael Meeks * src/expr.h: Updated all prototypes. * *.c: s/\ * src/expr.c (value_area_get_at_x_y): Added warning in safety case. * src/fn-lookup.c (gnumeric_lookup): Implemented. * src/func.h: Updated critera_test_fun_t: returns int, should really be gboolean ? * src/expr.h: Added prototype & indentation beautified. * src/expr.c (value_array_set): Helper function added. 1999-05-13 Jukka-Pekka Iivonen * src/fn-math.c: Added GCD(). 1999-05-12 Michael Meeks * src/workbook.c (workbook_setup_edit_area): Added dependancy debugging button for --debug=10 and fixed memory leak. (deps_output): Dumps dependency data to stdout. * src/gnumeric-util.c (range_contains): Re-order compares to catch single cell ranges more quickly. * src/eval.c (intersects): Change order of sheet / range check for speed. (search_cell_deps): Added comment. * src/eval.h: Cosmetic typo. fix shet -> sheet 1999-05-12 Jukka-Pekka Iivonen * src/fn-database.c: Database functions accept now string criterias too. In addition, the parsing of criterias and the test functions are now public (src/fn-math.c uses these for now on). * src/func.h: Added type definitions and function prototypes for internal functions that parse and test criterias. * src/fn-math.c: Added LN(). Changed LOG() to take an optional second parameter. LOG() returns the logarithm in base 10 if the optional argument is not given, otherwise it returns the logarithm in the given base. * src/fn-math.c: Added COUNTIF() and SUMIF(). * src/fn-eng.c: Added IMLOG10() and IMLOG2(). * src/fn-eng.c (complex_ln): Fixed a bug. Imaginary coefficient was calculated incorrectly. 1999-05-11 Jukka-Pekka Iivonen * src/fn-eng.c: Added CONVERT(). All translations should work. Also get_real_and_imaginary() fixed (complex numbers should now work completely). 1999-05-10 Michael Meeks * src/sheet.h: Added workbook_focus_sheet. * src/workbook.c (workbook_focus_sheet): Added. 1999-05-10 Jukka-Pekka Iivonen * src/fn-eng.c: Added IMARGUMENT(), IMCONJUGATE(), IMCOS(), IMDIV(), IMEXP(), IMLN(), IMPOWER(), IMPRODUCT(), IMSIN(), IMSQRT(), IMSUB(), and IMSUM(). 1999-05-08 Michael Meeks * web/index.html: Fix sillyness in references. * web/gnumeric-0.25: Remove HTML tags... 1999-05-08 Michael Meeks * src/Makefile.am (gnumeric_LDADD): Added libole2 library. * configure.in (XML_CFLAGS): Updated to add excel/libole2 * src/sheet.h: Commented sheet_cell_get vs. _fetch. * src/expr.c (do_expr_tree_unref, value_string, value_release), (eval_cell_value, do_expr_tree_invalidate_references): Clean: Added 'default' cases with warnings. (value_get_as_double, value_get_as_int, value_get_bool): Changed to safer / faster switch statement from if. 1999-05-07 Michael Meeks * src/corba-workbook.c (corba_sheet): Add CORBA_Environment parameter, needed for Object_dupicate... (Workbook_sheet_new, Workbook_sheet_lookup), (Workbook_sheet_current): Updated corba_sheet's args. * src/fn-lookup.c: Fixed choose help. 1999-05-06 Miguel de Icaza * src/corba-workbook.c (corba_sheet): Duplicate the object before returning to ORBit. 1999-05-07 Jukka-Pekka Iivonen * src/fn-eng.c: Added COMPLEX(), IMABS(), IMAGINARY(), IMREAL(). Also added an internal function get_real_and_imaginary() which still needs to be improved. * src/fn-math.c: Added MROUND() and ROMAN(). ROMAN() currently supports only type 0 (classic). 1999-05-07 Heath Martin * src/expr.c (expr_tree_invalidate_references): Add extra argument for the sheet we are changing. All callers changed. (expr_tree_fixup_references): Ditto. 1999-05-06 Morten Welinder * src/eval.c (cell_queue_recalc): Don't re-queue cell. (cell_queue_recalc_list): Don't re-queue cells. (Because it is wasteful and because unqueue then won't work right.) * src/fn-lookup.c (gnumeric_column): Fix leak. (gnumeric_row): Fix leak. (gnumeric_choose): Fix leak. (lookup_similar): Fix leaks. * src/xml-io.c (xml_probe): Fix leak. (xmlGetValue): Fix *HUGE* leak. (readXmlStyle): Fix leaks. (readXmlSheet): Fix leaks. (createXmlSheet): Fix leak. (readXmlCell): Move the freeze, just in case. * src/fn-lookup.c (gnumeric_choose): Remove (incorrect) arg check. * src/cell.c (cell_copy): Properly handle render_color member. Clear the CELL_QUEUED_FOR_RECALC flag. (cell_destroy): Add code to make it painfully clear when members of freed cells are accessed. 1999-05-06 Michael Meeks * src/cell.h: Added deep freeze prototypes. * src/cell.c (cell_deep_freeze_redraws): Added (cell_deep_thaw_redraws): Added, (cell_queue_redraw): Updated to use deep_freeze effectively ignore redraw requests. * src/xml-io.c (readXmlCell): Added deep freeze/thaw redraws for clean and easy speedup. 1999-05-06 Michael Meeks * src/workbook.c: Moved 'Sort' to the tools menu. * HACKING: Pedantic clean. 1999-05-06 Jukka-Pekka Iivonen * src/fn-date.c: Added EDATE(). 1999-05-06 Jukka-Pekka Iivonen * src/fn-date.c: Added DATEVALUE(). 1999-05-05 Jukka-Pekka Iivonen * src/fn-database.c (parse_criteria): If a condition contains just a number, it is an equality condition. 1999-05-05 Miguel de Icaza * configure.in: Laptop does not have resources. Make guile optional until at least. * src: Now we only support two modes: Gnumeric and Gnumeric-Bonobo. The later includes all of the CORBA support, there is no longer a non-Bonobo CORBA version. * src/corba-workbook.c, src/corba-sheet.c, src/workbook-factory.c: New files that support the Gnumeric CORBA interfaces. 1999-05-02 Miguel de Icaza * src/corba-workbook.c (WorkbookFactory_init): Add workbook factory servant initialization. 1999-05-04 Morten Welinder * src/eval.c (dependency_remove_cell): Remove unused assignment. (cell_queue_recalc_list): Mark queued cells as being so. * src/fn-math.c (gnumeric_combin): Clean up. (combin): Handle large numbers carefully. * src/utils.c (january_1900): Fix argument list. * src/fn-stat.c (gnumeric_var): Remove unused variable. (gnumeric_varp): Ditto. 1999-05-04 Jukka-Pekka Iivonen * src/fn-math: Added ROUND(). * src/fn-information: Added new file for information functions. New function COUNTBLANK() implemented. * src/Makefile.am, src/func.[ch]: Added `fn-information.c'. 1999-05-04 Jukka-Pekka Iivonen * src/fn-database.c: Added DCOUNTA(). * src/fn-stat.c: Added argument count checks for VAR() and VARP(). Added STEYX(). 1999-05-03 Morten Welinder * src/format.c (split_time): Fix leak. * src/parser.y (forget): Fix leak. * src/expr.c (do_expr_tree_ref): Delete. (expr_tree_ref): Just increase the ref-count. (do_expr_tree_unref): Properly decrease all the way. (expr_tree_new): Fix prototype. (value_release): Add "break". (value_cellrange): Make args const. Don't use memcpy call. * src/parser.y (v_new): Fix type. (alloc_register): Ditto. (dump_tree): Fix reference to variable cell. * src/file.c (file_format_unregister_save): Fix leak. (file_format_unregister_open): Fix leak. * src/parser.y (forget): Fix leak. * src/eval.c (add_tree_deps): Use OPER_ANY_BINARY. (add_value_deps): Delete unused variable. (dependency_remove_cell): Fix leak. * src/sheet.c (sheet_destroy_styles): Leak fix. Late night coding? :-) (sheet_shift_row): Ditto. * src/parser.y (alloc_clean): Ditto. (alloc_list_free): Ditto. * src/main.c (gnumeric_main): Get rid of memory leak debug code (handled by other means now). * src/cell.c (cell_set_value): Remove "const". (cell_set_value_simple): Ditto. 1999-05-03 Jukka-Pekka Iivonen * src/fn-database.c: New file added for database functions. Implemented DAVERAGE(), DCOUNT(), DGET(), DMAX(), DMIN(), DPRODUCT(), DSTDEV(), DSTDEVP(), DSUM(), DVAR(), and DVARP(). * src/func.c: Added registeration of database functions. * src/fn-stat.c, src/func.h: callback_function_stat made public. 1999-05-02 Michael Meeks * src/expr.h: Spelling fix 'substract' :-) * src/expr.c (expr_tree_new): Added for convenience. 1999-05-02 Michael Meeks * src/cell.c (cell_set_value): Created. (cell_set_value_simple): Created. * src/cell.h: Added headers 1999-05-01 Miguel de Icaza * src/corba-workbook.c, src/corba-sheet.c: New files implementing most of the new Gnumeric.idl interface. * src/Gnumeric.idl: Make it useful. 1999-04-30 Morten Welinder * src/*.h: Properly forward-declare structures. Include dependencies. Change the occasional "void *" to its right type. * src/*.[cy]: Include more dependencies. * src/sheet.c (sheet_delete_row): Remove from workbook hash also. 1999-04-29 Morten Welinder * src/expr.c (expr_tree_fixup_references): Implement. * src/sheet.c (sheet_delete_row, sheet_delete_col): Fixup references. * src/expr.c (do_expr_tree_relocate): Remove strange and incorrect refcount fiddling. * src/workbook.c (workbook_fixup_references, workbook_invalidate_references): Fix cell walking. * src/expr.c (do_expr_decode_tree): rename binary_operation_names to operation_names and fill in the rest. * src/fn-misc.c (gnumeric_error): New function. * src/expr.c (value_str): Constify. (expr_tree_invalidate_references): Mostly implement. * src/fn-math.c (gnumeric_multinomial, gnumeric_product, gnumeric_sumsq): Fix type. * src/expr.h (OPER_ANY_BINARY, OPER_ANY_UNARY): new convenience macros. (struct _Sheet): declare forward reference so we can use the right types. (CellRef, FunctionDefinition, expr_parse_string, expr_decode_tree, eval_expr): use "struct _Sheet *". * src/workbook.c (workbook_do_destroy): Carefully clean workbook before deleting sheets. Do things in the standard way. Get rid of clipboard leak. (insert_cols_cmd): Fix name string. (workbook_detach_sheet): New parameter "force". All callers changed. (workbook_fixup_references, workbook_invalidate_references, workbook_sheets): New functions. * src/sheet.c (sheet_verify_selection_simple): Mark strings for translation. (sheet_insert_col): Fixup references to moved cells. (sheet_delete_col, sheet_delete_row): Invalidate references to deleted cells. * src/sheet-autofill.c (fill_item_new): Fix copying of cell with error. * src/parser.y (yylex): "const" fixes. (gnumeric_expr_parser): New function (to fix memory corruption and leaks). * src/fn-stat.c (i1mach): Make static. (gnumeric_var, gnumeric_varp, gnumeric_stdev, gnumeric_stdevp, gnumeric_rank, gnumeric_trimmean, gnumeric_covar, gnumeric_correl, gnumeric_mode, gnumeric_harmean, gnumeric_geomean, gnumeric_count, gnumeric_counta, gnumeric_average, gnumeric_min, gnumeric_max, gnumeric_skew, gnumeric_kurt, gnumeric_avedev, gnumeric_devsq, gnumeric_pearson, gnumeric_rsq, gnumeric_median, gnumeric_large, gnumeric_small, gnumeric_ztest): Fix type. * src/fn-math.c (gnumeric_fact, gnumeric_combin): Mark strings for translation. (gnumeric_sum, gnumeric_trunc): Fix type. * src/fn-lookup.c (gnumeric_choose, gnumeric_column, gnumeric_row): Fix type. * src/fn-misc.c (gnumeric_iserror): Fix type. * src/fn-sheet.c (gnumeric_selection): Fix type. * src/fn-string.c (gnumeric_concatenate): Fix type. * src/fn-logical.c (gnumeric_and, gnumeric_not, gnumeric_or, gnumeric_if): Fix type. * src/fn-financial.c (gnumeric_npv): Fix type. * src/expr.c (expr_parse_string): Move in part to parser.y. Delete global variables to communicate. (do_expr_tree_ref, do_expr_tree_unref, do_expr_decode_tree, do_expr_tree_relocate): use OPER_ANY_BINARY and OPER_ANY_UNARY. (function_call_with_values): Mark strings for translation. (eval_expr, do_expr_decode_tree, expr_decode_tree): Fix type to use "Sheet *" instead of "void *". (do_expr_decode_tree): Free sum. (expr_tree_invalidate_references, expr_tree_fixup_references): New functions. Not implemented yet. * src/cell.c (cell_set_formula): "const" fix. (cell_copy): Ref entered_string also if it exists. (cell_relocate): Unlink cell from workbook list of cells. * src/about.c (dialog_about): Add myself. Update copyright. 1999-04-29 Jukka-Pekka Iivonen * src/fn-{math,sheet,logical}.c, src/func.[ch]: Moved logical functions into a new file. * src/fn-math.c: Added ROUNDDOWN(), ROUNDUP(), SUMX2MY2(), SUMX2PY2(), and SUMXMY2(). * src/fn-stat.c: Added PROB(). CONFIDENCE() should now work fully. 1999-04-28 Jukka-Pekka Iivonen * src/fn-stat.c: Added COUNTA(), FINV(), and TINV(). * src/fn-stat.c, src/fn-math.c: AVERAGE(), COUNT(), MAX(), and MIN() moved from fn-math.c to fn-stat.c. They are in the statistical function group in Excel. 1999-04-27 Jukka-Pekka Iivonen * src/fn-stat.c: Added BETADIST(), FDIST(), and TDIST(). 1999-04-26 Miguel de Icaza * src/eval.c (intersects): Typo fix. Sheet was being assigned instead of being tested for equality. This got Michael to crash Gnumeric (as there was no test for can_remove) 1999-04-26 Jukka-Pekka Iivonen * src/fn-stat.c: Added CHIDIST(), CHIINV(), and GAMMAINV(). Sat Apr 24 14:39:32 1999 Morten Welinder * src/sheet.c (sheet_selection_reset_only): Remove useless initialisation. Don't free individual selections here. (sheet_selections_free): Walk the list of selections and free each one. (sheet_get_selection_name): Calculate buffer size based on the size of an int. * src/fn-eng.c: Remove sqrtpi function -- it's already in fn-math.c * src/fn-math.c (gnumeric_sqrtpi): Add range check. * src/symbol.c (symbol_install): Add sanity check. Fri Apr 23 17:52:44 1999 Morten Welinder * src/sheet.c (sheet_destroy): Don't check that workbook is NULL because it cb_sheet_do_destroy will call it non-NULL. * src/workbook.c (cb_sheet_do_destroy): Don't NULL workbook member as it will be used. * src/format.c (render_number): Fix rounding up. * src/*.[chy]: add tons on "const"s. 1999-04-23 Jukka-Pekka Iivonen * src/fn-stat.c: Added GAMMADIST() function. It uses pgamma() function written by Ross Ihaka. Thanks to Morten for pointing this piece of code. 1999-04-21 Morten Welinder * src/workbook.c (workbook_do_destroy): Release the sheets and the hash table that held the references to the sheets. * src/func.c: warning fix. 1999-04-21 Miguel de Icaza * src/widget-editable-label.c (el_button_press_event): Add type cast to kill warning. * src/format.c: Include ieeefp.h if required. 1999-04-19 Miguel de Icaza * src/fn-string.c: Close parentheses in help_stubstitute function descritpion. Thanks to Aldy Hernandez for pointing this out. 1999-04-19 Jukka-Pekka Iivonen * src/dialog-goal-seek.c: Goal seek tool implemented. Goal seek should now find a solution for all linear problems (if there is one). A simple non-linear search algorithm also implemented. * src/workbook.c: Made 'Goal seek' menu entry visible. * src/fn-math.c: Added MULTINOMIAL(), PRODUCT(), SIGN(), SUMSQ(), and SQRTPI(). 1999-04-19 Miguel de Icaza * src/func.c (iterate_cellrange_callback): Eval the cell here if it has not yet been evaluated. Sun Apr 18 17:59:09 EDT 1999 Gregory McLean * gnumeric.spec.in: Updated and enhanced spec file. Tastes even better and is less filling to boot! 1999-04-17 Miguel de Icaza * src/sheet-object-container.c (make_container_item): New routine. (sheet_object_container_land): Used to convert from the temporary widgets to the view provided by Bonobo. 1999-04-16 Miguel de Icaza * src/expr.c (value_array_resize): Fix typo bug I introduced. * src/eval.c (cell_queue_recalc): When queuing for recalc, tag the cell, so that if we remove the cell from the recalc list we can quickly find out if we have to look for it on the list of pending recomputations. (pick_next_cell_from_queue): Clear the cell's CELL_QUEUED_FOR_RECALC bit. (cell_unqueue_from_recalc): New routine to remove a cell queued for recomputation. * src/clipboard.c (new_node): Trim leading spaces. 1999-04-16 Jukka-Pekka Iivonen * src/fn-math.c: Added EVEN, FACTDOUBLE, ODD, QUOTIENT, and RANDBETWEEN. * src/fn-stat.c: Added LOGINV, NORMINV, NORMSINV, RSQ, and ZTEST functions. 1999-04-15 Michael Meeks * src/parser.y (value_dump): Added CellRange support * src/fn-lookup.c (gnumeric_offset): Implemented OFFSET. * src/expr.c (value_cellrange): Created. (eval_funcall): Major hack to allow auto-conversion of cell references to cell ranges on the fly. * src/expr.h: Added value_cellrange. 1999-04-15 Michael Meeks (gnumeric_choose): CHOOSE function implemented. 1999-04-14 Miguel de Icaza * src/sheet.c (sheet_destroy): No longer destroys the Bonobo objects here. * src/sheet.h (Sheet): No longer keeps track of the ClientSites here. * src/sheet-object.c (sheet_finish_object_creation): Invoke new class method to signal finalization of object creation. * src/sheet-object-container.c, src/sheet-object-container.h: New files that implement the Bonobo ClientSites (SheetObjectContainers). * src/Makefile.am (gnumeric_bonobo_SOURCES): Sources for Bonobo compilation. * src/sheet-object.c (sheet_object_construct): Create the bounding box points here. (sheet_set_mode_type): Fix from my previous reorganization: Only stop editing mode if the mode is SHEET_MODE_SHEET. (sheet_button_press): Strategy change: now we accept sheet->current_object and we stop editing here the object. * src/sheet-object.h: points has been renamed to bbox_points. * src/sheet-object-graphic.c (sheet_object_filled_realize): Simplified this routine. Also, we now update the bounding box here. 1999-04-15 Michael Meeks * src/fn-lookup.c: Silly bug in types fixed. * src/expr.c (eval_funcall): Made cellrefs absolute. * src/cell.c (cell_set_text_simple): Fix for 1.234E-07 1999-04-13 Miguel de Icaza * src/sheet-object.c: Converted SheetObject to a Gtk+ object. Splitted the functionality of the SheetObject into classes: SheetObject abstract class; SheetObjectGraphic for simple drawings; SheetObjectFilled for objects that have a fill attribute. * src/sheet-object-graphic.c: Implement the SheetObjectGraphic and SheetObjectFilled objects. 1999-04-13 Miguel de Icaza * src/xml-io.c (xml_probe): Do not crash if the file is a broken XML file. 1999-04-13 Zbigniew Chyla * src/workbook.c: using 'gnome_dialog_run_and_close' instead of 'gnome_dialog_run' (which _may_ destroy dialog widget - we don't have to check for this case). 1999-04-12 Miguel de Icaza * src/corba-args.c (gnumeric_arg_parse): Intiialize Bonobo. * configure.in: add test for Bonobo. * src/clipboard.c (x_selection_to_cell_region): Fixed the computation of columns in the paste code. 1999-04-11 Miguel de Icaza * src/workbook.c (insert_object_cmd): Add sample bonobo support. Still lacking an object server selector. * src/sheet.c (sheet_insert_object): Add Bonobo support. * src/sheet-view.c (sheet_view_insert_object): Add basic Bonobo support. I need to reuse the SheetObject stuff to add control points to the objects and to handle repositioning. 1999-04-12 Michael Meeks * TODO: Removed basic functions section, most are done. 1999-04-11 Michael Meeks * src/dialog-function-select.c (function_select_row): Check event is valid before using it, remove redundant total redraw. (category_select_row): Fix. (function_select_create): Removed redundant call to duplicated (create_description): Removed. * src/fn-lookup.c: Actualy change the lookup function tokens to the correct values. 1998-04-09 Zbigniew Chyla * src/workbook.c: Creating auto_expr menu every time it is popped up instead of using one object all the time (and referencing to invalid workbook from "activate" signal handler). * src/item-grid.c: (item_grid_popup_menu): Fixed memory leak (gnumeric_popup_menu used instead of gtk_menu_popup). 1999-04-11 Michael Meeks * src/expr.c (eval_funccall): New array / 'area' tokens added, error strings simplified ( int type_mismatch added ) (value_area_get_width, value_area_get_height): Implemented, (value_area_get_at_x_y): Implemented. (value_array_new, value_array_resize): Implemented. (value_release): Updated. (value_copy_to, value_array_copy_to): Updated, created. Added const to a scad of helper 'value_get' style functions. * src/expr.h: Value: Changed 'array' from GList to a structure. Added struct _Value for self reference. Added const to a scad of helper 'value_get' style functions. * src/func.c (function_iterate_do_value): Updated Array code. * src/eval.c (add_value_deps): Updated Array stuff. (add_value_deps): const added to Value * * src/dialog-function-wizard.c (function_type_input): Updated text for new tokens. * src/fn-sheet.c (gnumeric_selection): Update to new array code. * src/fn-lookup.c (columns, rows): Updated to clean new API. (vlookup, hlookup): Large clean. * src/parser.y (value_dump): Updated Array section. * docs/C/writing-functions.smgl: Added section explaining tokens, and new API. 1999-04-09 Michael Meeks * src/sheet.c (sheet_destroy): Move destruction of cell_hash to after destroy_styles.columns_and_rows that use it. NULL various pointers. (sheet_col_destroy): Added g_return_if_fail (ci) (sheet_duplicate_colrow): Merged into (sheet_row_new, sheet_col_new) and removed: nasty function. (sheet_destroy_columns_and_rows): Fix nasty bug using freed 'l' pointer ( freed by sheet_col_destroy / sheet_row_destroy ). NULL the pointers for safety. (sheet_col_destroy): NULL various pointers. * src/sheet.h (sheet_duplicate_colrow): Removed. 1999-04-08 Jukka-Pekka Iivonen * src/dialog-solver.c, src/dialog-goal-seek.c, src/solver.h: Wrote dialogs for these tools. The tools are not implemented yet. * src/solver-lp.c: New file for linear programming methods created. * src/sheet.h: Added parameters for the Solver tool. * src/fn-stat.c (gnumeric_correl): Bug fixed. If the covariance is zero the correlation coefficient should also be zero. Thanks for Vladimir for pointing this one out. 1999-04-07 Miguel de Icaza * src/xml-io.c (xmlGetCoordinates): Include fix from Richard Hult: Seemed to be a cut and paste error. * src/cell.c (cell_destroy): From Morten Welinder: destroy the cell->value only if it does exist. * src/file.c (dialog_query_load_file): Set the accepted value to false initially. Thanks for Morten for pointing this one out. 1999-04-06 Zbigniew Chyla * src/workbook.c (workbook_new): Use the translated version of the function to display 1999-04-06 Miguel de Icaza * src/workbook.c: Enable the function wizard only if the --debug flag was passed. * src/dialog-function-wizard.c, src/dialog-function-select.c: Adapt to the rest of Gnumeric coding style. Use a different way of creating the GUI and controlling the interactions. * src/func.c, src/func.h (function_iterate_do_value): Use my indentation and coding style here. * src/dialog-cell-format.c (render_formated_version): Handle the case where the value might be NULL. * src/xml-io.c (createXmlSheet): New function. Used in an initial pass over the XML file to load all of the Sheets defined there. (readXmlWorkbook): Now this does two passes at loading the sheet: the first pass creates the sheets, the second pass actually loads the contents. 1999-04-06 Michael Meeks * src/workbook.c (workbook_new): More sensible default size. * src/sheet.c (sheet_row_set_height): use sheet_row_new() instead of sheet_duplicate_colrow(), as we get duff span data otherwise ( not calling row_init_span ) (sheet_col_set_width): Re-order, presumably fixing bug, and as for set_height. 1999-04-06 Miguel de Icaza * src/xml-io.c (createXmlSheet): New function. Used in an initial pass over the XML file to load all of the Sheets defined there. (readXmlWorkbook): Now this does two passes at loading the sheet: the first pass creates the sheets, the second pass actually loads the contents. 1999-04-06 Michael Meeks * src/func.c (tokenised_help_new): Improved algorithem. (functions_init): Made descriptions more verbose. * src/workbook.c (wizard_input): Cleaned to use local entry instead of specific wb->ea_input. * src/dialog-function-wizard.c (function_type_input): Update types, add recursive function button. (function_input): Created. (arg_data_list_new): Added wb to ARG_DATA, needed for function_input. Added default code for multi-arg functions. Deals with no-argument functions properly, Fix silly args=NULL g_free(args) bug. (dialog_function_wizard): Special 'no-arguments' quick case. * src/fn-math.c (gnumeric_rand): Added RAND function. 1999-04-05 Morten Welinder * src/cell.c (cell_set_rendered_text): Fix for circular references. 1999-04-05 Miguel de Icaza * src/about.c (dialog_about): Do not make the about box modal. 1999-04-05 Michael Meeks * src/func.c (tokenised_help_new, tokenised_help_destroy), (tokenised_help_find_token): Implemented to assist searching for tokens. * src/func.h: Inserted TOKENISED_HELP struct, and prototypes. 1999-04-04 Michael Meeks * src/dialog_function_wizard.c: Created * src/workbook.c (workbook_setup_edit_area): Add Wizard button. * src/dialogs.h: Add dialog_function_wizard * src/func.c (functions_init): Added descriptions. Init categories array. (get_function_categories): Returns array of categories. (install_symbols): Add description argument. * src/func.h: Updated prototypes altered, add get_function_categories and struct FUNCTION_CATEGORY. * plugins/guile/plugin.c (init_plugin): Update install_symbols. * plugins/sample/plugin-sample.c (init_plugin): Ditto. 1999-04-03 Michael Meeks * src/sheet.c (sheet_cell_remove_from_hash): Now checks return value of g_hash_table_lookup_extended, before freeing a random pointer if its not there. * src/cellspan.c (cell_unregister_span): Check another pointer. * src/cell.c (cell_set_formula): Default error_msg ! 1999-04-03 Michael Meeks * src/sheet.c (sheet_cell_remove_from_hash): Now checks return value of g_hash_table_lookup_extended, before freeing a random pointer if its not there. * src/cellspan.c (cell_unregister_span): Check another pointer. * src/cell.c (cell_set_formula): Default error_msg ! 1999-04-02 Michael Meeks * src/fn-sheet.c (gnumeric_if): Fix to allow variable arguments, updated help & struct to comply, removed possible memory leak. ( Luke 17:3,4 ) 1999-04-01 Michael Meeks * src/workbook.c (sheet_action_delete_sheet): Fix docs. 1999-03-31 Morten Welinder * src/fn-stat.c (phi): new internal function. (gnumeric_normdist): Implemented using phi instead of the built-in table. 1999-03-31 Michael Meeks * src/dialog-cell-sort.c (dialog_cell_sort): Added multiple clause support, and cleaned UI. (add_clause, del_clause): Added. 1999-03-30 Michael Meeks * src/dialog-cell-sort.c (dialog_cell_sort): Fix possible problem with entire column selection. Need some function to determine largest used cell range. 1999-03-31 Miguel de Icaza * src/about.c (dialog_about): Fixed. Patch from Takashi Matsuda 1999-03-30 Miguel de Icaza * src/fn-financial.c (gnumeric_dollarfr): Use floor, not floorf, as I cannot find documentation on this on my system. * src/fn-math.c (gnumeric_ceiling): Use ceil, not ceilf. I cannot find documentation on this on my system 1998-11-12 Morten Welinder * src/fn-stat.c (gnumeric_variance): More precise method of computing the variance. 1999-03-30 Michael Meeks * src/sheet.c (sheet_selection_first_range): This returns the co-ordinates of the first range, and a flag as to whether the selection is simply one range. This keeps things simple for sort. * src/utils.c (col_from_name): Created. * src/utils.h: Added prototype. * src/dialog-cell-sort.c: Created * src/workbook.c (workbook_menu_format): Added 'Sort'. (sort_cells_cmd): Created. * src/dialogs.h: Added dialog_cell_sort. 1999-03-30 Michael Meeks * src/fn-lookup.c (gnumeric_vlookup, gnumeric_hlookup): Removed check for same sheets in each cell reference, in intersheet references only a->sheet points to the other sheet. * src/func.c (function_iterate_do_value): Change CELLRANGE's sheet reference to cell_range.cell_a.sheet, since could be an inter-sheet reference. This fixes: Sum(Sheet1!A1:B3) * src/fn-eng.c: Cleaned function documentation. * docs/C/writing-functions.smgl: Updated for option function arguments. * src/fn-math.c (gnumeric_mod): Implemented. 1999-03-30 Miguel de Icaza * src/expr.c (eval_expr): Fix from Ian Campbell for fixing the subtraction problem. 1999-03-28 Jukka-Pekka Iivonen * src/fn-stat.c: Added large, median, pearson, and small. 1999-03-28 Michael Meeks * src/parser.y (yylex): Added digits count to stop overflow of integers above 9 digits. 1999-03-27 Michael Meeks * src/sheet.c (fail_if_found): Renamed to (fail_if_not_selected): Added check for selection (sheet_is_region_empty): Renamed to (sheet_is_region_empty_or_selected): Better described new function. * src/item-cursor.c (item_cursor_target_region_ok): Uses sheet_is_region_empty_or_selected. 1999-03-27 Michael Meeks * src/expr.c (eval_funcall): Add vital 'break' statement :-) 1999-03-27 Michael Meeks * src/eval.c (cell_eval): Set default value of error_msg so cell doesn't get null text on g_return_val_if_fail (condition, NULL) ; * src/sheet.c (sheet_update_auto_expr): Internationalized ERROR string. * src/fn-lookup.c (gnumeric_column, gnumeric_columns) (gnumeric_row, gnumeric_rows): Hacked; best can do for now. 1999-03-26 Michael Meeks * src/fn-eng.c (gnumeric_delta): Fix memory leak (gnumeric_gestep): Cleaned to better arg. model (bin/oct/dec/hex2...): Cleaned similarly * src/fn-stat.c (gnumeric_poisson): Cleaned * src/fn-string.c (string_and_optional_int): Removed. (gnumeric_left, gnumeric_right, gnumeric_find), (gnumeric_fixed, gnumeric_dollar, gnumeric_substitute): Updated to optional argument types. (gnumeric_clean): Moved from fn-misc.c * src/fn-misc.c (gnumeric_clean): Moved to fn-string.c * src/expr.c (cell_ref_make_absolute): Makes a CellRef absolute. (eval_funcall): Added range token 'r' for lookup functions, makes reference absolute so can be used downstream without trouble. * src/expr.h: Added range comments * src/fn-lookup.c: Created (lookup_simliar, gnumeric_vlookup): Implements VLOOKUP. (gnumeric_hlookup): Implements HLOOKUP. 1999-03-25 Jukka-Pekka Iivonen * src/fn-financial.c: dollarde, dollarfr, and npv added. * src/fn-stat.c: correl, covar, mode, negbinomdist, rank, and trimmean added. 1999-03-25 Michael Meeks * src/expr.c (eval_funcall): Updated to add new optional argument token. * src/expr.h: Comments to explain above. * src/fn-eng.c (gnumeric_erf, gnumeric_delta): Drastic clean to use new optional token. 1999-03-23 Jukka-Pekka Iivonen * src/fn-math.c: ceiling added. * src/fn-stat.c: fisherinv, normsdist, and lognormdist added. * AUTHORS, src/about.c: added me. Tue Mar 23 14:00:37 CET 1999 Daniel Veillard * src/xml-io.c : solved the problem of saving cells with < or & 1999-03-21 Jukka-Pekka Iivonen * src/fn-stat.c: avedev, confidence, critbinom, devsq, fisher, kurt, normdist, permut, skew, standardize, and weibull added. * src/fn-math.c, src/func.h: gnumeric_average and fact made public (used in src/fn-stat.c). 1999-03-17 Vladimir Vuksan * src/fn-financial.c: Added new functions gnumeric_ipmt, gnumeric_ppmt, gnumeric_duration. 1999-03-18 Jukka-Pekka Iivonen * src/fn-math.c: combin added. * src/fn-stat.c: binomdist, harmean, and hypgeomdist added. 1999-03-18 Michael Meeks * src/fn-eng.c (val_to_base): Minor fixes 1999-03-18 Sean Atkinson * notes: typos * src/expr.c (value_string): cleaned to use g_strdup_printf * src/expr.h: typo * src/fn-string.c (gnumeric_mid): fixed internationalized various strings, typos (subs_string_new, subs_string_append_n, subs_string_free): added to speed gnumeric_substitute (gnumeric_concatenate, gnumeric_rept, gnumeric_find, gnumeric_fixed) (gnumeric_proper, gnumeric_replace, gnumeric_t, gnumeric_value) (gnumeric_substitute, gnumeric_dollar): implemented. 1999-03-16 Vladimir Vuksan * src/fn-financial.c: More financial functions: gnumeric_nominal, gnumeric_pv, gnumeric_fv, gnumeric_pmt. 1999-03-16 Miguel de Icaza * src/workbook.c: Change from active voice to passive voice in the help messages for "New". Thanks to Morten for pointing this out. 2 1999-03-14 Miguel de Icaza * src/fn-math.c (callback_function_sum): Detects integer over/under flow. * src/expr.c (eval_expr): Add integer overflow code for addition and substraction. * src/cell.c (cell_set_format): Call cell_render_value and cell_queue_redraw calls here. * src/expr.c (bigger_prec): When decoding left-to-right apply parentheses if the two priorities are equal. 1999-03-13 Richard Hult * src/xml-io.c (xmlGetGnomeCanvasPoints): test against the value returned by xmlGetValue, not the GnomeCanvasPoints value. 1999-03-13 Michael Meeks * src/fn-eng.c (val_to_base, val_to_base_place), (bin/oct/dec/hex 2 bin/oct/dec/hex): Implemented - pending fixes to number storage. 1999-03-13 Michael Meeks * src/fn-eng.c (gnumeric_delta, gnumeric_sqrtpi), (gnumeric_gestep): Implemented * src/fn-math.c (sqrt): Implemented. 1999-03-13 Michael Meeks * src/fn-eng.c: Created (gnumeric_erf, gnumeric_erfc, gnumeric_bessely) (gnumeric_besselj): Implemented (gnumeric_bin2dec): Moved from fn-math.c * src/fn-math.c (gnumeric_bin2dec): Moved to fn-eng * src/func.c (functions_init): Added eng_functions. * src/fn-stat.c: Cleaned functions help. * src/Makefile.am: Added fn-eng.c 1999-03-11 Miguel de Icaza * src/clipboard.c (sheet_paste_selection): New routine. Abstracts the paste operation. (clipboard_paste_region): Now it uses a clipboard with the active X selection instead of defaulting to "request clipboard from X" (this is only for inter-workbook copy-paste). * src/sheet.c (find_workbook_with_clipboard): Tries to find a workbook with clipboard information. Probably the clipboard should be global to all Gnumeric. * src/render-ascii.c (cell_region_render_ascii): Free the information after we have used it, not before. * src/expr.c (eval_expr): Handle new-born recursive references. 1999-03-11 Michael Meeks * src/fn-math.c (gnumeric_power): Implemented. * src/fn-stat.c (gnumeric_poisson, gnumeric_gammaln): Implemented. 1999-03-11 Michael Meeks * src/fn-stat.c (gnumeric_expondist, gnumeric_geomean): Implemented. 1999-03-10 Vladimir Vuksan * src/fn-financial.c: New file. (gnumeric_effect, gnumeric_sln, gnumeric_syd): New functions. * src/func.c (functions_init): Added financial functions. * src/func.h: Added extern. 1999-03-10 Michael Meeks * src/fn-stat.c: Created. (gnumeric_stdev, gnumeric_stdevp, gnumeric_var, gnumeric_varp): Created * src/func.c (functions_init): added stat_functions * src/func.h: Added extern stat_functions. 1999-03-08 Miguel de Icaza * src/fn-misc.c (gnumeric_clean): Add check here: only loop until the end of the string. * src/sheet.c (sheet_cell_foreach_range): Revert the arguments if they are in a different order. 1999-03-08 Takashi Matsuda * plugins: new text plugin. Add new plugin TXT for simple text inport/export tab separated text. multiple sheet in a workbook is separated by '\f' character. If first line of each sheet is not include tab, then that line is interpreted as sheet name. * src/gnumeric-sheet.c: Add new mean for hard-coded keyboard short cut CTRL-Return. Because ItemEdit does not support XIM, I must click the entry whenever I want to input janapese character. If user does not edit the cell, this key combination switchs a keyboard focus to entry . * Replace gdk_font_load() with gdk_fontset_load() src/style.c gdk_font_load() makes impossible to show international string. * src/clipboard.h 'copy by value' was not possible because of miss-definition of PASTE_* enume. * src/file.c: gnumeric_notice was called with wrong arguments. 1999-03-07 Michael Meeks * src/cell.c (cell_set_format_from_style): Removed sluggish re-drawing code: unnecessary. 1999-03-05 Michael Meeks * src/cell.c (cell_set_color_from_style): Implemented. 1999-03-03 Michael Meeks * plugins/excel/ms-formula.c (parse_data_new): Trap null pointers on entry, ( coming from biff_get_text ). (ms_excel_parse_formula): Removed nasty static buffers. 1999-02-23 Bruno Unna * src/dialog-cell-format.c (create_background_radio): Activated the patterned background control (although in my machine the boxes are all black) and added a radio button to let the user do nothing with backgrounds (analogous to the one in foreground section). * src/dialog-cell-format.c (apply_coloring_format): Now this functions takes into account the changes in create_background_radio, that is, if the user decides not to change the background, the background will not be changed. Also, assigned default values to some variables, just to avoid an annoying warning. * src/dialog-cell-format.c (create_coloring_page): If there are different backgrounds in the range, select by default the "no change" radio button for the background. 1999-02-23 Miguel de Icaza * src/cell.c (cell_draw): If the cell has a render_color (provided by the format specification), use that for the foreground. 1999-02-22 Miguel de Icaza * src/file.c (workbook_save_as): Append the extension of the default format if no colon is specified 1999-02-22 Tim Mooney * plugins/guile/plugin.c (func_scm_apply): Initialization of structure is done in the function body, rather thatn when it is declared. This is necessary because struct initializer must be determinable at compile time, and those aren't. * src/expr.c (eval_expr): Add at least one statement to the default: handler in the case. * src/fn-math.c: provide a break for default handlers. * src/item-edit.c (entry_event): ditto * src/sheet-autofill.c (fill_item_destroy): ditto. * src/dialog-cell-format.c (create_number_format_page): Initialize in the body, like above. 1999-02-22 Miguel de Icaza * plugins/guile/plugin.c (func_scm_apply): Initialize the cell_ref.sheet to NULL. 1999-02-22 Miguel de Icaza * src/sheet.c (sheet_cell_remove_internal): Queue recalcs for cells that depend on cells that are being destroyed. (clear_cell_content): Added a call to workbook_recalc (sheet_clear_region_content): same. 1999-02-21 Michael Meeks * plugins/excel/ms-formula.c FORMULA_PTG_EXP: Fixed several bugs. * plugins/excel/ms-excel.c (ms_excel_set_cell_font, biff_font_data_get_style_font): Body of the former moved to the latter, loop invariant code removed for big speedup. (ms_excel_set_cell_xf): Burdern of border color stuff moved to (ms_excel_palette_get): New routine to cache and create StyleColor records as needed. (ms_excel_sheet_insert): Fixed so no NULL pointers can escape into cell_set_text. (ms_excelReadWorkbook): Removed BIFF Usage chart, its slow. (biff_nasty_font_check_function): Sorts out font sillyness. (biff_xf_data_new): Added cached style_format pointer (biff_xf_data_destroy): unref style_format if allocated. * src/cell.c (cell_set_format_from_style): Implemented. 1999-02-19 Raja R Harinath * doc/C/Makefile.am (install-data-local): Use $(mkinstalldirs) not $(topsrcdir)/mkinstalldirs. * src/Makefile.am: Use $(GNOME_CONFIG) instead of `gnome-config' to run the gnome-config script. (BUILT_SOURCES): Swap with GNUMERIC_CORBA_GENERATED to be conceptually clean. 1999-02-19 Miguel de Icaza * src/fn-misc.c (gnumeric_min): Implement ISERROR. * src/clipboard.c (paste_cell): Do not render the value if the result is an error. * src/cell.c (cell_copy): Do not copy the value of a cell when the value is NULL (due to the cell having an error). * src/expr.c (eval_expr): Evaluate binary operations in parts to keep the correct error message on an operation if possible. (eval_expr): Propagate errors. * src/item-edit.c (item_edit_draw): Sync the before-cursor and after-cursor Y-display text cordinate. * src/expr.c (eval_funcall): Add type checking for the simple functions. * doc/C/Makefile.am (install-data-local): use topsrcdir here (fix from Ian Campbell * src/fn-math.c (gnumeric_not): Implement NOT. * src/number-match.c (format_create_regexp): Allow upper case format codes. * src/format.c: ditto. 1999-02-18 Michael Meeks * plugins/excel/ms-formula.c (ms_excel_parse_formula): case FORMULA_PTG_ATTR: Added 'Optimised SUM' functionality, Generaly made output less verbose. * plugins/excel/ms-excel.c: BIFF_DBCELL, ignore it, its not interesting. (ms_excel_set_cell_xf, biff_format_data_lookup, biff_format_data_destroy, ms_excel_workbook_new, ms_excel_workbook_destroy): Implemented formatting. 1999-02-17 Michael Meeks * plugins/excel/ms-excel.c (biff_get_rk): moved RK number extraction into function. Added MULRK support: the lost numbers arrive ! 1999-02-17 Miguel de Icaza * src/fn-math.c (gnumeric_trunc): Implement TRUNC. * src/func.c (function_iterate_argument_values): Do not evaluate a subexpression if the previous expression failed due to an error. Basically: add a check to the eval return value. I took this oportunity to check all the source and this was the only buggy spot. 1999-02-16 Michael Meeks * plugins/excel/ms-excel.c: Fixed many bugs in my understanding of hash table functions. Added rudimentary NAME stuff. made error lookup global. Fixed up Header / Footer functionality. (ms_excel_sheet_new, ms_excel_sheet_insert, ms_excel_read_sheet): Added 'blank' field to excel_sheets, * plugins/excel/ms-formula.c: Added puzzling PTG_NAME stuff, this is really wierd. PTG_ERR added. 1999-02-16 Miguel de Icaza * src/workbook.c (change_auto_expr_menu): OOps I got too excited here using my helper routine: Now we do not destroy this helpful menu. * src/widget-editable-label.c (editable_label_set_text): Bug fix: sometimes this code is invoked with its argument being el->text. 1999-02-15 Miguel de Icaza * src/workbook.c (workbook_new): Make a local copy of the toolbar, as we use this to update the radio buttons. (workbook_do_destroy): Free the toolbar. (workbook_feedback_set): Use the per-workbook toolbar here. 1999-02-14 Michael Meeks * plugins/excel/ms-formula.c: Inserted a whole scad of math functions into translation table. (parse_list_to_equation): g_strdupped return values. FORMULA_PTG_STR: Updated old and broken code. * src/about.c (dialog_about): Added Sean. 1999-02-13 Bruno Unna * src/dialog-cell-format.c (create_foreground_radio): Added a radio button to let the users 'no change' the text colour, useful when there is a range selected with differently colored cells and it is desired to change the background of them without touching the foreground. * src/dialog-cell-format.c (create_coloring_page): When there are different foreground colours in the selected cells, the default selection is 'no change'. * src/dialog-cell-format.c (apply_coloring_format): If there is no need to make changes to the foreground color of the cells, avoid doing them. 1999-02-12 Miguel de Icaza * src/item-cursor.c (item_cursor_target_region_ok): Warn the user if he overwrites something accidentally by dropping cells in the target location. * src/sheet.c (sheet_is_region_empty): New function. 1999-02-12 Michael Meeks * plugins/excel/ms-excel.c (biff_get_global_string): Drasticly simplified, accelerated and in-lined out. (biff_get_text): Fixed using unicode spec, various updates to calls to it, fixing offsets. Removed lots of debug output to speedup 1999-02-10 Sean Atkinson * src/fn-math.c (callback_function_sum): enhanced warning for unknown value->type. 1999-02-12 Frederic Devernay * plugins/perl/perl.c: Handle the #define dirty in perl-thread. 1999-02-12 Bruno Unna * src/cell.c (cell_draw): Now the function draws the cell using the cell background color setting. Although it does the job, I guess there must be a better way to do it. Thanks to Michael for the hint. * src/item-grid.c (item_grid_draw_cell): Commented out the lines involved with patterns display in the cell, for that code is not ready yet. * src/dialog-cell-format.c (create_coloring_page): Reactivated the background selection panel of the coloring page. * src/dialog-cell-format.c (create_background_radio): Commented out the addition of the pattern selection for a cell. 1999-02-10 Miguel de Icaza * src/workbook.c (workbook_detach_sheet): Be less forgiving as to removing sheets with pending references. (sheet_action_delete_sheet): Add a test for dependencies when removing a sheet (workbook_can_detach_sheet): New function. * src/cell.c (cell_relocate): When relocating a cell with a formula, always mark it as changed. We were doing that before only for the case where the location had changed, but we use cell_relocate in other cases as well. * src/fn-string.c (gnumeric_lower, gnumeric_upper): These functions were wrong. They were never incrementing the pointer and they were releasing the wrong pointer. * src/clipboard.c (paste_cell): When pasting a cell, mark the contents as modified. * src/file.c (file_saver_is_default_format): Make sure the saver is always set. 1999-02-10 Michael Meeks * plugins/excel/ms-excel.c (ms_excel_read_cell): BOOLERR booleans hard-translated to 1, 0: not a good solution to problems with TRUE. * src/fn-string.c (gnumeric_upper, gnumeric_lower): Add increment 1999-02-09 Miguel de Icaza * src/parser.y: Apparently string concatenation operator in Excel has the lower priority. * src/workbook.c (workbook_detach_sheet): New function used to detach a sheet from a workbook. (sheet_menu_label_run): New routine. Invoked on button-3 on the sheet label. * src/gnumeric-util.c (gnumeric_auto_kill_popup_menu_on_hide): New routine to deallocate menus when they go to unshown state 1999-02-09 Michael Meeks * plugins/excel/ms-excel.c (ms_excel_sheet_new, ms_excel_workbook_attach, biff_boundsheet_data_new): Major sheet allocation re-organisation, hash boundsheet data. (ms_excel_sheet_set_version, ms_excel_sheet_set_index, ms_excel_workbook_get_sheet): re-hashed API * plugins/excel/ms-formula.c: PTG_MISSARG implemented 1999-02-08 Sean Atkinson * plugins/excel/ms-excel-biff.h, ms-excel.c: added BIFF_EXTERNCOUNT * plugins/excel/ms-excel.c (ms_excel_read_sheet): stubbed BIFF_EXTERNSHEET, stubbed SUPBOOK (biff_get_externsheet_name): implemented inter-sheet references * plugins/excel/ms-formula.ch: added FORMULA_PTG_CONCAT (ms_excel_parse_formula): implemented FORMULA_PTG_REF_3D 1999-02-07 Michael Meeks * plugins/excel/ms-formula.c (ms_excel_parse_formula): FORMULA_PTG_ATTR stubs: can ignore most of AttrSpace. 1999-02-08 Miguel de Icaza * src/cell.c (cell_draw): Make the clip region one pixel bigger to account for the offset. (cell_draw): Do not add one to text_base. * src/item-edit.c (item_edit_draw): Take into account the margin_b. 1999-02-07 Michael Meeks * plugins/excel/ms-formula.c: Fixed memory leaks * plugins/excel/ms-excel.c: Fixed several memory leaks 1999-02-07 Sean Atkinson * plugins/excel/ms-formula.ch: added FORMULA_PTG_NUM 1999-02-07 Miguel de Icaza * src/cell.c (cell_set_text_simple): Allow a single "=" to represent a string. 1999-02-06 Miguel de Icaza * src/gnumeric-util.c (gnumeric_notice): Now we take a Workbook argument to bind the dialog boxes properly to the main window. We use gnome_messagebox now to report errors. We now take a type parameter for the message box type. * plugins/ff-csv/csv-io.c: Use gnumeric_error * src/workbook.c (wb_input_finished): Call sheet_set_current_value instead of the cancel pending input routine. * Moved src/csv-io.[ch] to the plugins/ff-csv directory and converted them to 1999-02-06 Vincent Renardias * src/csv-io.h src/csv-io.c: Added code to load csv files. 1999-02-06 Miguel de Icaza * src/file.c (fill_save_menu): Creates an option menu with the file format to save on. (workbook_save_as): Use the saver selected by the user. (saver_activate): Keep track of the current file save format, set as default. gnumeric_file_savers, gnumeric_file_openers: made static. * src/sheet.c (sheet_destroy_styles): Release the proper style, I was releasing a different structure. 1999-02-06 Michael Meeks * plugins/excel/ms-formula.c: Cut out lots of debug in working cases * plugins/excel/ms-excel.c: Implemented a hash table for fast font lookups, removed and simplified dead font code. * plugins/excel/ms-excel.c (ms_excel_set_font): Bold if boldness greater or equal to threshold, not just equal. * plugins/excel/ms-excel.c (ms_excel_read_cell): Added support for BIFF_STRING records, and re-organised switch statement. Added BIFF_BOOLERR support. 1999-02-06 Changwoo Ryu * gnumeric.desktop: Added Korean translations. 1999-02-04 Michael Meeks * plugins/excel/ms-excel.ch: Major overhaul of how XF styles are looked up, sparation of Cell / style XF records. Hash table implemented for lage speedup and code simplification. 1999-02-04 Michael Meeks * plugins/excel/ms-biff.h: Added a biff_getdouble function for G_BIG_ENDIAN machines, since I don't have one... [begs forgiveness] 1999-02-03 Sean Atkinson * plugins/excel/ms-formula.c (ms_excel_parse_formula): FORMULA_PTG_INT and FORMULA_PTG_BOOL added * plugins/excel/ms-formula.c: Implemented remaining binary operators and unary operators +,-,% interpolated operator precedences. formula_func_data[] : added AND, OR, V/H LOOKUP functions 1999-02-03 Miguel de Icaza * src/workbook.c (workbook_configure_minimized_pixmap): Provide an icon. Note that I could not get this to work on fvwm2 though. I will wait for other people to try it. 1999-02-01 Jaka Mocnik * src/widget-editable-label.c (el_realize): new function. set the font for text_item here to match the widget's style. (editable_label_set_text): don't bother to set the font when creating the text_item, as the style is not set properly yet. 1999-01-27 Miguel de Icaza * src/fn-misc.c: Added documentation for the functions in this file. 1999-01-26 Bruno Unna * src/dialog-cell-format.c (create_coloring_page): Now, the method to find out whether a cell has been colored or not is to compare the RGB values to zero. Commented out the attachment of background_radio_list because the functionality is not ready yet. * src/dialog-cell-format.c (apply_coloring_format): Added support for background solid coloring. Howver, changes to the style of the cells in this regard have no effect in the display. The reason for this is unknown to me as of now. 1999-01-25 Miguel de Icaza * src/sheet-autofill.c (sheet_autofill_dir): Add a call to sheet_cell_remove before calling cell_destroy. 1999-01-23 Bruno Unna * src/dialog-cell-format.c: Reactivated the 'Coloring' page in struct array cell_format_pages. * src/dialog-cell-format.c (create_coloring_page): Lots of changes, practically a full rewrite. One problem is that cells are thrown into this world with the flag STYLE_FORE_COLOR of their style set, which causes a lack of synchronization with what is expressed in the global variable foreground_radio_list. * src/dialog-cell-format.c (apply_coloring_format): By the moment being, deactivated the call of function cell_set_pattern, along with the STYLE_PATTERN bit flag of style->valid_flags. I will concentrate in fg/bg coloring of the cell. 1999-01-19 Miguel de Icaza * src/widget-editable-label.c (el_init): Set the scroll region to something very big. This fixes the label-sliding problem. Thanks to Federico for his quick debugging eye. (el_button_press_event): WOW. I am amazed. I now gtk grab add and if I receive a widget->window different than the canvas, I drop the grab and stop editing. 1999-01-19 Francisco Bustamante * src/workbook.c (workbook_delete_event) Return TRUE when the workbook should not be destroyed. (i.e. the user presses cancel) 1999-01-19 Jeff Garzik * src/dialog-cell-format.c, src/gnumeric-util.c, src/sheet-view.c, src/workbook.c: Renamed deprecated Gtk+ functions. 1999-01-18 Bruno Unna * src/dialog-cell-format.c: Now the terminator element of the cell_format_pages has three null elements (as stated in the struct definition), instead of two. Fixed up some comments. Started to pursue the bug that causes that when adding the "Coloring" tab the program generates a Gdk-ERROR. Modifications not commited. 1999-01-17 Miguel de Icaza * src/gnumeric-sheet.c (gnumeric_sheet_can_move_cursor): Do not enable item editing if sheet is not in edit mode. 1999-01-13 Miguel de Icaza * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet): Mark sheet as being edited. 1999-01-12 Miguel de Icaza * src/file.c (dialog_query_load_file): Set the window modal. (workbook_save_as): ditto. 1999-01-10 Miguel de Icaza * src/format.c (format_value): Use 0.0########## instead. Looks saner. 1999-01-10 Miguel de Icaza * src/workbook.c (change_auto_expr_menu): Use the event->button field to get the popup menu to behave correctly. (workbook_setup_auto_calc): Put the information display inside a GtkFrame. * src/item-bar.c (set_cursor): This routine can be invoked before we are realized. * src/workbook.c (sheet_label_button_press): We need to do the page flipping ourselves, as the GtkNotebook wont take events if they are not for a window it knows about. * src/widget-editable-label.c (el_button_press_event): Forward events to parent. * src/parser.y: New non-terminal "cellref". Make this non-terminal include CELLREF and SHEETREF!CELLREF constructions. * src/expr.c: Changed the whole module according to the dropping of VALUE_CELLREF. * src/expr.h: VALUE_CELLREF did not make much sense. Better add to the ExprTree union a CellRef field specifically for OPER_VAR nodes. 1999-01-10 Michael Meeks * plugins/excel/ms-excel.c (ms_excelReadWorkbook): Only believe the first BOF with regard to BIFF version number, other BOFs seem to lie. 1999-01-10 Nick Lamb * plugins/excel/ms-excel.h: Added global string table to EXCEL_WORKBOOK * plugins/excel/ms-excel.c (ms_excel_workbook_new): Setup new fields, (ms_excel_read_cell): case BIFF_STRING_REF, (biff_get_global_string): Retrieves a global string from the EXCEL_WORKBOOK table. (ms_excel_read_cell): case BIFF_STRING_REF, (ms_excelReadWorkbook): case BIFF_STRINGS reads the global table. 1999-01-10 Michael Meeks * plugins/excel/ms-excel.c: Rehash of border code to use neater centralised enumerations / types. (get_style_color_from_idx): Implemented. * src/style.h: Major expansion of 'StyleBorderType', massive simplification of StyleBorder to use directional [ StyleSide ] arrays instead of lots of unique member names. * src/style.c (border_equal, border_hash, style_border_new, style_border_new_plain): Major overhaul and shrink to fit new structure. * src/xml-io.c: Updated BorderTypes array to give textual names to the new border types, also created an array of text names for StyleSides. * src/xml-io.c (readXmlStyleBorder,writeXmlStyleBorder): Use new arrays and struct. * src/cell.c, src/cell.h: Added cell_set_border. 1999-01-10 Thomas Meeks * plugins/excel/ms-excel.c (ms_excel_read_cell): added header and footer Biff code. * plugins/excel/ms-excel-biff.h: the defines. 1999-01-10 Changwoo Ryu * src/workbook.c (cb_sheet_check_dirty): Use g_strdup_printf instead of g_strconcat. More easy to translate the string. 1999-01-10 Miguel de Icaza * src/workbook.c (wb_input_finished): Use sheet_accept_pending_input instead of sheet_set_current_value. (workbook_setup_auto_calc): Stick the information display inside the status bar. * src/eval.c (add_value_deps): Reorganization. Hanlde VALUE_CELLREF here and make OPER_VAR and OPER_CONSTANT call add_value_deps. * src/expr.c (do_expr_tree_relocate, expr_tree_relocate): New routine that returns an ExprTree relocated. (value_copy_to): Handle the VALUE_CELLREF type. * src/expr.h: define VALUE_CELLREF * src/parser.y (yylex): Type fix. When creating values of type VALUE_CELLREF, set this value. 1999-01-09 Miguel de Icaza * src/sheet.c (sheet_move_column): Update to new cell_relocate semantics. (sheet_shift_row): ditto. (sheet_insert_row): ditto. (sheet_delete_row): ditto. (sheet_shift_col): ditto. * src/clipboard.c: Update to new cell_relocate semantics. Remove the old GTK compatibility code. * src/cell.c (cell_relocate): We do not need to reference this formula. This routine now takes delta-x and delta-y values for the relocation, instead of absolute cordinates. To implement the proper semantics of cell movement that other spreadsheets implement 1999-01-09 Federico Mena Quintero * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet): Return the result of gtk_widget_event() if we get to the switch's default case. (gnumeric_sheet_key): Return FALSE in the default case, since we did nothing there. * src/workbook.c (open_cmd): If the file-open dialog was cancelled, it will return NULL. Take this into account. 1999-01-08 Miguel de Icaza * src/workbook.c (workbook_setup_status_area): We do not use the progress bar feature currently. 1999-01-07 Nat Friedman * src/workbook.c: Added hints to the rest of the custom menu items. 1999-01-07 Nat Friedman * src/workbook.c (workbook_new): Install the menu hints. (workbook_setup_status_area): Create the GnomeAppBar. Added hints to most of the custom menu items. * src/sheet.h: Added the appbar field to the Workbook structure. 1999-01-07 Nat Friedman * src/workbook.c: Use GNOMEUIINFO_MENU_ABOUT_ITEM and the new GNOMEUIINFO_MENU trees. 1999-01-07 Nat Friedman * src/workbook.c: Pass the menu item description to GNOMEUIINFO_MENU_NEW_ITEM. 1999-01-06 Nat Friedman * src/workbook.c: Use the standard GNOMEUIINFO macros from gnome-app-helper.h. 1999-01-06 Nat Friedman * src/workbook.c: Use the gnome-uidefs.h macros for the accelerators. 1999-01-04 Havoc Pennington * src/fn-date.c (gnumeric_date): Allocate the GDate on the stack, saves some small amount of time. Check user-provided month/day/year for validity before using it. (gnumeric_today): Allocate GDate on the stack. (gnumeric_now): Ditto. 1999-01-04 Miguel de Icaza * src/sheet.c (sheet_rename): New routine. * src/workbook.c (workbook_attach_sheet): Use a EditableLabel for the notebook tab. (workbook_rename_sheet): New routine. * src/widget-editable-label.c: New widget. This is a label that can be edited if you double click on it. This uses the same trick of the gnome-icon-item to provide the editing facilities. 1999-01-03 Miguel de Icaza * src/workbook.c (workbook_setup_status_area): Use the style font, not "fixed". (workbook_setup_status_area): One hack down. Use GTK_ANCHOR_NW to achieve the same effect I had with my previous hack. * src/dialog-cell-comment.c (dialog_cell_comment): New file. Implements the cell comment dialog box. * src/cell.c (cell_relocate): Only call cell_comment_reposition is there is a cell comment bound to this cell. * src/format.c (format_value): No format means "General" format as well. If the value has decimal numbers use "0.00##########" for the formatting instead of 0.00. 1998-01-03 Jeff Garzik * src/number-match.c, src/plugin-manager.c, src/sheet.c: Warning fixes. 1999-01-03 Miguel de Icaza * src/expr.c (do_expr_decode_tree): Add termination NULL to the OPER_NEG operation. * (eval_expr): Add support for non-local cells here. I am impressed how simple this was. * src/parser.y: Add rules for cell references outside of the current sheet. * src/main.c: New option --debug. Turns on the zoom in/zoom out buttons on the main sheet. * src/workbook.c: Include the zoom in/zoom out buttons conditionally. * src/xml-io.c (xmlGetCoordinates): Load using double numbers the information. * src/parser.y (yylex): Allow strings to be specified with "'" characters. 1999-01-01 Miguel de Icaza * src/item-grid.c (item_grid_button_1): When starting a selection of cells during a formula edit, insert the currently clicked cell name. 1998-12-30 Jeff Garzik * plugins/perl/perl.c, src/cell.c, src/expr.c, src/plugin.c, src/sheet-autofill.c, src/sheet.c, src/workbook.c: s/g_copy_strings/g_strconcat/ 1998-12-28 Miguel de Icaza * plugins/excel/boot.c: New file, this holds the probing and load wrapper code for Gnumeric to use as well as the initial format registering code. * src/xml-io.c (xml_probe): New routine, used to probe if a file is a Gnumeric-xml file. * src/file.c (file_format_register_open, file_format_unregister_open, file_format_register_save, file_format_unregister_save): New routines used to register and unregister file formats in Gnumeric. * src/main.c (main): Boot xml and excel formats, since they now need to register themselves with the file.c code * src/cell.h: cell->entered_text is back, now only used for typo correction. Maybe I will use it for saving. * src/fn-string.c (gnumeric_right): Use value_str. (gnumeric_char): same (gnumeric_left): same * src/expr.c (value_str): New function. * src/xml-io.c (writeXmlCell): Use cell_get_content instead of cell_get_text. * src/cell.c (cell_get_content): New function. 1998-12-17 Miguel de Icaza * src/workbook.c: fix bug introduced yesterday. 1998-12-17 Tuomas Kuosmanen * gnumeric.desktop: Added gnumeric program icon * Makefile.am: added the stuff to install the icon - could someone check that I did it correctly? * gnome-gnumeric.png: the icon itself 1998-12-16 Miguel de Icaza * src/workbook.c: Use GNOME stock icons for the stuff that hsa icons on Gnome Stock. * gnumeric.keys.in: New file that defines the mime-type for Gnumeric 1998-12-16 Federico Mena Quintero * src/workbook.c (workbook_setup_status_area): Do not set_usize() on the info item. * src/sheet-view.c (new_canvas_bar): Set the width or height to -1 in set_usize(). * src/gnumeric-sheet.c (gnumeric_sheet_new): Do not set_usize() on the sheet. * src/item-bar.c: Updated for the new canvas item API. * src/item-cursor.c: Likewise. * src/item-edit.c: Likewise. * src/item-grid.c: Likewise. 1998-12-15 Miguel de Icaza * src/workbook.c (workbook_new): Use the new gnomeapp api. * src/gnumeric-sheet.c: Use the new canvas. 1998-12-14 Federico Mena Quintero * src/gnumeric-sheet.c (gnumeric_sheet_new): Use gtk_widget_set_usize() instead of gnome_canvas_set_size(). * src/pattern-selector.c (pattern_selector_new): Likewise. * src/sheet-view.c (new_canvas_bar): Likewise. 1998-12-13 Sebastian Wilhelmi * src/fn-date.c (gnumeric_year_month_day, gnumeric_now, gnumeric_today,gnumeric_date): * src/workbook.c (insert_current_date_cmd): * src/number-match.c (compute_value): Changed to use the glib GDate type instead of the lib_date functions. Fixed off by-one error for some date functions (e.g. =today ()) was one day to early). * src/utils.c, src/utils.h (g_date_serilal, g_date_serial_new): New functions for handling the gnumeric serial of a date. 1998-12-03 Miguel de Icaza * src/item-cursor.c (item_cursor_set_bounds_visibly): Update the cursor position as well. 1998-12-10 Michael Meeks * plugins/excel/ms-excel.c (ms_excel_read_cell): Fixed serious bug in IEE floating point number reading from RK records. * plugins/excel/ms-formula.c (ms_excel_parse_formula): Implemented string expressions in formulae, MS stores numbers like this ! 1998-12-10 Owen Taylor * src/workbook.c (filenames_dropped): Make toplevel windows drop targets for files. 1998-12-09 Michael Meeks * plugins/excel/ms-ole.c: Indented correctly, implemented writes of all file lengths. 1998-12-08 Jaka Mocnik * src/dialog-paste-special.c (dialog_paste_special): changed gnome_dialog_run_modal() to gtk_window_set_modal() and gnome_dialog_run(). 1998-12-06 Michael Meeks * plugins/excel/ms-ole.c: Much trivial bug fixing, API fixups, testing and stabilizing. 1998-12-05 Michael Meeks * plugins/excel/ms-ole.c: Major work on creation of readable macros for accessing obscure fields, removing magic numbers from main code. (ms_ole_create): Created to create new OLE files. * plugins/excel/ms-excel-biff.h: Update comments, and re-arrange. * plugins/excel/ms-biff.h: Commenting fixes 1998-12-04 Federico Mena Quintero * configure.in (ALL_LINGUAS): Added Japanese translation courtesy of Mitsuru Oka . Also updated the .desktop file. 1998-12-02 Miguel de Icaza * src/gnumeric-sheet.c (gnumeric_sheet_set_top_row, gnumeric_sheet_set_top_col): New functions to set the sheet top column and row respectively. (gnumeric_sheet_bar_set_top_row, gnumeric_sheet_bar_set_top_col): Renamed from their old names to reflect their actual action. * src/item-cursor.c (item_cursor_autofill_event): Do not pass negative numbers to item_grid_find_col and item_grid_find_row. * src/item-grid.c (item_grid_find_row, item_grid_find_col): Check for possitive numbers. I think the right fix is to accept negative numbers and find the column even if the number is negative instead of this ugly restriction. 1998-11-30 Miguel de Icaza * src/sheet.c (cellref_name): Add more space. 1998-12-02 Sebastian Wilhelmi * src/Makefile.am: make Gnumeric-impl.c dependend on Gnumeric.h to make it compile the idl-file before compiling Gnumeric-impl.c 1998-11-28 Michael Meeks * plugins/excel/ms-formula.c(ms_excel_parse_formula): Fixed serious memory leaks on return values from cellref_name * plugins/excel/ms-formula.c(getRefV7): Now sets CellRef->sheet properly (getRefV8): same. * plugins/excel/ms-ole.c: Several minor changes, moving separate structures back into the raw datastream with macros. 1998-11-28 Miguel de Icaza * src/gnumeric-util.c (gnumeric_notice): Do not use gnome_dialog_run_modal. * src/dialog-goto-cell.c (dialog_goto_cell): Do not use gnome_dialog_run_modal * src/sheet.c (sheet_mark_clean): New routine to mark a sheet as not modified. * src/workbook.c (workbook_mark_clean): New routine to mark a workbook as not modified. 1998-11-13 Miguel de Icaza * src/sheet-autofill.c (autofill_cell): Simplify by using cell_set_formula_tree * src/expr.c (expr_parse_string): Take a sheet argument (expr_decode_tree): Same * sheet.c (cellref_name): Now takes a sheet argument and decodes the cellref depending on the sheet. * cell.c (CellRef): Now they include the sheet location. 1998-11-28 Michael Meeks * plugins/excel/ms-ole.c, plugins/excel/ms-ole.h: Total re-write of internal interfaces, code streamlined, '?' operators expunged. 1998-11-27 Miguel de Icaza * src/item-grid.c (item_grid_realize): Oops. This was not a bug. gc was actually initialized as being item_grid->grid_gc, it was just not obvious. * src/main.c (gnumeric_main): Fix the prototype. * src/dialog-goto-cell.c (dialog_goto_cell): Revert const from gtk-clist. * src/dialog-cell-format.c (create_number_format_page): Revert const from gtk-clist. * src/dialog-goto-cell.c (dialog_goto_cell): Revert const from gtk-clist. * src/Gnumeric-impl.c: Empty stubs for now. * src/Makefile.am (GNUMERIC_CORBA_SOURCES): Add rules for compiling the CORBA support. * plugins/python/Makefile.am (LIBTOOL): This one needs xlibtool instead of our modified libtool. * plugins/sample/Makefile.am (GNUMERIC_SRC_DIR): Simplified Makefile.am 1998-11-25 Miguel de Icaza * src/item-grid.c (item_grid_realize): Removed bogus calls to invalid gc. 1998-11-24 Federico Mena Quintero * src/item-grid.c (item_grid_unrealize): Unref all the item_grid's GCs. 1998-11-23 Miguel de Icaza * src/dialog-goto-cell.c (dialog_goto_cell): Set the policy on the scrolled window. * src/sheet.h: formula_cell_list *ONLY* exists in the Workbook, not on the Sheet. * src/sheet.c (sheet_cell_formula_link, sheet_cell_formula_unlink): Keep the formula on the Workbook, not on the Sheet. Thanks to Havoc for reporting these bugs. * src/cell.c (cell_set_formula): Use cell_set_rendered_text to propery set the error messages. (cell_get_text): If value is NULL, use the rendered version of the text instead of re-rendering it. * src/dialog-cell-format.c (create_number_format_page): Put the clist inside a scrolled window for the new CList api. * src/dialog-define-names.c (dialog_define_names): ditto. * src/dialog-goto-cell.c (dialog_goto_cell): ditto 1998-11-23 Marin Purgar * src/dialog-cell-format.c: Style general was applied to more than one cell in various cases. 1998-11-18 Bruno Unna * src/style.c: added the default italic font as helvetica-oblique. * src/style.h: added declaration for new global variable gnumeric_default_bold_font * src/gnumeric-util.c: enhanced the robusteness of the function font_get_italic_name. But it's not at a 100%, though. * plugins/excel/ms-excel.c: slight modification to the error tracking mechanism (font stuff in ms_excel_set_cell_font). 1998-11-15 Michael Meeks * plugins/excel/ms-ole.c(ms_ole_directory*): Created new directory API for ole files, such that the excel dependant stuff is now moved out of ms-ole.c into ms-excel.c * plugins/excel/ms-excel.c(find_workbook): Nicer routine using the directory API to find its file * plugins/excel/ms-ole.c(ms_ole_stream_open): Renamed from ~_new * plugins/excel/ms-ole.c: Re-organisation, code clean, many cases added throughout to make NULL pointers less harmful, and allow for turning into a library soon. 1998-11-14 Michael Meeks * plugins/excel/ms-excel.c(ms_excel_set_cell_font): Fixed buffer overflow bug, and secured sprintf. 1998-11-12 Bruno Unna * plugins/excel/ms-excel.c: added support for fount size. * plugins/excel/ms-excel.c: included ctype.h. * plugins/excel/ms-excel.c: initial hacks on font name importing, from windoze to X. 1998-11-12 Miguel de Icaza * src/parser.y: * src/workbook.c (workbook_new): Use case-insenstive routines when creating the hash table. (workbook_sheet_get_free_name): Find an unused name for a sheet. (workbook_sheet_lookup): Looks up a sheet by name in a Workbook. (insert_sheet_cmd): New command to insert a sheet into a workbook. * src/utils.c (gnumeric_strcase_hash, gnumeric_strcase_equal): Routines used for strings hash tables that are not case sensitive. 1998-11-12 Morten Welinder * test-parser.c: Fix to compile with the new API * parser.y: Make the code more maintainable. 1998-11-12 Michael Meeks * plugins/excel/ms-ole.c, plugins/excel/ms-ole.h: Massive changes renamed many functions to conform to a sensible naming convention. Cleaned the interface, and structure names. * plugins/excel/ms-excel-biff.h: Split from ms-biff.h removing all the excel specifics so that the biff & ole stuff can be turned into a library sometime. * src/workbook.c(workbook_read): Updated to new structure names. * plugins/excel/ms-excel.c: Added list of array formulae, as yet unused, possibly unnecessary. * plugins/excel/ms-formula.c: Added support for slightly different array formula BIFF layout. 1998-11-11 Bruno Unna * src/gnumeric-util.c: Added function font_get_italic_name, analogous to font_get_bold_name. * plugins/excel/ms-excel.c: added enhanced support for styles (bold & italic). Included gnumeric-util.h. 1998-11-11 Miguel de Icaza * src/gnumeric-util.c (font_get_italic_name): Missing function. * src/parser.y: Use '^'. 1998-11-11 Mark Probst * plugins/guile: Added guile plug-in. 1998-11-11 Michael Meeks * plugins/excel/ms-biff.h, plugins/excel/ms-excel.c: Removed fatal bug, and accelerated code by testing for DV in MULBLANK case. * plugins/excel/ms-excel.c(ms_excel_set_cell_xf): Out by one indexes causing serious attribute offset grief in fonts. * Rememberance_Day: They went with songs to the battle, they were young, Straight of limb, true of eye, steady and aglow. They were staunch to the end against odds uncounted, They fell with their faces to the foe. They shall grow not old, as we that are left grow old, Age shall not weary them, nor the years condemn. At the going down of the sun, and in the morning, We will remember them. Lest we forget. 1998-11-10 Bruno Unna * plugins/excel/ms-excel.c(ms_excel_set_font): Started implementing font styles properly. * src/gnumeric-util.c(font_get_bold_name, font_get_italic_name): Hacked both so they allow testing of new font code. 1998-11-10 Michael Meeks * plugins/excel/ms-ole.c(create_link_array): Truly brainless one suprised it took so long to surface. 1998-11-10 Miguel de Icaza * src/sheet-view.c (sheet_view_comment_get_points): Scale properly the points to be in window cordinates. * src/sheet.c (sheet_col_set_width): Move comments on column change. * src/cell.c (cell_copy): Duplicated cells get col, row and sheet values set to NULL. 1998-11-05 Miguel de Icaza * src/fn-misc.c: Add ctype.h * src/sheet-view.c (sheet_view_comment_get_points): New utility routine used. (sheet_view_comment_relocate): New function used to relocate a comment canvas item in a cell to its new location. * src/cell.c (cell_relocate): Move the comments with the cell. (cell_realize, cell_unrealize, cell_comment_realize, cell_comment_unrealize): New functions used to create and destroy view-specific cell components (the comments are canvas objects that need to be created on a per-view basis). 1998-11-10 Michael Meeks * plugins/excel/ms-ole.h: Added unsigned to WORD, LONG types. * plugins/excel/ms-formula.c(getRefV7, getRefV8): Fixed bug in relative column retrieval. * plugins/excel/ms-formula.c(ms_excel_parse_formula): Squashed silly op-code bug, and got simple op-codes working. 1998-11-09 Michael Meeks * plugins/excel/ms-formula.c: Re-designed the translation code, abstracted, and implemented AVERAGE, MIN & MAX using StarOffice 4.0 to deduce the standard function numbers. 1998-11-08 Michael Meeks * plugins/excel/ms-formula.c: Major top to bottom changes basic hacked RPN to Infix parsing started in a rather nasty fashion. Much more work needed only 1 ( the SUM ) function supported. * src/cell.c (cell_split_text): Fixed string length malloc bug, out by 1 trashing stack. 1998-11-08 Michael Meeks * src/workbook.c, src/sheet.h, src/main.c (workbook_read): Added generic routine to read a file * plugins/excel/ms-excel.c: Major code overhaul, multiple bug fixes, BLANK, MULBLANK implemented & tested 1998-11-02 Miguel de Icaza * src/cell.c, src/workbook.c, src/sheet-view.c: Finish cell comment display routines. Now we only need the dialog box to insert/edit a cell comment. 1998-10-30 Miguel de Icaza * src/cell.c (cell_set_comment): new implementation. 1998-10-28 Miguel de Icaza * src/fn-date.c (gnumeric_date): Fix longstanding off by one error. (gnumeric_today): ditto (gnumeric_now): ditto. * Prepare for 0.4 release. * configure.in: Add test for new GTK+ selection code. * src/clipboard.c: Make it work with both APIs: the old and the new one. 1998-10-28 Daniel Veillard * src/xml-io.c: now the basic I/O functions should be clean removed all direct references to node->content. 1998-10-28 Miguel de Icaza * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet): Added keypad support. * src/parser.y (dump_tree): Updated to use the new symbol table. 1998-10-27 Miguel de Icaza * src/parser.c (dump_tree): Use extra argument. * src/expr.c (function_call_with_values): Use the extra argument to symbol_lookup * src/func.c (constants_init): Use the extra argument to symbol_install. * src/main.c (main): Invoke global_symbol_init. * src/symbol.h: Symbol routines now take an extra argument; the symboltable they work on. Now the code can have multiple symbol tables (this is required for the cell range name bindings in a per-sheet fashion. 1998-10-25 Miguel de Icaza * src/sheet.c (sheet_set_zoom_factor): Zoom factor should be applied to to the default styles. 1998-10-27 Daniel Veillard * src/xml-io.c: adapted code to the new XML tree format, however to compile you need to update your libxml from the CVS tree too. Not a definite solution I'm thinking about a more general API for XML tree values encoding/decoding. I modified the endoding format but backward compatibility should be maintained. 1998-10-23 Federico Mena Quintero * src/workbook.c: Made the menus consistent with the (unwritten!) UI Guidelines document. 1998-10-18 Tom Dyas * src/clipboard.c: Update to new GTK selection API. 1998-10-14 Miguel de Icaza * src/fn-string.c (gnumeric_right): New file. Implements left/right string functions. 1998-10-13 Miguel de Icaza * src/item-grid.h: Add some missing variables. 1998-10-13 Jakub Jelinek * src/item-grid.c (item_grid_stop_sliding, item_grid_sliding_callback, item_grid_start_sliding): New functions. (item_grid_event): If x or y is out of canvas bounds, do sliding for both cell and formula selection. For button release from formula selection, make cell being edited visible afterwards. (item_grid_button_1): If not extending selection with shift, make cursor cell visible. * src/gnumeric-sheet.c (move_cursor, gnumeric_sheet_key_mode_sheet): Make cursor cell visible. * src/sheet.c (sheet_select_all): Make home visible. (sheet_make_cell_visible): New function. (sheet_cursor_move, sheet_cursor_set): Don't make cursor visible, caller has to do it himself if desired. * src/sheet.h (sheet_make_cell_visible): New prototype. * src/workbook.c (workbook_parse_and_jump): Make cursor cell visible. 1998-10-13 Miguel de Icaza * src/utils.c (col_name): It is amazing the number of times I duplicated this code. I wonder if I took prozac by accident. This should fix the bug reported by Morten Welinder 1998-10-12 Miguel de Icaza * src/sheet-view.c (vertical_scroll_event, horizontal_scroll_event): Set the top column/row from the adjustment as well. * src/gnumeric-sheet.c (gnumeric_sheet_set_top_col, gnumeric_sheet_set_top_row): Export these functions to improve the scrolling behaviour. 1998-10-12 Miguel de Icaza * src/utils.c (cellref_name): Fixed another of column name decoding. I wonder when I will learn. 1998-10-07 Jakub Jelinek * src/sheet.c (sheet_cursor_set): Add base_col and base_row arguments. Move cursor to that location, so that it really reflects base of the selection. * src/sheet.h (sheet_cursor_set): Ditto. * src/clipboard.c (x_selection_received): Callers changed. * src/gnumeric-sheet.c (gnumeric_sheet_set_selection): Ditto. (move_cursor): Ditto. * src/item-cursor.c (item_cursor_autofill_event): Ditto. (item_cursor_init): Fix a typo. 1998-10-08 Miguel de Icaza * src/sheet-object.c (create_object): Rectangles have the same problems Ovals do in terms of Canvas cordinate constraints. (sheet_view_object_realize): same. 1998-10-07 Miguel de Icaza * src/sheet-view.c (sheet_view_col_selection_changed): Make sure the column is allocated (so that the column size change picks up the column during the iteration). (sheet_view_row_selection_changed): Same * src/style.c (font_init): New routine: loads a couple of default fonts to be used in Gnumeric. * src/item-bar.c (bar_draw_cell): Make the SELECTION cells display with a bold font. (item_bar_realize, item_bar_unrealize): reference and unreference the gnumeric_default_bold_font. 1998-10-07 Jakub Jelinek * src/item-grid.c (item_grid_button_1): Handle shift+click on cells (removes last selection and selects from last base to current mouse location). (item_grid_event): Don't lock up if mouse is moved during selection behind left or top margin of sheet canvas (later on we should move the current view). * src/cell.c (cell_formula_changed): Cast void * to something reasonable. * src/item-bar.c (draw_bar_cell): Switch from 2 state bars to 3 state: whole column/row is selected in one of the current selections, some cells are selected in one of the selections or nothing is selected. Get rid of ci->selected, compute it from the selections. (item_bar_draw): Ditto. * src/cell.h (selected): Ditto. * src/sheet.c (sheet_init_default_styles, sheet_init_dummy_stuff): Ditto. (sheet_selection_row_extend_to, sheet_selection_col_extend_to): Remove. (sheet_all_is_selected): True if any of the selections covers whole sheet. (sheet_col_selection_type, sheet_row_selection_type): New functions. (sheet_selection_set): New function. * src/sheet-view.c (sheet_view_row_set_selection, sheet_view_col_set_selection): Remove. (sheet_view_col_selection_changed, sheet_view_row_selection_changed): Handle shift+click and ctrl+click on whole columns/bars as well. (sheet_view_col_size_changed, sheet_view_row_size_changed): Use sheet_*_selection_type instead of ci->selected. * src/item-bar.h (ItemBarSelectionType): Enum for the new 3 state column/row titles. (ItemBarClass): selection_changed takes modifier mask as argument. * src/sheet-view.h (sheet_view_*_set_selection): Remove prototypes. * src/sheet.h (sheet_selection_*_extend_to): Ditto. (sheet_selection_set, sheet_*_selection_type): New prototypes. 1998-10-06 Miguel de Icaza * src/cell.c (cell_modified): Cells from the clipboard do not have a Sheet parameter attached. * src/sheet.c (sheet_cell_add): Check the computed style: if the computed style includes a format, then turn on the cell flag for format is set to avoid the auto guess of cell content. (sheet_style_compute): Now can return the flags of the style that were not part of the default style. * src/file.c (dialog_query_load_file, workbook_save_as): Put the window close to the mouse. * src/workbook.c (sheet_check_dirty, workbook_close): Do not cancel without warning the user if the workbook has changed. (workbook_new, workbook_can_close, workbook_window_destroy, quit_cmd, close_cmd): Reorganized the code to suit the new code to prevent inadvertent quits. 1998-10-06 Adrian Likins * doc/images/*.gif: gifs for documenting the button bar * doc/editing.sgml, files.sgml, formulas.sgml, gnumeric.sgml, number-format.sgml, worksheet.sgml: doc updates, some prelim info on file loading/saving 1998-10-05 Miguel de Icaza * src/cell.c (cell_modified): New function, used to tag a modified cell in a sheet. * src/fn-math.c (gnumeric_average): Display error on division by zero. Make the code not depend on the types returned by gnumeric_sum and gnumeric_count. (callback_function_sum): Keep sum as integers as long as possible instead of using floating point all the time. 1998-10-03 Miguel de Icaza * src/fn-math.c (callback_function_sum): Do not try to be smart about string content. Let the smartiness to other layers. (gnumeric_average): Handle division by zero on average routine. * src/number-match.c (create_option_list): Small bug fix: First translate, then move the pointer ahead. * src/cell.c (str_trim_spaces): Trim space routine was removing everything after the first space instead of removing only the trailing space. (cell_draw): Free the original string, not the modified copy. * src/sheet.c (sheet_set_text): Test if the format has been manually set by the user before trying to do format matching. * src/cell.h: New flag: CELL_FORMAT_SET, used if the user has manually specified a format. FIXME: This information should be saved and loaded. * src/cell.c (cell_set_format): Set the CELL_FORMAT_SET flag 1998-10-03 Nuno Ferreira * src/workbook.c: Added some more keys to navigate the menus. * gnumeric.desktop: Added Portuguese translations. * autogen.sh: Modified hack that patches libtool to work with srcdir != builddir 1998-10-02 Richard Hestilow * plugins/stat/stat.c: added new function NVARIANCE for division by N instead of N - 1, fixed div by 0 error if variance of a single value was taken, free'd up some mem leaks. (Thanks to Morten Welinder for noticing these) 1998-10-02 Richard Hestilow * Added new statistics plugin 1998-10-02 Jakub Jelinek * src/dialog-cell-format.c (apply_coloring_format): fix, fore_color was assigned twice, and back_color never. 1998-10-02 Miguel de Icaza * src/item-grid.h: ItemGridSelectionType: new enumeration type used for item_grid->selecting to avoid shutting down entirely the formula selection range on mouse release. 1998-10-02 Vincent Renardias * Changed 'es@mx' into 'es_MX' for locale stuff in configure.in, po/*, doc/translating.sgml. 1998-10-01 Adrian Likins * src/*.sgml: guess what? doc updates.. mainly info on formatting cells. * src/images/number-format-*.jpg: more images 1998-10-01 Miguel de Icaza * src/item-grid.c (item_grid_event): Removed unused variables * src/gnumeric-sheet.c (gnumeric_sheet_start_cell_selection, gnumeric_sheet_selection_extend, gnumeric_sheet_selection_cursor_place): New routines for letting the user use the mouse to select a cell range. Invoked from item-grid.c * src/item-grid.c (item_grid_event): Clean and reorgranize the event handler, remove unused variables. * src/gnumeric-sheet.c (selection_expand_horizontal): -1 now means "shrink the selection", which means Left/Up keys shrink. Right/Down expand. (selection_expand_vertical): likewise. * src/format.c (format_number): Fixed memory leak: this is a pretty bad construction: g_string_append (s, alloc_string()). I just did not see it coming. Taking metal note of this. * src/number-match.c (format_create_regexp): Fixed memory leaks. The strings returned by create_option_list need to be released. * src/style.c (style_color_new): Important bug fix: The key I was passing was a GdkColor, but our hash table stored StyleColors inside. * src/format.c (append_year): Better fix, suggested by Morten Welinder 1998-09-30 Miguel de Icaza * src/clipboard.c (clipboard_export_cell_region): Correct fix to the paste problem: dont pass current_workbook, but rather the wb we get. * src/format.c (split_time): Compute the day of week. This was done before by localtime, but the new code was not doing it (thus, format "ddd" always reported "Sun"). * src/item-edit.c (item_edit_reconfigure): Call reconfigure in parent. * src/item-cursor.c (item_cursor_reconfigure): Call reconfigure in parent. * src/format.c (append_year): Year 2000 fix :-). * src/cell.c (cell_set_text_simple): Fix, use localeconv information to figure out if the text is a number or not. 1998-09-30 Havoc Pennington * src/dialog-cell-format.c (color_pick_change_notify): Change args to match new gnome-color-picker color_set args. 1998-09-39 Adrian Likins * doc/autofill.sgml, sell_refer.sgml, editing.sgml, gnumeric.sgml, number-format.sgml, worksheet.sgml: Minor updates, new info on formatting, spelling and formatting fixes. * doc/selection.sgml, selections.sgml: removed selection.sgml and added selections.sgml. * doc/images/worksheet-data-[1234].jpg, worksheet-running-calc-1.jpg, number-format-dialog-1.jpg: more pics to go along with the docs. 1998-09-30 Miguel de Icaza * src/workbook.c (quick_compute_routines): Made static * src/item-grid.c (item_grid_context_menus): Made static. 1998-09-29 Miguel de Icaza * src/cell.c (cell_draw_comment): New routine to paint a little red triangle if the cell hsa notes. * src/cell.c (cell_destroy): Destroy the comment. (str_trim_spaces): New routine. Trims the spaces on a string. (cell_draw): Trim the leading and trailing spaces on every string of a multi-line text. * src/color.c (color_init): Allocate a red for tagging the spreadhseet notes. * src/dialog-cell-format.c (format_list_fill): Apply the traslation when adding the format. * doc/tranlating.sgml: New document that describes how to internationalize and localize Gnumeric properly. * src/workbook.c (recalc_cmd): Provide a way to force a recomputation. (insert_current_time_cmd): New function. insert the current time. (insert_current_date_cmd): New function. insert the current date. (insert_at_cursor): New utility function. * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet): Handle control-home 1998-09-29 Raja R Harinath * src/parser.y (dump_tree): Update to change in `expr.h'. s/OP_/OPER_/g. 1998-09-29 Miguel de Icaza * src/xml-io.c: Changed the formatting of it to be like the rest of Gnumeric. * src/fn-math.c, src/fn-date.c: Simplify routines to use value_float and value_int. * src/expr.c (value_float, value_int): New utility functions to create values of type integer and float. * src/sheet.c (sheet_set_text): Use the matching engine on entered text * src/cell.c (cell_set_text_simple): New function. Does not queue cell computations nor queue any redraws (cell_content_changed): New function: Queues recomputations for cells that depend on the contents of the argument. (cell_set_format_simple): New routine, like cell_set_format but does not render the value nor queues a redraw. * src/xml-io.c: Use workbook_recalc_all instead of workbook_recalc * src/fn-math.c (gnumeric_log10, gnumeric_log, gnumeric_log2): Range check fix was wrong. The valid range does not include zero. Thanks to Morten Welinder for noticing this. (gnumeric_cosh): Call cosh, not cos. Reordered this file to have the help always before the function that defines it. (callback_function_or): Bug fix: any non-zero value is considered to be TRUE. (gnumeric_fact): Use exp (lgamma (n+1)) to compute large factorials (this only applies to factorials over 40). * src/about.c (dialog_about): Stop using gnome_dialog_set_modal. 1998-09-29 Miguel de Icaza * src/number-match.c (format_create_regexp): Small bug fix. I was making 'mm' be parsed as 'mmm'. Support 'mmmm'. * src/fn-date.c (gnumeric_now, gnumeric_date, gnumeric_today): Note that jannuary 1st is day 1, not day zero. * src/format.c (append_month): Fixed handling: tm_mon is zero based. (split_time): Fixed silly mistake I did last time I looked at this code * src/cell.c (cell_set_formula): Try to set the cell style if the style is General. * src/parser.y (return_symbol): Try to match the input with the format matching engine. * autogen.sh (PKG_NAME): Another hack to get rid of the annoying extracing symbols list, which, slows down my link time :-) 1998-09-28 Adrian Likins * doc/gnumeric.sgml, autofil.sgml, worksheet.sgml: More docs. * docs/images/worksheet*.jpg: jpg's for the new worksheet docs. 1998-09-28 Miguel de Icaza * src/number-match.c (compute_value): New file: Implements a smart way of parsing numbers: From all of the registered formats, it creates regexps for matching at the time the user inputs data. If that data matches any of the regexps, then the input is converted into a float, and a display format is assigned to it. * src/format.c (append_day, append_month): Skip the -now included- start at the begining for internationalization purposes. (split_time): Fixed the hour and second renddering. (format_number): Fix: hour_seen was not being set. * src/sheet-autofill.c (matches_list): Allow the lists to include an asterisk to be able to distinguish between abbreviations and full descriptions. * src/clipboard.c (x_selection_to_cell_region): New routine. Creates a CellRegion of type text based on the selection provided by X. (paste_cell_flags): New function, decoupled from do_clipboard_paste_cell_region. Handles new type in CellCopy. * src/sheet.c (sheet_selection_paste): Simplified as most of the work is now * src/clipboard.c (x_selection_received): Perform the paste operation, moved most of the logic from sheet.c. This does both internal paste and paste from the X selection (and everything works the way the user expects it to behave). 1998-09-27 Miguel de Icaza * src/cell.h: Cell Copys now can contain both Cells or plain text. * src/expr.c (function_call_with_values): Check the return value from symbol_lookup. 1998-09-27 Miguel de Icaza * plugins/python/python.c (marshal_func): Our scheduled indentation changes. * plugins/python/gnumeric_startup.py: Sample file that gets loaded when the Module is loaded. 1998-09-27 Raja R Harinath * configure.in (GNOME_COMPILE_WARNINGS): New check. (PYTHON_EXEC_PREFIX): Figure out `exec_prefix' where python was installed. (PYTHON_LIB_LOC): Use $PYTHON_EXEC_PREFIX instead of $PYTHON_PREFIX. * src/Makefile.am (CFLAGS): Comment out. (gnumeric_LDFLAGS): Pass `-export-dynamic', so that plugins can access symbols from the `gnumeric' binary. * plugins/sample/Makefile.am (CFLAGS): Comment out. * plugins/python/Makefile.am (CFLAGS): Comment out. (libpython_la_LDFLAGS): Move $(PYTHON_LIB_LOC) here. 1998-09-27 Adrian Likins * doc/{gnumeric, editing, formulas, autofill.sgml}: More approriate tags for the images and examples. Restructed to be a bit more logical. 1998-09-26 Adrian Likins * doc/*.jpg: * doc/images/*.jpg: moved images to an images subdir * doc/gnumeric.sgml, editing.sgml, autofill.sgml: cleaned up the markup some 1998-09-26 Miguel de Icaza * src/sheet-object.c (sheet_view_object_realize): Swap coordinates before passing to the canvas item. * plugins/python/python.c (init_plugin): Use the system installation directory to load the python scripts. * autogen.sh: Hack to make libtool add library dependcy information (it modifies the libtool file after it has been created). * src/workbook.c (workbook_set_filename): New routine to set the filename being edited of the workbook. * src/sheet-object.c (create_object): Swap arguments to the ellipse object to guarrantee we pass valid information. * src/render-ascii.c (cell_region_render_ascii): Ok, remove the leaks now. 1998-09-25 Adrian Likins * doc/cell_refer.sgml, doc/gnumeric.sgml, doc/editing.sgml: Change the structure of the outline of the docs to make a bit more sense. Added some more docs too. * doc/cell-*.jpg, doc/selection[8,9,10].jpg: more jpgs 1998-09-25 Miguel de Icaza * src/render-ascii.c (cell_region_render_ascii): new routine that renders a cell selection into a an ascii string. IT HAS PILES OF LEAKS. I have to go to the movies, will fix later tonight. * src/clipboard.c (x_clipboard_bind_workbook): New function used to connect the selection signals for a workbook. (x_selection_handler): New function: X selection handler. (clipboard_export_cell_region): New function: Export our clipboard to the X selection. (clipboard_copy_cell_range): call clipboard_export_cell_region * src/plugin-manager.c (plugin_manager_new), plugin.c: Add internationalization support. * src/sheet.c (sheet_selection_row_extend_to, sheet_selection_col_extend_to): New version that makes sure the column information has been allocated. * src/workbook.c (workbook_parse_and_jump): Maximum ranges were a little bit off. * src/parser.y (return_cellref): Fixed the same bug we had in parse_cell_name: The parsing of the column name to a column index was wrong here too. * src/sheet.c (sheet_row_info_set_height, sheet_col_info_set_width): New functions based on the older non-ColRowInfo versions. * src/sheet-view.c (sheet_view_row_size_changed, sheet_view_col_size_changed): Apply changes globaly if the whole sheet is selected. 1998-09-25 Adrian Likins * doc/dndselection.sgml, selection.sml: more docs, some on creating selections, and some on moving/copying cells * doc/dndselection-*.jpg, selection-*.jpg: jpegs to accompany the docs. 1998-09-24 Adrian Likins * doc/gnumeric.sgml, autofill.sgml: Some docs on the autofill stuff. * doc/autofill-[1..10].jpg: jpegs accompaning the autofill docs 1998-09-24 Miguel de Icaza * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet): Do not handle Control-a here. * src/workbook.c: Handle C-a with the GnomeApp accelerators Thu Sep 24 15:12:13 EDT 1998 Daniel Veillard * src/xml-io.c: moved to a per-XML file compression interface. 1998-09-24 Miguel de Icaza * src/item-cursor.c (item_cursor_draw): Make the anted selection one pixel wider. 1998-09-23 Miguel de Icaza * src/workbook.c (workbook_feedback_set): Add italic font setting support. * src/cell.c (cell_set_style): Render the value after copying a style. * src/clipboard.c (clipboard_paste_region): Add support for pasting the formats only. * src/xml-io.c: Destroy the extra style. * src/main.c (main): No need to init colors as they are auto-inited. * src/style.c (font_compute_hints): At font creation time store a couple of the font attributes for quick retrieval. * src/sheet-view.c (sheet_view_construct): Do not allow this button to have the focus either. * src/item-bar.c (item_bar_draw): If the whole sheet is selected, draw all of the columns in pressed presenstation * src/sheet.c (sheet_is_all_selected): Return wheter all the sheet is selected. * src/utils.c (cell_name): Fixed cell name computation. (parse_cell_name): Fixed parsing of the cell name. * src/item-grid.c (item_grid_event): More range checks. * src/item-bar.c (item_bar_event): range checks here too. * src/sheet-autofill.c (FillItem): Keep track of the originating cell so that we can copy the format. * src/cell.c (cell_set_style): New function. * src/sheet.c (sheet_selection_reset_only): Simple fix: For the row case, redraw the rows, not the columns. Cut/paste typo. * src/dialog-goto-cell.c (dialog_goto_cell): Do not complain if there was no target cell entered. * src/expr.c (eval_expr): Division of integers results in a float. * src/workbook.c: Added shortcuts to the File menu. * src/item-cursor.c (item_cursor_autofill_event): Do not allow under-the-base coordinates. * src/sheet-autofill.c: Its "january" not "jannuary". * src/cell.c (cell_set_text): Enhanced number detection. * src/item-cursor.c (item_cursor_drag_event): Handle sheet boundaries. * src/gnumeric-sheet.c (move_cursor_vertical, move_cursor_horizontal): Handle sheet boundaries. * src/item-grid.c (item_grid_event): Handle sheet boundaries. * src/item-bar.c (item_bar_draw): Handle sheet boundaries. * src/pixmaps/bold.xpm: Oops. Use the bold icon I created yesterday. 1998-09-23 Richard Hestilow * src/style.c: fixed hyphen vs hypen typo. Wed, 23 Sep 1998 12:52:20 +0200 Paolo Molaro * src/format.c: added #include * src/pixmaps: added bold.xpm: this is from gwp, maybe we need a better one:-) 1998-09-23 Miguel de Icaza * src/sheet-autofill.c (string_has_number): I got too agressive with the test so no Strings + Numbers were being autofilled. * src/workbook.c (workbook_setup_edit_area): Remove the CAN_FOCUS flags form the accept and cancel buttons. Bind the buttons. (buttons): Neither Zoom-in and Zoom-out can take the focus. (change_selection_font): New function to change the fonts of a cell range. * src/sheet.c (sheet_accept_pending_input): Renamed from sheet_accept_pending_output. * samples/: Added a new sample file: hypothetical-sales. * src/parser.y (yylex): Accept underscores in identifiers. * src/xml-io.c (readXmlCell): Set the content of the cell even if the file contains NULLS. * src/style.c (style_font_new): Better tolerance to missing fonts. * src/xml-io.c: Remove geometry setting: it has some bad side effects. * src/func.c (constants_init): Add a GNUMERIC_VERSION constant. Tue Sep 22 20:50:11 EDT 1998 Daniel Veillard * src/xml-io.c: set-up for compression of output. Should be tunable from the interface. 1998-09-22 Miguel de Icaza * src/xml-io.c (writeXmlStyle): Save colors. Save pattern. (readXmlStyle): return the value. Start with an empty style. Load font. (xmlGetColorValue): Use the style color allocation routines. (readXmlCell): Load style. Merge styles if an element is missing. Trim the cell tail content (spaces and newlines at the end). Changed the use of all hash tables to use strings instead of pointers. (readXmlObject); Call sheet_object_realize on the object loaded. * src/item-cursor.c (item_cursor_autofill_event): Commted out debugging code. * src/sheet-autofill.c (string_has_number): Bug fix: it was assuming every string had a number at the end. * src/workbook.c (workbook_new): Handle to destroy signal. Add Close option to file menu. * src/style.c, src/style.h (border_equal): Colors in the BorderStyler are now stored as StyleColors. * src/sheet.c (sheet_shift_col): Small buglette fixes: we need to advance our row walker here ;-) (sheet_shift_row): Same error was here. * src/format.c (format_value): Handle NaN/infinite numbers * src/gnumeric-sheet.c (gnumeric_sheet_key): Last fix was a little too good: Forward the keystroke events if the user is already editing a cell. * src/gnumeric-sheet.c (gnumeric_sheet_key): Do not process events that might be catched by the menubar. * src/about.c: Add about box. 1998-09-21 Miguel de Icaza * src/fn-math.c: Changed the way we tag the function definitions before its too late. * src/item-cursor.c (item_cursor_point): Made the thresholds for the cursor a little better. * src/dialog-cell-format.c: Small changes to the color configuration code. * src/expr.c (do_expr_decode_tree): When decoding a tree, include the argument separator. Also, loop properly trough the arguments being decoded. (function_call_with_values, function_def_call_with_values): New functions: these ones are for the plugins so that a plugin can invoke other functions in Gnumeric. * src/fn-date.c (gnumeric_now): The serial number returned by NOW() should be relative to 1900/1/1, not year zero. 1998-09-21 Adrian Likins *src/fn-math.c: firat stab at fleshing out the help blurbs here. 1998-09-20 Miguel de Icaza * src/expr.c (eval_expr): Fix the way we computed expressions. * src/eval.c (cell_eval): Maintain a CELL_ERROR flag to know if the value is NULL due to an error or to the cell not being evaluated. * src/expr.c (funcion_call_with_values): Add a routine to allow plugins to call other functions defined in Gnumeric. * src/style.c: Handle the pattern property of the styles. * src/style.h: Pattern style is now just a 4 bit quantity, instead of a RefCounted structure. * src/plugin.c: Include gnumeric-util.h 1998-09-19 Miguel de Icaza * src/item-cursor.c (item_cursor_do_drop): Use button-1 to select an option on the popup menu. * src/fn-date.c: New file, implements various date and time manipulation routines. * src/main.c: Accept --dump-func-defs flag to dump the help available for our built in functions. * src/symbol.c: Export the symbol hash table. * src/format.c (render_number): Use the locale provided rendering number. This will require translators to also translate correctly the default formats for their locale. * src/format.c (split_time): New code that works correctly in the range expected by Microsoft Excel [1900,1900+65535]. We of course work on a wider range than Excel can. We can work on pre-1900 dates and on 1900+2^31 dates, but it might make little sense. 1998-09-18 Miguel de Icaza * src/sheet-autofill.c (fill_item_new): Trivial bug fix (I was using a variable before testing if it wsa ok). 1998-09-18 Miguel de Icaza * src/item-cursor.c (item_cursor_autofill_event): Accept pending input when the user autofills. * README, Doc/Design: Updated * configure.in: autoconf tests for python. * src/sheet-autofill.c (sheet_autofill_dir): Only fill the region we were requested. 1998-09-17 Tom Dyas * plugins/sample/plugin-sample.c: Update to the new plugin API. * src/plugin.c (plugin_load,plugin_unload): Replaced g_print's with gnumeric_notice. Call new API function "can_unload" to see if a plugin is still in use. * src/plugin.h: New API function "can_unload". Removed refcount. 1998-09-17 Miguel de Icaza * src/sheet-view.c (sheet_view_row_size_changed, sheet_view_col_size_changed): If there is a selection of columns or rows, change the sizes of all of the columns. * src/sheet.c (sheet_row_get_distance, sheet_col_get_distance): optimized to be O(n) instead of O(n^2) using (col_row_distance): new routine to compute distances. * src/sheet-view.c (sheet_view_redraw_cell_region): Add the scrolling offset to the x and y positions to draw properly * src/xml-io.c (readXmlSheet): Call sheet_set_zoom_factor to initialize the ->pixels field. * src/expr.h: Valued functions now take a FunctionDefinition * parameter which points to the definition that was used for this function. This is required for the python interpreter. * src/cellspan.c (row_cell_get_displayed_at): row->data might be NULL. (cell_unregister_span): row->data might be NULL. * src/main.c (main): Add support to load more than one file from the command line. Drop requirement for --file option. * src/sheet-object.c (sheet_object_destroy): Keep track of the sheet->objects structure. (sheet_object_create_line, sheet_object_create_filled): Keep track of the sheet->objects structure. (sheet_object_realize, sheet_object_unrealize): Export these functions. (sheet_object_destroy): Keep track of the sheet->objects structure * src/sheet-autofill.c (autofill_cell): Implemented autofill on strings that contains numbers. This allows autofill to handle stuff like "Product1" -> "Product2", ... Wed Sep 16 23:56:59 EDT 1998 Daniel Veillard * src/xml-io.c: started working on object saving/loading. 1998-09-16 Miguel de Icaza * src/cursors.c (cursors_shutdown): Fix bug. Destroy the ith cursor, nor cursor 0 over and over. * src/sheet-autofill.c (type_is_compatible, autofill_create_fill_items): Better type compatible routine. This is required for the list fill type. (autofill_init): startup the autofill code. It registers a number of default lists (weekdays and months for now). 1998-09-16 Tom Dyas * src/plugin-manager.c: Changed where the Remove button was made sensitive so that it actually sync's with the list selection. 1998-09-16 Miguel de Icaza * src/workbook.c: Use the new accelerator setup from gnome-app-helper. * src/sheet-autofill.c (fill_item_new): We now have a working implementation of the Autofill feature. 1998-09-15 Miguel de Icaza * src/sheet-autofill.c (fill_range_new): New routine, used to create a fill_item * src/item-grid.c (item_grid_event): Use the proper cursor depending on the sheet mode. * src/sheet-object.c (object_event): Set the cursor to the arrow. (object_handle_event): Same. * src/cursors.h (cursor_set_widget, cursor_set): New macros to access easily the gnumeric cursors. 1998-09-14 Miguel de Icaza * src/cursors.c: Define the Gnumeric cursors here. (create_bitmap_and_mask_from_xpm): New simplistic function to create cursors from an XPM inlined file. It assumes 3 colors are used: none (transparency), black and white. (cursors_init): Create various cursors for use in Gnumeric. * src/item-grid.c (item_grid_event): Set the fat cross cursor on enter-notify * src/item-cursor.c (item_cursor_selection_event): Handle GDK_ENTER_NOTIFY and GDK_MOTION_NOTIFY to set the X window pointer shape properly according to the position of the mouse pointer. 1998-09-13 Miguel de Icaza * src/gnumeric-sheet.c (gnumeric_sheet_realize): Fix: initilaize the GdkWindow pointer after we have invoked our parent method. * src/cursors.c: New file. Loads the various cursors used by Gnumeric. * src/item-cursor.c (item_cursor_autofill_event): Implement the cursor growing autofill rules. 1998-09-12 Miguel de Icaza * src/workbook.c (workbook_setup_sheets): Dont let the workbooks take the focus. (do_focus_sheet): Do focus the current sheet on page change. (workbook_setup_signals): Focus the GnumericSheet if no widget has the focus. * src/cell.c (cell_draw): Use the value-specified color. * src/format.c (lookup_color, format_color_init, format_color_shutdown): New routines to use StyleColors instead of color names. 1998-09-11 Miguel de Icaza * src/cell.c (queue_cell, cell_freeze_redraws, cell_thaw_redraws): Support for freezing/thawing cell redraws to avoid the multiple calls that will be produced by appying a format. * src/xml-io.c: Use the new color allocation routines. * src/color.c: Implement color allocation routines with a Color context shared by all of Gnumeric's code. * src/item-cursor.c (item_cursor_realize): Do not allocate colors here now * src/item-grid.c (item_grid_realize): Do not allocate colors manually here now. * src/gnumeric-sheet.c (gnumeric_sheet_color_alloc): Remove. This was a quick hack. 1998-09-10 Miguel de Icaza * src/cell.c (cell_draw): Fix center alignment code. 1998-09-10 Tom Dyas * src/func.c: Made install_symbols public. * src/main.c: initialize the plugins. * src/workbook.c (plugins_cmd): Add a menu option for plugin loading. * plugin-manager.c: New file. Implements the GUI part of the plugin manager. * plugin.c, plugin.h: New file. Support for the dynamically loaded Gnumeric plugin components. 1998-09-10 Miguel de Icaza * src/dialog-cell-format.c (dialog_cell_format): save and restore the last page used during a cell style application. * src/item-edit.c (item_edit_draw): Do not shift the characters one pixel to draw the cursor. 1998-09-09 Miguel de Icaza * src/dialog-cell-format.c (create_background_radio): Use the new pattern selector. (create_foreground_radio, create_background_radio): Use the new gnome color pickers. * src/pattern-selector.c (pattern_selector_select): New widget. This is a patter selector. 1998-09-08 Miguel de Icaza * src/sheet-object.c (sheet_button_press): Lots of changes to finish the editing facilities for objects: you can now resize the objects and you can move them. 1998-09-07 Miguel de Icaza * src/dialog-cell-format.c (apply_font_format): Optimization, walk the row list instead of calling repeatedly the sheet_row_get routine. 1998-09-07 Miguel de Icaza * src/style.h: Color style is now a single color 1998-09-06 Miguel de Icaza * src/sheet-object.c: New file. The support for adding graphical objects to the spreadhseet is here. The main entry point is sheet_set_mode_type which hooks to the signal handlers for object creation. Various routines for per-view creation, destruction are provided. 1998-09-05 Miguel de Icaza * src/parser.y: Add unary '+' * src/gnumeric-sheet.c: Add keybinding for Control-Enter which fills the selection with the current text. * src/sheet.c (sheet_set_text): New function: sets the contents of an arbitrary cell to the text as if it were typed by the user. (sheet_fill_selection_with): Fill the selection with a string. 1998-09-04 Miguel de Icaza * src/gnumeric-sheet.c (gnumeric_sheet_key): Fix the way the hotkeys were processed (c-a specifically is annoying and all of the control-keys were being consumed before reaching the item-edit). (gnumeric_sheet_key): implemenet control-space * src/dialog-cell-format.c (create_align_page): Connect to the toggled signal of auto return. * src/cell.c (cell_draw): Fix the VALIGN_JUSTIFY case. * src/item-grid.c (item_grid_draw): Redone the cell draw driver. * src/cell.c (cell_draw): Now it returns the number of cells it draw on top of. (cell_calc_dimensions): Unregister the spans when entering, register the span at exit. 1998-09-03 Miguel de Icaza * src/utils.c (int_get_from_range): Bug fix, we were not doing the range thing for the "big" case. Thanks to Alan for finding this bug. 1998-09-02 Tristan Tarrant * configure.in: Included it in ALL_LINGUAS 1998-09-02 Miguel de Icaza * src/cell.c (cell_set_alignment): Bug fix: optimize only if auto_return is the same value that we have set * src/gnumeric-sheet.c: Define lots of cool patterns. Where cool in this sentence is defined as 13 (to leave room for the solid pattern). (gnumeric_sheet_realize): Create the pattern stipples here. * src/file.c (workbook_save_as, workbook_save, dialog_query_load_file): New file, new routines to deal with file save and file load dialog boxes. * src/workbook.c: Improved our toolbar with new actions. * src/xml-io.c: Fixed the order in which parameters were passed to sheet_cell_get/sheet_cell_new * src/sheet.c (sheet_clear_region): Redraw the deleted region. (sheet_clear_region_content): Same. (sheet_cell_remove): same. * src/sheet-view.c (sheet_view_redraw_cell_region): * src/cell.c (cell_set_halign): New routine: Only changes the Horizontal alignment of a cell. (cell_set_format, cell_set_text, cell_set_font_from_style, cell_set_halign, cell_set_alignment): Queue a redraw to a cell before making changes to the properties, to repaint correctly the regions it covers before the change. * src/workbook.c (center_cmd, left_align_cmd, right_align_cmd, set_selection_halign): New routines used to bind the alignment commands from the toolbar. * src/sheet-view.c (sheet_view_redraw_cell_region): Silly mistake fix. Last time I touched this routine i got too excited. I should use *_col_get_distance only for numbers, not rows. My variables were badly named and I thus commmited a mistake, fix. 1998-09-01 Miguel de Icaza * src/dialog-cell-format.c (create_align_page): Added support for the "add returns automatically" formatting option. * src/cell.c (cell_draw): Finished implementing my new drawing scheme. It now supports all of the Excel 5.0 alignements. Added missing calls to cell_calc_dimensions in various spots. * src/workbook.c: Added a toolbar with some actions. 1998-08-31 Tristan Tarrant * TODO: some ideas for key shortcuts (from Excel :-) * src/gnumeric-sheet.c (gnumeric_sheet_key): Implemented page up, page down and home keys. They don't work for selections at the moment. Implemented clear. It currently does a clear_all, but ideally it should pop-up a dialog asking the user what kind of clear he/she wants, as in Excel. Also clearing cells doesn't update the display. 1998-08-31 Miguel de Icaza * src/cell.c (cell_do_calc_dimensions): New routine that computes the dimenssions of a cell based on the alignement constraints of the cell. * src/item-bar.c (item_bar_event): grab the focus when selecting as well. * src/sheet-view.c (sheet_view_redraw_cell_region): Implemented correctly: we now use cell_get_span on every cell in the range to actually compute which areas need to be updated. * src/cell.c (cell_get_span): New routine. Computes the number of columns spanned by a cell. Sun Aug 30 17:19:02 EDT 1998 Daniel Veillard * src/xml-io.c: added saving of the current workbook as one file, added code to load the workbook. Some part are really untested/incomplete especially the style support. * src/main.c (main): added loading of "default.wb" on startup i.e. the default workbook. 1998-08-29 Miguel de Icaza * src/item-bar.c (item_bar_get_line_points): New helper routine, used to create the position of the tracking line for the bar resizing. (item_bar_event, item_bar_start_resize): Fix the incremental tracking. 1998-08-28 Miguel de Icaza * src/sheet.c (sheet_row_set_internal_height): New routine used to change the heigh of a sheet. Now we also keep a variable to see if the user has hardcoded the dimensions of the row. (sheet_compute_visible_ranges): New function to compute the visible ranges of the Sheets. * src/item-edit.c (item_edit_init): Init all values. (item_edit_set_arg): Set the child bounds (item_edit_draw): Use the style font for the current cell when drawing the cell. * src/dialog-cell-format.c (apply_font_format, create_font_page): New cell property configuration page: font selector. * src/cell.c (cell_set_font, cell_set_font_from_style): New routines to change a cell's font. * src/item-bar.c (item_bar_start_resize): Fix routine after the massive changes of yesterday. 1998-08-28 Miguel de Icaza * src/format.c (format_number): Rewrote the format parser. I took Chris's number formatting routine and made it a number-rendering only thing to support the complexities of the Excel formating codes. 1998-08-27 Miguel de Icaza * src/format.c (format_number): Add support for text quoting inside a format (double quotes and single character quotes); Add support for space skipping (_) and concatenation of the allowed characters. Added color lookup. * src/sheet-view.c, src/sheet.c, src/gnumeric.c: Massive changes to the structure of the code to accomodate the fact that we should be able to have multiple views for a single sheet. 1998-08-26 Miguel de Icaza * src/sheet.c (sheet_clear_region_content): New function to remove the contents of a region of cells. * src/dialog-zoom.c (dialog_zoom): Add Zoom window. * src/style.c (style_color_new, style_color_ref, style_color_unref): New functions. Color for a cell will be kept as part of the style. Hack note: if valid_flags reports STYLE_COLOR style->color might be NULL: this means use the default sheet colors for this cell. * src/cell.h: Get rid of GdkColor field. * src/item-grid.c (item_grid_draw_cell): Draw selected cells smartly. Now we invert the resulting area (this works for my 16-bpp display, have to try the XOR trick tomorrow on a paletted display). (context_clear_cmd): New context command that clears the content of a cell region. 1998-08-25 Miguel de Icaza * src/sheet.c (sheet_row_selection_changed, sheet_col_selection_changed): Use sheet_selection_clear_only to avoid getting two selections. (sheet_col_add): Keep track of the last used columns/rows. (set_tip_label): New routine to set the tooltip to the value of the current scroll section (vertical_scroll_change, horizontal_scroll_change): Update the tooltip to reflect the current value. (vertical_scroll_event, horizontal_scroll_event): Create and destroy the tooltips (sheet_col_add, sheet_row_add): Keep track of the maximum sheet size (sheet_delete_col): New public routine. (sheet_delete_row): New public routine. (sheet_move_column): New helper routine, it was part of sheet_insert_col before. (sheet_insert_row): Manipulate the structures carefully. I was changing a list that I was using. * src/dialog-delete-cells.c (dialog_delete_cells): Use sheet_delete_col, sheet_delete_row. This completes this dialog box. 1998-08-24 Miguel de Icaza * src/sheet.c (sheet_shift_row): Bug fix: We cannot be making changes to the column/row lists when we are walking them. * src/cell.c (cell_formula_relocate): Re-parse the expression after relocating the formula: the resulting expression might have invalid cell references. * src/sheet.c (sheet_shift_col): Implement the column shift operation. 1998-08-23 Miguel de Icaza * src/dialog-cell-format.c (apply_align_format): Actually store the style selection on the computed style. * src/eval.c (intersects): Write in terms of range_contains. * src/utils.c (range_contains): New utility routine. * src/style.c (style_destroy): It now allow (style_merge_to): Implement new routine for gradually compute the full value of a style. (style_duplicate): Make the routine duplicate only the valid fields, not all of them. (style_destory): account for the fact that now we might have non-complete styles. (sheet_style_compute): Make it fully functional. * src/sheet.c (sheet_cell_formula_link, sheet_cell_formula_unlink): Now we maintain the dependencies at formula link/unlink time (sheet_shift_row, shift_insert_col, shift_insert_row): Compute the dependencies for any changed cells and recalculate. (sheet_style_attach): Implement. (sheet_destroy): Destroy the column and row information. * src/item-grid.c (context_insert_cmd): Use the dialog_insert_cells instead of the dummy test code we had before. * src/workbook.c (insert_cols_cmd, insert_rows_cmd): Implement. 1998-08-22 Miguel de Icaza * src/sheet.c (sheet_redraw_all): Redraw also the column and row bars. (sheet_insert_row): Fix. I was accessing the wrong information; Fix, on the row selection code; (sheet_cell_add): Recompute the dimensions properly of the cell after insertion (this is to fit the use of this routine in a new context). (sheet_shift_row): Fix the * src/dialog-insert-cells.c (dialog_insert_cells): Learn to use GtkCauldroun's way of dealing with radio buttons. * src/sheet.c (sheet_selection_paste): Now the clipboard fills the region which is the union of the current selection and the information in the clipboard. * src/clipboard.c (clipboard_paste_region): Check the region where we pasted for possible dependencies, and if so, queue a recalc. (clipboard_paste_region): It now takes a region to be filled instead of just using the contents of the clipboard. * src/eval.c (search_cell_deps): Updated to search on cell ranges instead of a single cell. (region_get_dependencies): Get dependencies for a complete region. (cell_get_dependencies): Reworked to use new scheme 1998-08-21 Miguel de Icaza * src/dialog-insert-cells.c: New file. Handle the insert cells dialog box. This uses GtkCauldron for the first time. That routine is soooo cool! * src/sheet.c (sheet_cell_remove): Remove the memory used by the key in the hashtable as well. (sheet_insert_col): new routine used to insert columns in the spreadsheet, it is pretty elaborate. (sheet_col_destroy, sheet_row_destroy): New routine used by the column-overflow logic in the insertion routines. (sheet_cell_add): Only attach a style to a cell if it does not have any yet. (sheet_move_row): New routine: shifts a row a number of columns. (sheet_verify_selection_simple): New routine for warnging about the multiple-selections case. In the future it should provide a help context. (sheet_insert_row): Implement this new routine. * src/clipboard.c (paste_cell): Simplify. * src/cell.c (cell_make_value, cell_formula_relocate): New routines based on the code that was done for the clipboard. Now they are used in other places as well. cell_make_value actually fixes a potential bug that caused formulas to reappear magically on paste-values commands (never hit the bug, but it was there, I swear to god). 1998-08-20 Miguel de Icaza * src/gnumeric-sheet.c (gnumeric_sheet_set_cursor_bounds): New routine to set the cursor bounds. * src/sheet.c (sheet_selection_paste): Set the cursor and the selection to the new spot. * src/dialog-paste-specia.c: Move the dialog code here. * src/format.c (format_number): Do not abort after we have processed the whole format, but rather append the rest of the format string. (style_entry_free): Kill the warnings 1998-08-20 Chris Lahey * src/style.h: Added StyleFormatEntry and changed StyleFormat. * src/format.c: Added multi-field formatting. format_text now takes a StyleFormatEntry. (check_valid): Returns true if the given StyleFormatEntry is applicable to the given value. 1998-08-19 Miguel de Icaza * src/format.c (format_value): The new entry point for formating values. This takes a Value instead of a float. NULL is never returned from format_value now: if there is a format error, then value_string is used to display it. (format_compile): This routine should always return, it cant fail, in the worst * case it should just downgrade to simplistic formatting. (format_destroy): This routine is invoked when the last user of the format is gone (ie, refcount has reached zero) just before the StyleFormat structure is actually released. resources allocated in format_compile should be disposed here * src/sheet.c (sheet_cursor_set): New function. Use this instead of the view-specific routine (gnumeric_cursor_set). * src/gnumeric-sheet.c (gnumeric_sheet_can_move_cursor): ':' is a valid separator for activating the cursor-cell selection mode. * src/cell.c (cell_auto_align): New function. This tries to auto-align the cell contents depending on the value type. * src/dialog-cell-format.c (cell_properties_apply): Create a single style that is attached to a region and let each property page fill the structure in. (apply_align_format): Implement. No wonder it was not working last night. (apply_number_formats): Fill the passed Style structure only. Remove obsolete code. * src/sheet.c (sheet_cell_new): New cells are born with auto-style flag turned on. * src/clipboard.c (paste_cell): Render the cell after computation is finished. Clean up the usage of the cell manipulation; make auto-style work on pasted cells. * src/str.c (string_ref): Return the value referenced. * src/item-cursor.c (item_cursor_do_drop): New function: Handles the action from the cursor drag operation. * src/gnumeric-util.c (run_popup_menu): New utility function to popup menus created from an array of strings. * src/sheet.c (sheet_selection_cut, sheet_selection_copy): They now return whether it was possible to perform the operation. 1998-08-18 Miguel de Icaza * src/cell.c (cell_set_alignment): Provide a way to change the cell alignment. * src/dialog-cell-format.c (create_align_page): Implement the cell formats/alignment page. * src/item-cursor.c (item_cursor_realize): Add stypple support for drag and autofill cursors. * src/gnumeric-sheet.c (gnumeric_sheet_compute_visible_ranges): Make the selected column and row be always fully visible (ie, use the ->last_full_[col|row] instead of last_visible_[col|row]. * src/cell.c (cell_set_format): Call cell_queue_redraw after changing the cell contents. 1998-08-18 Chris Lahey * src/format.c (format_number): Fixed the small '.' error. (decimal point shown even if not requested in numeric conversions.) 1998-08-17 Miguel de Icaza * src/eval.c (cell_eval): Use the formating routine now. * src/expr.c (value_format): Format a Value with a StyleFormat. * src/item-cursor.c (item_cursor_set_bounds_visibly): Force a canvas update after moving the selection. * src/sheet.c (sheet_selection_to_list): New function: generates a list of cells from the sheet->selections list. * src/style.c: Now styles have a "valid_flag" that has a bit turned on for those parts of the style that are actually used. This is required for adding the regions of style application in a Sheet. (style_destroy): destroy only those valid parts in a style. * src/dialog-cell-format.c: New file. Implements the cell/format dialog box. * src/cell.c (cell_render_value): new routine used to render the cell->value into cell->text. (cell_queue_redraw): new routine to queue individual redraws of the screen. I believe it is buggy, as the screen does not update after an apply in the cell/format dialog box. (cell_set_format): New routine to change the format of an existing cell. * src/format.c (format_number): Added color argument; smaller fixes to use it within gnumeric. * src/main.c (main): Include i18n setup as per namsh's suggetion. 1998-08-15 Chris Lahey * src/format.c: Merged format_text and format_date into format_number. Added parsing of am/pm. Added a short format description. 1998-08-15 Miguel de Icaza * src/item-cursor.c (item_cursor_drag_event): Make the drag cursor actually dragable. * src/item-grid.c (item_grid_event): Use the converted cordinates. (item_grid_find_row, item_grid_find_col): Rename and export these routines to be used by the ItemCursor. * src/gnumeric-sheet.c (gnumeric_sheet_key): Do not remove the selection string when the input has been accepted. * src/expr.c (expr_tree_ref): Strategy change: Now every ExprTree node is properly refcounted, as soon we will start sharing parts of the ExprTree between cells. (do_expr_decode_tree): Decoding an expression now takes into account the precedence of the operators and uses paretheses only when they are actually required. 1998-08-14 Miguel de Icaza * src/item-grid.c (item_grid_event): Implemented context sensitive menu for the grid. (item_grid_event): Use instead of for extending a selection * src/clipboard.c (clipboard_paste_region): After pasting, trigger a recalculation. 1998-08-14 Jaka Mocnik * src/clipboard.h: changed PASTE_ALL to PASTE_ALL_TYPES. * src/gnumeric-util.c (gtk_radio_group_get_selected): changed to work. I guess it is a bit weird trying to access a next member of an int ;). 1998-08-13 Miguel de Icaza * src/workbook.c (workbook_set_region_status): Support going to a cell by typing the cell name on the entry line. (workbook_parse_and_jump): new routine for jumpting to a specific cell. * src/dialog-goto-cell.c: New file. Implements the goto cell dialog box. * src/clipboard.c: implemented paste-special dialog box. (clipboard_paste_region): Redraw after clearing and after each cell is pasted. * src/sheet.c (sheet_selection_changed_hook): Display the current selection. (sheet_selection_walk_step): Fix the movememnt code to walk correctly over the selection. * src/cell.c (cell_formula_changed): New function used to notify of a cell formula change (required for recomputation and to add the cells to the proper computation lists). * src/expr.c (expr_decode_tree): Goes from ExprTree to a string representation. This is required when copying cell values to recompute the string that is displayed to the user. * src/util.c (cellref_name): New function, get a string representation for a CellRef. (parse_cell_name): New function, returns integers for col, row from a cell string representation. Thu Aug 13 19:08:28 1998 Tom Tromey * src/xml-io.c: Look in gnome-xml for tree.h and parser.h. Thu Aug 13 00:02:23 EDT 1998 Daniel Veillard * src/xml-io.c : adapated to the new version 0.2 of the xml lib 1998-08-11 Miguel de Icaza * src/fn-math.c (gnumeric_bin2dec): finish implementation of BIN2DEC * src/item-grid.c (item_grid_event): Call gnumeric_sheet_accept_pending_output before moving the cursor. * src/item-cursor.c (item_cursor_event): Event handler for the item_cursors. * src/item-cursor.h: More cursor types: ITEM_CURSOR_AUTOFILL (for the case where the small drag box is used) and ITEM_CURSOR_DRAG (for when the item is being dragged). * src/clipboard.c (clipboard_paste_region, clipboard_copy_cell_range): New functions for cut and paste support. * src/cell.c (cell_destroy, cell_copy): New functions. Preparing for cut and paste support. * src/expr.c (value_copy_to): Finish implementing all cases. (value_duplicate): New function. Duplicates a value. * src/sheet.c (sheet_cell_remove): Implement a way to remove cells. * src/eval.c (workbook_recalc): New recomputation strategy: We now keep a generation flag for determining whenever a cell value has been recomputed for this generation. The generation variable is a char. Everytime we are about to overflow the char, we walk the list of formulas and reset the generation flag. 1998-08-10 Miguel de Icaza * src/eval.c (workbook_recalc): Queue computation for cells that have been recomputed. * src/expr.c (eval_expr): Implement the concatenation operator. 1998-08-09 Miguel de Icaza * src/expr.c (eval_expr): Implement comparission. * src/str.c (string_unref_ptr, string_unref): Remove the string from the string_hash_table when the refcount reaches zero. * src/symbol.c (symbol_unref): Remove the symbol from the hash table when the refcount reaches zero. 1998-08-07 Miguel de Icaza * src/gnumeric-sheet.c: Renamed all references to (GnumericSheet *) called "sheet" to "gsheet". * src/sheet.h: Renamed parent_workbook in to be workbook. * src/cell.h: Include a Sheet * in the cell. Make routines that required a Sheet parameter only use the Cell parameter now. * src/eval.c (add_tree_deps, cell_add_dependencies, add_value_deps, dependency_hash_init, dependency_hash, dependency_equal): New functions to maintain the DependencyRanges. * src/fn-math.c (gnumeric_max): Implemented function MAX. (gnumeric_min): Implemented function MIN. 1998-08-06 Miguel de Icaza * src/expr.c (eval_expr): Implemented exponentiation. Removed the code that used GMP. * src/parser.y (yylex): Bug fix: allocate the string. * src/sheet.c (CRowSort): Sort in the other direction my list of cells. (sheet_cell_foreach_range): Iterate over the lists with ->next, not with ->data. Important bug fix. * src/parser.y (return_cellref): Fix the cell parsing routine to store the correct information. * src/fn-math.c: Moved the math functions to this file. (gnumeric_sum): Make it use the new function_iterate_argument_values. (gnumeric_and): Implement AND function. (gnumeric_or): Implement OR function. * src/func.c (function_iterate_argument_values): New function to ease the creation of functions with multiple arguments. It generates Value * for a list of expressions that might include arrays and cell ranges. * src/expr.c (cell_get_col_row): New routine to get the absolute cordinates with respect to an evaluation column and row. * src/parser.y (return_symbol): Support for constants. * src/expr.c (value_copy_to): Support for making Value copies (only used for our constants actually). * src/symbol.c (init_constants): Declare TRUE and FALSE. * src/sheet.c (sheet_selection_changed_hook): Autocomputation routine. Whenever selection changes this routine will execute an arbitrary expression (kept in the workbook) and display the result. 1998-08-05 Miguel de Icaza * src/expr.c (value_release): Release the value. (value_release): Add support for arrays. * src/symbol.c (g_strcase_hash): Use case insensitive hash tables. * src/item-bar.c (item_bar_unrealize): Call parent unrealize (item_bar_realize): Call parent realize * src/item-grid.c (item_bar_unrealize): Call parent unrealize (item_bar_realize): Call parent realize * src/item-cursor.c (item_bar_unrealize): Call parent unrealize (item_bar_realize): Call parent realize. (item_cursor_point): Implement correctly. * src/expr.c, parser.y (eval_expr): Added comparission operators. * src/fn-sheet.c (gnumeric_if): Implemented IF function. Implemented SELECTION function. * src/func.c (gnumeric_sum): Implement SUM function. 1998-08-05 Miguel de Icaza * src/expr.c (eval_funcall): No need for the the extra argc parameter on the functions with strong prototypes. * src/func.c (gnumeric_cosh): More functions. * src/item-edit.c (item_edit_set_arg): * src/gnumeric-sheet.c (cancel_pending_input): Cancel changes made. (start_editing_at_cursor): Make a copy of the original text, and clear the actual text to fix the redraw problems. * src/item-edit.c (item_edit_set_editor): Make the cursor be in sync with the GtkEntry by hooking to the "event" signal and catching key press and key release events. * src/func.c: More functions added. * src/symbol.c (g_strcase_equal): Symbol hash table does is case-insensitive. * src/expr.c (eval_funcall): Added function evaluation. 1998-08-03 Miguel de Icaza * src/eval.c: New file. Move the evaluation routines here. * src/func.c: Functions will go here. * src/parser.y (alloc_glist): Keep track of argument lists. 1998-07-30 Federico Mena Quintero * src/sheet.c (canvas_bar_realized): * src/gnumeric-sheet.c (gnumeric_sheet_realize): Neat X hack: set the window backing pixmap to NULL, so that the window does not get cleared when it receives an exposure event. It will just leave whatever bits were on the window when the expose happened. This allows us to avoid flicker. *** MIGUEL, LOOK AT THIS *** * src/gnumeric-sheet.c (gnumeric_sheet_make_cell_visible): Fixed width/height confusion (cut&paste bug). * src/sheet.c (new_canvas_bar): Set outrageously big scrolling limits. This has to be fixed to use the real sheet's dimensions. (sheet_new): Use correct table expansion parameters. * src/sheet.c (sheet_set_zoom_factor): Use gnome_canvas_scroll_to(). * src/gnumeric-sheet.c (gnumeric_sheet_set_top_row): Scroll using gnome_canvas_scroll_to(). (gnumeric_sheet_set_top_col): Likewise. (gnumeric_sheet_make_cell_visible): Get the offsets using gnome_canvas_get_scroll_offsets(). (gnumeric_sheet_make_cell_visible): Use gnome_canvas_scroll_to(). * src/gnumeric-sheet.c (gnumeric_sheet_color_alloc): Query the colormap with gtkdget_get_colormap(), because the canvas structure no longer has a colormap field in it. (gnumeric_sheet_set_top_row): Use the canvas layout adjustment to scroll. (gnumeric_sheet_set_top_col): Use the canvas layout adjustment to scroll. (gnumeric_sheet_make_cell_visible): Get the values from the canvas adjustments. * src/sheet.c (new_canvas_bar): Call gnome_canvas_new() correctly. (scroll_to): New helper function to scroll a canvas. (sheet_set_zoom_factor): Use scroll_to(). * src/gnumeric-sheet.c (gnumeric_sheet_create): Do not call gnome_canvas_construct() at is does not exist anymore. (gnumeric_sheet_new): Use outrageously big values for the canvas scrolling region, for now. This needs to be fixed. (gnumeric_sheet_make_cell_visible): Use the canvas layout adjustment to scroll. 1998-07-30 * src/parser.y (alloc_clean): Free the record that tracks the allocation records. (alloc_clean): Handle Strings. (alloc_list_free): New function: cleans up the allocation list. * src/gnumeric-sheet.c (gnumeric_sheet_load_cell_val): Fix to use the new Strings. * src/cell.h: Use the new Strings instead of the Symbols. That was just a stupid idea. * src/str.c (string_ref): New file: Implements string sharing. * src/symbol.c (symbol_install): Use our copy of the allocated key when installing the symbol. 1998-07-29 * src/symbol.c (symbol_unref_ptr): New function that does symbol unreferencing and if the reference count reaches zero, it also sets the value pointed to NULL. * src/sheet.c (cell_set_text): Release evaluation tree after entering new contents in a cell. * src/sheet.h (Cell): We now keep all of the character information as refcounted Symbols. * src/expr.c (eval_node_release): Renamed and made static. New allocation strategy: EvalTree's top node are now refcounted to simplify cell duplication. (eval_expr): Now it takes column and row arguments for evaluating the expression in that context. (expr_parse_string): Same. * src/parser.y: Renamed EvalNode to EvalTree. (return_cellref): CellRefs now contain offsets relative to the current column/row if the references are not absolute. * src/gnumeric-sheet.c (gnumeric_sheet_make_cell_visible): Use new helper routines for doing the scrolling. Scroll vertically. (gnumeric_sheet_set_top_row, gnumeric_sheet_set_top_col): New routines for keeping the contents of the canvas and the bars in sync. (gnumeric_sheet_new): Take the ItemBars for the columns and rows as a parameter now. * src/sheet.c (sheet_select_all): New routine: select the complete spreadsheet. * src/item-bar.c (item_bar_class_init): Signal now takes an extra argument which indicates the beginning of a column selection. * src/sheet.c (sheet_selection_col_extend_to, sheet_selection_row_extend_to): New methods for implementing the extending column and row selection. (sheet_row_selection_changed, sheet_col_selection_changed): Now they use the new parameter to start the selection. 1998-07-28 * src/sheet.c (sheet_cell_new): Insert the row, not the cell in the column list. (sheet_cell_foreach_range): Fixety fix 1998-07-27 * src/sheet.c (sheet_cell_new): Cells are born with their propper width. (cell_set_text): Width should include the margins. * src/main.c (main): Rename currentWorkbook to current_workbook, so that it follows the style of the rest of my code ;-) * src/item-cursor.c (item_cursor_init): Add a timeout handler for drawing the anted animation. (item_cursor_set_bounds): Setup the Canvas Item bounding box when the bounds of the cursor change. * src/gnumeric-sheet.c (start_cell_selection): Create the selection cursor at the same position the regular cursor is. (gnumeric_sheet_init): Share colors between items and the canvas. Sun Jul 26 17:39:53 EDT 1998 Daniel Veillard * configure.in: added GNOME_XML_CHECK * src/Makefile.am: added xml-io.c to GNUMERIC_BASE_SOURCES and GNOME_XML_LIB to gnumeric_LDADD and test_parser_LDADD * src/xml-io.[ch]: Added, provides saving to XML format * src/main.c: added currentWorkbook global variable * sheet.h: added currentWorkbook global variable * workbook.c: added currentWorkbook global variable, a Save menu with save_cmd callback. * src/sheet.c: cell_set_text, initialized is_float to zero * doc/saving.txt: Added, what to be saved and first example. 1998-07-25 Miguel de Icaza * src/item-cursor.c (item_cursor_draw): Minimal code to support the anted-cursor. There is a bug, I just dont know where :-) * src/gnumeric-sheet.c (gnumeric_sheet_key): Added support for selecting cell values with the cursor keys. (start_cell_selection): Starts the interactive selection of a cell (stop_cell_selection): Stops the interactive selection of a cell. (selection_remove_selection_string): Removes the text that has been inserted into the text line for selection purposes. (selection_insert_selection_string): Updates the entry with the contents of the selection range. (selection_expand_vertical, selection_expand_horizontal): Expands the selection. * src/item-cursor.h (item_cursor_set_bounds): Change prototype to reflect actual argument names. I was a victim of my own lazyness. * src/gnumeric-sheet.c (move_cursor_vertical, move_cursor, move_cursor_horizontal): Renamed to allow formatting in 80 columns. * src/utils.c (cell_name): New routine. Renders a cell name. * src/sheet.h (IS_SHEET): Added a signature to Sheet strucutres and a signature to test with. * src/symbol.c (symbol_ref_string): New function: it makes sure a symbol exists: it either increases the refcount for an existing string, or creates it. 1998-07-24 Miguel de Icaza * src/workbook.c (workbook_get_current_sheet): New function. * src/sheet.c (cell_set_formula): New function. Loads a cell with a formula. * src/parser.y (eval_value_string): New routine to return a string representation of a Value *. This should use the format.c that Chris is working on, but we need Chris to commit his changes ;-). For now it uses %d and %g. * src/numbers.h: Compatibility functions to make the code work with or without GMP. * src/gnumeric-sheet.c (gnumeric_sheet_set_current_value): Sets the value to whatever happens to be on the input line. * src/expr.c (eval_cast_to_float): New function: casts a value to float. (eval_cell_value): new function. (eval_node_value): evaluates the expression tree. * src/cell.h: Keep the computed value as well. Sat Jul 25 14:10:23 1998 Tom Tromey * src/Makefile.am (test_parser_LDADD): Added INTLLIBS. (test_format_LDADD): Likewise. (check_PROGRAMS): Renamed from noinst_PROGRAMS. * src/format.c (do_roundup): Renamed from roundup (my Linux install has a 2-argument `roundup' macro in sys/types.h). Now static. 1998-07-25 Nuno Ferreira * configure.in (ALL_LINGUAS): Added "pt". 1998-07-21 Miguel de Icaza * src/parser.y (yylex): Numbers are parsed correctly. Bits of Oleo number parsing plugged in. * src/util.c, src/util.h: New files with assorted number utilities. * src/numbers.h: New file: takes care of using gmp or regular double/int. * src/expr.c (eval_release_node): Implement. (eval_release_value): New function. * src/sheet.c (sheet_col_selection_changed, sheet_row_selection_changed): Implement. (sheet_selection_clear, sheet_selection_clear_only): Splitted functionality into two routines. (sheet_selection_clear_only): Remove any marks from the bars. (sheet_row_set_selection, sheet_col_set_selection): Implement. * src/item-bar.c (is_pointer_on_division): Return the column changed. * src/item-grid.c (item_grid_draw_cell): Fix the computation for right indentation. 1998-07-17 Miguel de Icaza * src/gnumeric-sheet.c (gnumeric_sheet_key): Add support for keyboard-selection. * src/item-edit.c (item_edit_destroy): Request a repaint for every area we touched at destruction time. * src/sheet.c (sheet_redraw_cell_region, sheet_redraw_selection): New functions to request that only a specific range of cells be redrawn. (sheet_selection_extend_vertical, sheet_selection_extend_horizontal): new routines to deal with mouse selection. Use those functions all over sheet.c 1998-07-19 Federico Mena Quintero * src/gnumeric-sheet.c src/item-bar.c src/sheet.c: Removed the canvas parameter from calls to gnome_canvas_item_new(). 1998-07-18 Raja R Harinath * src/Makefile.am (noinst_PROGRAMS): Don't bother installing `test-format' and `test-token'. 1998-07-15 Miguel de Icaza * src/gnumeric-sheet.c (gnumeric_sheet_cursor_set): Add tracking. * src/sheet.c (sheet_destroy): Add destructor. (sheet_selection_append): New functions for managing the cell selection. * src/style.c (style_destroy): Add destructor. 1998-07-13 Miguel de Icaza * src/item-edit.c: New file. Adds the editing widget to the spreadsheet. 1998-07-15 Federico Mena Quintero * src/item-bar.c (item_bar_event): Use gnome_canvas_item_grab/ungrab() now that they exist. 1998-07-14 Federico Mena Quintero * src/item-bar.c (item_bar_realize): Set the item_bar->gc's foreground color to black (it is by default initialized to pixel value 0, which is not black on all default colormaps). (bar_draw_cell): Center the cell's text correctly. * src/gnumeric-sheet.c (gnumeric_sheet_create): Use gnome_canvas_construct() to initialize the canvas. * src/item-bar.c (get_col_name): Fixed generation of column names. (get_row_name): Rows are numbered from 1, not 0. Also, assert that the row number is less than 65536. (item_bar_event): Grab/ungrab the mouse on button press/release. (item_bar_event): On motion_notify, only call set_cursor() if we are not resizing. (item_bar_event): Only take care of enter_notify events if we are not resizing. * po/es.po configure.in: Added Spanish translation. 1998-07-12 Miguel de Icaza * src/item-bar.c (item_bar_event): Do world->canvas cordinate conversion to get zoomed resizng working). (bar_draw_cell): Minor look fix. * src/sheet.c (sheet_row_set_height): Silly mistake, add the newly created rowinfo to the row array, not the column array. 1998-07-11 Miguel de Icaza * src/style.c (style_duplicate): New function. Does style duplication. * src/sheet.c (sheet_new): Simple hook signals to test the code. * src/item-bar.c (item_bar_class_init): Added signals: size_changed and selection_changed. (item_bar_event): Add support for resizing columns and rows. 1998-07-10 Miguel de Icaza * src/style.c: New file. Implement the style manager for the spreadsheet. 1998-07-09 Miguel de Icaza * src/*: Dropped the ColInfo and RowInfo structures, they are now unified into a single ColRowInfo structure, they were really the same thing. Thanks to Federico for the suggestion. * src/item-grid.c: New paint strategy for the grid (uses what apparently Excel does); It now correctly uses the coordinate system from the canvas (ie, zoom in and zoom out work); * src/item-cursor.c: Implemented new version of the cursor. I am using black lines for the cursor. One day, when I find the strenght, I will use inversion and the inversion will do the right thing. * src/item-bar.c: New file. Implements the titles for the columns and rows; * src/*: made stuff fit together. 1998-07-06 Raja R Harinath * configure.in: Remove duplicated AM_GNU_GETTEXT. Sat Jul 4 15:07:49 PDT 1998 Manish Singh * fixed up intl autoconf stuff 1998-07-04 Chris Lahey * src/Makefile.am (bin_PROGRAMS): Added test-format to compile the formatting tests. * src/format.c (format_time): Added date formatting. (format_text): More accurate numeric formatting. 1998-07-03 Chris Lahey * src/format.c: New file to do excel style number formatting. 1998-07-03 Chris Lahey * ChangeLog: Cleared the gnome-games entries from the ChangeLog.