1998-09-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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  <harinath@cs.umn.edu>

	* src/parser.y (dump_tree): Update to change in `expr.h'.
	s/OP_/OPER_/g.

1998-09-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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 <adrian@gimp.org>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <harinath@cs.umn.edu>

	* 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 <adrian@gimp.org>

	* 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 <adrian@gimp.org>
 
	* 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  <miguel@nuclecu.unam.mx>

	* 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 <adrian@gimp.org>

	* 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  <miguel@nuclecu.unam.mx>

	* 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 <adrian@gimp.org>

	* 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 <adrian@gimp.org>

	* 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  <miguel@nuclecu.unam.mx>

	* 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 <Daniel.Veillard@w3.org>

	* src/xml-io.c: moved to a per-XML file compression interface.

1998-09-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* src/item-cursor.c (item_cursor_draw): Make the anted selection
	one pixel wider.

1998-09-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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  <hestgray@ionet.net>

	* src/style.c: fixed hyphen vs hypen typo.
	
Wed, 23 Sep 1998 12:52:20 +0200 Paolo Molaro <lupus@debian.org>

	* src/format.c: added #include <locale.h>

	* src/pixmaps: added bold.xpm: this is from gwp, maybe
	we need a better one:-)

1998-09-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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 <Daniel.Veillard@w3.org>

	* src/xml-io.c: set-up for compression of output. Should be tunable
	  from the interface.

1998-09-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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 <adrian@gimp.org>

	*src/fn-math.c: firat stab at fleshing out the help 
	blurbs here.
	
1998-09-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <tdyas@vger.rutgers.edu>

	* 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  <miguel@nuclecu.unam.mx>

	* 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 <Daniel.Veillard@w3.org>

	* src/xml-io.c: started working on object saving/loading.

1998-09-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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  <tdyas@vger.rutgers.edu>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* src/cell.c (cell_draw): Fix center alignment code.

1998-09-10  Tom Dyas <tdyas@vger.rutgers.edu>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <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.
	
1998-09-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <ttarrant@etnoteam.it>

	* configure.in: Included it in ALL_LINGUAS

1998-09-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <ttarrant@etnoteam.it>

	* 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  <miguel@nuclecu.unam.mx>

	* 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 <Daniel.Veillard@w3.org>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <clahey@umich.edu>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <clahey@jennifer.reshall.umich.edu>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <clahey@umich.edu>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* src/item-grid.c (item_grid_event): Implemented context sensitive
	menu for the grid.
	(item_grid_event): Use <control> instead of <shift> for extending
	a selection

	* src/clipboard.c (clipboard_paste_region): After pasting, trigger
	a recalculation. 

1998-08-14  Jaka Mocnik  <jaka.mocnik@kiss.uni-lj.si>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <tromey@cygnus.com>

	* src/xml-io.c: Look in gnome-xml for tree.h and parser.h.

Thu Aug 13 00:02:23 EDT 1998  Daniel Veillard <Daniel.Veillard@w3.org>

	* src/xml-io.c : adapated to the new version 0.2 of the xml lib
	
1998-08-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <federico@nuclecu.unam.mx>

	* 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    <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.

1998-07-28    <miguel@nuclecu.unam.mx>

	* 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    <miguel@nuclecu.unam.mx>

	* 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 <Daniel.Veillard@w3.org>

	* 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  <miguel@redhat.com>

	* 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 <miguel@redhat.com>

	* 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  <tromey@cygnus.com>

	* 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  <nmrf@rnl.ist.utl.pt>

	* configure.in (ALL_LINGUAS): Added "pt".

1998-07-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <federico@nuclecu.unam.mx>

	* 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  <harinath@cs.umn.edu>

	* src/Makefile.am (noinst_PROGRAMS): Don't bother installing
	`test-format' and `test-token'.

1998-07-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* src/item-edit.c: New file.  Adds the editing widget to the
	spreadsheet. 

1998-07-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* src/item-bar.c (item_bar_event): Use
	gnome_canvas_item_grab/ungrab() now that they exist.

1998-07-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* 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  <miguel@nuclecu.unam.mx>

	* src/style.c: New file.  Implement the style manager for the
	spreadsheet. 

1998-07-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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  <harinath@cs.umn.edu>

	* configure.in: Remove duplicated AM_GNU_GETTEXT.

Sat Jul  4 15:07:49 PDT 1998 Manish Singh <yosh@gimp.org>

	* fixed up intl autoconf stuff

1998-07-04  Chris Lahey  <clahey@umich.edu>

	* 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  <clahey@umich.edu>

	* src/format.c: New file to do excel style number formatting.

1998-07-03  Chris Lahey  <clahey@umich.edu>

	* ChangeLog: Cleared the gnome-games entries from the ChangeLog.

