1. 26 Jun, 1999 1 commit
    • Miguel de Icaza's avatar
      The big GNUMERIC_PRINT merge into HEAD. · a5e65a30
      Miguel de Icaza authored
      
      
      The big GNUMERIC_PRINT merge into HEAD.
      
      Still some features are missing.  Check the TODO to see what is
      missing.
      
      1999-06-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      
      	* src/pixmaps.h: Removed unused pixmaps.
      
      	* src/corba-sheet.c (Sheet_corba_class_init): Fill in some missing
      	values fomr the GNOME::Gnumeric::Sheet epv interface.
      
      	* src/expr.c (eval_funcall): Removed unused variable.
      
      	* src/workbook.c (workbook_sheets): prepend and reverse instead of
      	appending all the time.  It is more efficient.
      
      	* src/style.c (x11_font_compute_hints): Renamed as well.  Might be
      	useful in the future.
      
      	* src/gnumeric-util.c (x11_font_get_italic_name,
      	x11_font_get_bold_name, x11_font_change_component): Renamed these
      	functions to reflect their actual usage.
      
      	* src/expr.c (expr_tree_new_constant): Change style to use early
      	return to keep indentation of the rest of the code at tab-1.  This
      	is a trick to keep indentation nice with 8-tab spaces.  Liberal
      	use of early returns, early continues, early breaks.
      
      	* src/cell.h (CELL_TEXT_GET): Kill unused macro.
      
      1999-06-25  Miguel de Icaza  <miguel@gnu.org>
      
      	* src/xml-io.c (xml_read_cell): Merge the style we just read with
      	the existing information from the cell (which are the defaults).
      	This is only for compatibility with the old format
      
      1999-06-24  Miguel de Icaza  <miguel@gnu.org>
      
      	* src/xml-io.c (style_font_new_from_x11): Implemented
      
      	* src/style.c (style_font_new): Improved matching of the font.
      
      	* src/xml-io.c 	(xml_write_style): Save Bold and Italic
      	properties.  Save Units as double.
      	(xml_read_style): Add conversion hook from old format.
      	(xml_read_style): Load properly italic and bold properties.
      
      	(xml_read_cell): Add new style reading code.  It is
      	compatible with the old Style reading code.
      	(xml_read_rows_info, xml_read_cols_info, xml_read_styles): Moved
      	Cols, Rows and Styles loading code here, for code clarity.
      
      	* src/style.c (style_font_new_simple): Include the scale in the
      	key lookup variable.
      
      	* src/xml-io.c: The FontDefs and the HREFs to the fonts were never
      	being used.  The new code for styles simplifies this.  Kill all
      	the references to the FontDefs urls and the font indeces.
      
      	* src/xml-io.c
      
      1999-06-23  Miguel de Icaza  <miguel@gnu.org>
      
      	* src/xml-io.c: Major updates.
      	(xml_read_colrow_info): Use floating point for loading the
      	units, margin_a and margin_b.
      	(xml_write_colrow_info): Save units, margin_a and margin_b using
      	floating point.
      	(xml_set_value_double): Activate this function.
      	(xml_write_cell): Do not save the style here.  Lookup the style
      	id, and write a record with the style id link.
      	(xml_sheet_write): Add call to xml_cell_styles_init and
      	xml_cell_styles_shutdown to init and shutdown the cell styles in a
      	per-sheet basis.
      
      	Renamed functions to suit the gnumeric coding
      	sytle.  Fixed indentation.
      
      	File format now saves a different version.  We store all cell
      	styles first, and then we reference them.
      
      	(parse_xml_context_t): renamed from
      	parseXmlContext.  Add style_table hash table for storing all the
      	styles used by the cells on a workbook.  Used to dump Styles first
      	and then have the cells reference it.
      
      	* src/style.c (style_hash, style_compare): New routines to
      	put Styles on hash tables.
      
      	* src/workbook.c (workbook_sheets): Use g_list_prepend instead of
      	g_list_append and reverse the result.
      
      1999-06-14  Miguel de Icaza  <miguel@gnu.org>
      
      	* src/cell.h: Killed ColType and RowType definitions.  They do not
      	save any noticeable amount of memory; we are not using them but
      	on the most useless places and finally they are the current limit
      	to our spreadsheet size.
      
      	* src/gnumeric-sheet.h: Use int instead of ColType, RowType
      	* src/item-cursor.h: Use int instead of ColType, RowType
      	* src/item-grid.h: Use int instead of ColType, RowType
      
      	* src/print-cell.c (CELL_DIM): Use _pt variants of the margins here.
      	(print_cell_text): and here.
      	(print_cell): and here.
      	(print_cell_range): and here.
      	(print_cell_grid): and here.
      
      1999-06-13  Miguel de Icaza  <miguel@gnu.org>
      
      	* src/sheet.c (sheet_compute_col_row_new_size): Update margin_a
      	and margin_b from the points.
      	(col_row_info_init): New function to initialize a sample
      	ColRowInfo.  Inits the _pt fields.
      	(col_row_unit_distance): Use the new fields in computation.
      	(sheet_col_get_unit_distance): Use new fields in computation.
      
      	* src/dialog-printer-setup.c (do_setup_margin): Set scroll region.
      	(preview_page_create): Implement routine that draws the page for
      	the margin setup.
      
      	* src/sheet.h (ColRowInfo): Units are now doubles; margin_a_pt and
      	margin_b_pt are doubles that represent the a and b margins in
      	points.
      
      	* src/sheet.c (sheet_compute_col_row_new_size): Use the
      
      1999-06-11  Miguel de Icaza  <miguel@gnu.org>
      
      	* src/cell-draw.c (cell_draw): Move the foreground setting routine
      	here and handle single-line and multiline coloring properly.
      
      	* src/print-info.c (unit_name_to_unit): New routine, returns the
      	UniName from the string name.
      
      	* src/dialog-printer-setup.c (dialog_printer_setup): Use
      	print_info_save and kill the do_save_settings routine for the
      	cleaner print_info routine.
      
      	* src/print-info.c (print_info_new): Now loads the default
      	settings from the saved configuration.
      	(print_info_save): Saves the print information to the gnome_config.
      
      1999-06-08  Miguel de Icaza  <miguel@gnu.org>
      
      	* src/utils.c (str_trim_spaces): Moved str_trim_spaces ere.
      
      	* src/dialog-printer-setup.c (do_setup_main_dialog): Connect print
      	buttons.
      
      	* src/print-cell.c (print_cell_grid): Simplify routine.
      
      	* src/sheet.c (sheet_row_get_unit_distance,
      	sheet_col_get_unit_distance): Include  margins in computation.
      	This is broken, as the margins are now pixels, and they should be
      	made points.
      
      	* src/dialog-printer-setup.c (do_fetch_page_info): Fetch other values.
      	(do_save_settings): Saves the configuration.
      
      	* src/print-cell.c (print_border): Implement border drawing.
      	(print_cell_grid): Make this work as it should.
      
      	* src/print.c (compute_groups): Handle the case where the contents
      	fit entirely in one page.
      
      1999-06-07  Miguel de Icaza  <miguel@gnu.org>
      
      	* src/print.c: New file.  Implements high-level printing.
      
      	* src/dialog-printer-setup.c: New file.  Implements the "Print
      	Setup" dialog box.
      
      1999-04-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      
      	* src/cell-draw.c: New file.  All of the cell screen drawing code
      	has been moved here now.
      
      	* src/print-cell.c: Enhanced code.
      
      	* src/workbook.c: hardcoded page size for testing purposes.
      
      1999-03-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      
      	I do not like the current approach.  I do think that StyleFonts
      	should be static with regard to Zoom.
      
      	And we would keep a cache of X fonts that are used for a
      	particular size.
      
      	* src/style.c (style_font_new_from): New routine that creates a
      	new font.
      
      	* src/sheet.c (sheet_set_zoom_factor): Scale fonts used in the
      	Sheet.
      
      1999-02-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      
      	* src/dialog-printer-setup.c: New file.  Implements the workbook
      	page configuration dialog box.
      
      	* src/print-info.c, src/print-info.h: Manages the per-worbook
      	print options.
      
      1999-02-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      
      	* src/style.c (font_equal): Adapt function to the new StyleFont.
      	(style_font_new, style_font_new_simple): Adapt for the upcoming
      	gnome-print support.
      	(font_init): Adapt.
      
      	* src/xml-io.c: Use Gnome Print font scheme.
      	* src/workbook.c: ditto.
      	* src/cell.c: ditto.
      	* src/item-bar.c, src/item-edit.c: ditto
      
      	* src/dialog-cell-format.c: Disable font selector for now.
      a5e65a30
  2. 30 Apr, 1999 1 commit
  3. 03 Dec, 1998 1 commit
    • Miguel de Icaza's avatar
      New functions to set the sheet top column and row respectively. · 63064dec
      Miguel de Icaza authored
      1998-12-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      
      	* 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.
      63064dec
  4. 13 Oct, 1998 1 commit
    • Miguel de Icaza's avatar
      It is amazing the number of times I duplicated this code. I wonder if I · cd222d42
      Miguel de Icaza authored
      1998-10-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      
      	* 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  <miguel@nuclecu.unam.mx>
      
      	* 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  <miguel@nuclecu.unam.mx>
      
      	* src/utils.c (cellref_name): Fixed another of column name
      	decoding.  I wonder when I will learn.
      cd222d42
  5. 02 Oct, 1998 1 commit
    • Miguel de Icaza's avatar
      Removed unused variables · e5d027e2
      Miguel de Icaza authored
      1998-10-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      
      	* 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 <terra@diku.dk>
      e5d027e2
  6. 01 Oct, 1998 1 commit
  7. 11 Sep, 1998 1 commit
  8. 07 Sep, 1998 1 commit
    • Miguel de Icaza's avatar
      Color style is now a single color · c15908cc
      Miguel de Icaza authored
      1998-09-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      
      	* src/style.h: Color style is now a single color
      
      1998-09-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      
      	* 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.
      c15908cc
  9. 03 Sep, 1998 1 commit
  10. 28 Aug, 1998 1 commit
    • Arturo Espinosa's avatar
      Today: · ed3cc889
      Arturo Espinosa authored
      
      
      Today:
      
         Gnumeric had a big design problem:  It did not support
         multiple vies of the same sheet, this has been now fixes.
      
         Huge changes to adapt to the new SheetView object that is
         a per-view object.
      
         Some things might be a little broken due to these changes.
      
      miguel.
      ed3cc889
  11. 21 Aug, 1998 1 commit
    • Arturo Espinosa's avatar
      Format fixes · 4ee2ee43
      Arturo Espinosa authored
      
      
      Format fixes
      
      Paste works just like Excel now.  Dragging a selection
      moves the cursor and the selection properly.
      
      Move the paste-special dialog box to its own file.
      
      Other misc fixes.
      
      Miguel.
      4ee2ee43
  12. 14 Aug, 1998 1 commit
  13. 08 Aug, 1998 1 commit
    • Arturo Espinosa's avatar
      It autocalcs! · d2c3b2ba
      Arturo Espinosa authored
      
      
      It autocalcs!
      
      My technique is incredibly cool!  The engine should support
      most excel features for recursive computations (we just need
      the dialog boxes now).
      
      It still has a wierdo crash from a mismatched string ref/unref
      but that is going to be trivial to fix.
      
      Next step:  Functions in Perl.
      d2c3b2ba
  14. 05 Aug, 1998 1 commit
  15. 30 Jul, 1998 1 commit
    • 0's avatar
      Free the record that tracks the allocation records. (alloc_clean): Handle · 69def31c
      0 authored
      1998-07-30    <miguel@nuclecu.unam.mx>
      
      	* 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    <miguel@nuclecu.unam.mx>
      
      	* 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.
      69def31c
  16. 28 Jul, 1998 1 commit
  17. 27 Jul, 1998 1 commit
    • Miguel de Icaza's avatar
      Rename currentWorkbook to current_workbook, so that it follows the style · 474c8eaa
      Miguel de Icaza authored
      
      1998-07-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      
      	* 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.
      474c8eaa
  18. 25 Jul, 1998 1 commit
    • Arturo Espinosa's avatar
      Weee! Regular strings are now treated as values (so they can be used in · a30e70c3
      Arturo Espinosa authored
      
      
      Weee!  Regular strings are now treated as values (so they
      can be used in cell expressions).  This means you can actually
      start typing expressions and they will actually make sense
      (note that no recalc is yet supported).
      
      The code to do interactive selections is there, but for some
      reason the cursor is not paying much attention to me.
      
      This feature lets you select a cell for an expression if you
      type in a formula in the spreadsheet (just type '=' and use
      the arrow keys to see my buggy code).
      a30e70c3
  19. 24 Jul, 1998 1 commit
  20. 18 Jul, 1998 1 commit
  21. 17 Jul, 1998 1 commit
  22. 16 Jul, 1998 1 commit
    • Arturo Espinosa's avatar
      Today: 1. First pass at selections (multiple selections are allowed). 2. · 9b935b6c
      Arturo Espinosa authored
      
      
      Today:
      	1. First pass at selections (multiple selections are allowed).
      	2. Cursor selection works.  Do not try to drag outside the
      	   window though, there is a little bug to be fixed and it will
      	   keep a pointer grab.
      	3. Started to add destructors all over the place, better to
      	   keep an eye on those memory leaks since the beginning.
      
      Miguel.
      9b935b6c
  23. 14 Jul, 1998 2 commits
  24. 09 Jul, 1998 1 commit
    • Arturo Espinosa's avatar
      Total excitement! (take two, as the previous ChangeLog message was · 2d356b1d
      Arturo Espinosa authored
      
      
      Total excitement! (take two, as the previous ChangeLog message was
      discarded because someone commited before me).
      
      Cool stuff today: we got the columns and rows displayed, with nice
      cursor change working; New canvas paint item strategy works very
      nicely (much better than the previous stuff); got a region-cursor
      working with various of selection modes (still have to figure out how
      to draw selected stuff though); basic cursor movement works for now;
      sample demo of the toy is included.
      
      Miguel.
      2d356b1d
  25. 08 Jul, 1998 1 commit
    • Arturo Espinosa's avatar
      Ok, the fact that life sucks manifests itself in various ways. · da196d41
      Arturo Espinosa authored
      
      
      Ok, the fact that life sucks manifests itself in various ways.
      
      First of all GDK_INVERT and GDK_XOR gc functions do not do
      what you want them to do, but what they are supposed to do, so
      my cursor instead of being a nice black and firm box, is just
      a pinkie thingie on my Indy.
      
      Second, I got all of the grid draw logic wrong.  That is not
      the way Excel does it, so tomorrow, I rewrite it.
      
      Miguel.
      da196d41
  26. 05 Jul, 1998 1 commit
  27. 02 Jul, 1998 2 commits