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 seperate 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 Wellinder * 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 unneccesary. * 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 can not 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.