1999-12-31  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* Code cleanup with -Wall. Deleted unused variables. Added missing
 	#include's and missing function declarations.

	* src/engine/QIFIO.c (FavorDateType): Christopher Browne's QIF
 	import patch.

	* configure.in: Albert Chin-A-Young's patch to configure.in for
 	perl config.

	* src/MultiLedger.c: nix xaccRegisterCountHack.
	It is no longer needed.

	* Docs/En/xacc-about.html: added contributors.

	* make-gnucash-patch: new script. Make a patch for submission.

	* README: added contributors. Added sections on gnucash
	development and submitting patches.

1999-12-30  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/SplitLedger.c (xaccSRGetCurrentTrans): Fix error messages.

1999-12-29  Peter Pointner  <peter@wuzel.m.isar.de>

	* src/motif/FileBox.c (closeBoxCB): reset fileName only if !done.
	  This fixes the FileBox problems with lesstiff 0.89.1, at least
	  for me.

	* configure.in: change CPPFLAGS used to search for gtk-xmhtml  

1999-12-26  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/window-report.c (reportWindow): Add a properties
 	button to the html window icon bar to allow the report parameters
 	dialog to be brought up.
	(reportWindow): Add a title to the properties dialog.

	* src/gnome/window-html.c (htmlWindow): Add arguments to allow the
 	caller to add its own icons to the window.

1999-12-25  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/global-options.c (gnc_show_options_dialog): Added
 	title.

	* src/gnome/window-main.c: removed eperl reports menu items

	* src/gnome/window-report.c: new file. Report-specific gnome
	gui code will reside here.

1999-12-24  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/window-html.c: take out help and report specific code.

	* src/gnome/dialog-options.c: removed global options code.
	These routines now with with arbitrary options databases.

	* src/gnome/global-options.c: new function. global options are
 	implemented here. This uses dialog-options and option-util
 	functions.

	* src/gnome/option-util.c: removed global options code.

	* src/gnome/window-register.c (gnc_build_ledger_style_menu): set
 	the style menu to the default on creation.

1999-12-23  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/account-tree.c (gnc_account_tree_refresh): thaw after
 	all changes.

1999-12-22  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/option-util.c: many new functions. Rewrote this to
	add the concept of option databases, a data structure which holds
	a collection of options and allows access to them. This will be
	used to hold, e.g., options for a report window. The old functions
	now just call the new ones with the 'global' configuation option
	database as the database argument.

	* src/gnome/dialog-report.c: Rename dialog-trans-report.? to
	dialog-report.?. This will construct a generic report dialog.

1999-12-21  Robert Graham Merkel  <rgmerk@mira.net>

	* src/gnome/dialog-trans-report.c: New file.  GNOME code for
 	creating a dialog box for information on the transaction report.
  	At the moment only contains a stub for the actual dialog box code.

	* src/gnome/dialog-trans-report.h: New file.  Headers for 
	 the dialog box stuff, obviously!

	* src/gnome/Makefile.in: modified to compile dialog-trans-report.c

1999-12-21  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/window-reconcile.c: enhance this window with
	new, edit, and delete transaction buttons.

1999-12-20  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-sheet.c
 	(gnucash_sheet_size_allocate): Configure the item_editor on a
 	resize.

	* src/register/gnome/gnucash-cursor.c
 	(gnucash_cursor_get_pixel_coords): Don't use the horizontal scroll
 	offset.

	* src/register/gnome/gnucash-item-edit.c
 	(item_edit_get_pixel_coords): Ditto.

	* src/register/gnome/gnucash-item-list.c (gnc_item_list_new): Set
 	the "x" coordinate on creation.

1999-12-20  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/window-register.c (regWindowLedger): get the default
	register type guile option to set the register style.
	(regRefresh): set the toolbar button display based on the guile
	option value.

1999-12-19  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/MultiLedger.c (xaccRegisterRefreshAllGUI): new function.
	call gui refresh on all registers.

	* src/MultiLedger.h: remove unecessary externs.

1999-12-19  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-sheet.c
 	(gnucash_sheet_update_adjustments): Update the horizontal
 	adjustments, too.
	(gnucash_register_new): Attach the horizontal scrollbar to the
 	horizontal adjustment.

	* src/register/gnome/gnucash-header.c (gnucash_header_set_arg):
 	Hook up the hadjustment from the sheet so that they scroll
 	horizontally together.

1999-12-19  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/engine/util.c: applied Grant Likely's patch to the number
	formatting routines.

	* src/register/splitreg.c: applied Grant Likely's patch to make
 	stock register have 4 decimal places of accuracy.

	* Applied Christopher Brown's html and QIFIO.c patch.

1999-12-19  Robert Graham Merkel  <rgmerk@mira.net>

	* src/src/report/transaction-report.scm: New file. Will contain
 	code for doing a transaction report on an account. At this stage
 	all it does is display unformatted raw scheme lists.
 	
	* README.guile-hackers: Added general information about Scheme and
 	a pointer to net resources about it. Also explained a little
 	about g-wrap and gave a pointer to the documentation for it.

1999-12-18  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-header.c
 	(gnucash_header_reconfigure): Don't set the width of the widget,
 	let it find it's own width.

	* src/register/gnome/gnucash-style.c
 	(gnucash_sheet_style_set_dimensions): Reworked extensively.  It
 	now tries very hard to fit the cursors in the register window.
  	Supports a number of layout options for the cursors, as detailed
 	in the source.

1999-12-18  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/window-register.c (gnc_register_create_tool_bar):
 	Don't cause a legister refresh.

1999-12-17  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/dialog-edit.c (gnc_ui_EditAccWindow_ok_cb): refresh
 	all the registers.

	* src/gnome/dialog-add.c (gnc_ui_accWindow_create_account):
 	refresh all the registers.

	* src/gnome/window-register.c (regRefresh): reload the transfer
 	cells.

	* src/SplitLedger.c (xaccSRLoadXferCells): new function. Load the
	transfer cells in a split register.

	* src/register/gnome/combocell-gnome.c (xaccClearComboCellMenu):
 	new function. clear all items in the combocell menu.

1999-12-16  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/table-allgui.c (gnc_table_traverse_update): Use the
	exit flags from the cellblock to decide how to set
	exit_register, and don't change entries in the traverse arrays
	to positive.

	* src/register/splitreg.c (configTraverse): Mark all the exit rows
	and columns, too.

	* src/register/cellblock.h: Add variables to the CellBlock struct
	that flag the exit cells.  We can't use negative entries in the
	traverse arrays anymore, since left traverses sometimes need
	valid negative directions.

1999-12-16  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/register/pricecell.c (xaccPriceCellPrintValue): new
 	function.  return a pointer to a static string buffer with the
	cell amount printed.
	(xaccSetPriceCellValue): simplify with above function.
	(PriceLeave): new leave callback for price cells. Pretty-prints
	cell value using xaccPriceCellPrintValue.

	* src/register/gnome/gnucash-sheet.c (gnucash_sheet_cursor_move):
 	have this function take physical instead of virtual coordinates.
  	This function now 'does the move' using wrapVerifyCursorPosition.
	It has smarts that were in the three functions below.
	It returns TRUE if the current cell changed.
	(gnucash_button_press_event): simplify
	(gnucash_sheet_key_press_event): simplify
	(gnucash_sheet_goto_virt_row_col): simplify

1999-12-15  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/register/table-allgui.c (gnc_table_traverse_update): take
 	out the reverify fields. These are unnecessary for the auto modes
 	(at least for gnome) and complicate the leave semantics.

	* src/SplitLedger.c (xaccSRGetCurrentTrans): use the register
 	physical row and not the table. needed for auto mode movement.

	* src/register/table-allgui.c (gnc_table_leave_update): do the
 	wrapverify after we check for changes. I'm not sure if wrapverify
 	could change the outcome of this, but doing the check after the
 	wrap verify makes no sense since the row and col values aren't
 	meaningful anymore.

	* src/register/gnome/gnucash-sheet.c
 	(gnucash_sheet_deactivate_cursor_cell): always call the leave
 	update, even for "bad" locations. We need the wrap verify that
 	happens in the gnc_table_leave_update.

1999-12-15  Robert Graham Merkel  <rgmerk@mira.net>

	* src/gnome/dialog-add.c (xaccSetDefaultNewaccountCurrency): Added
 	an interface to set the default currency for new accounts.

	* src/scm/prefs.scm (gnc:make-string-option) added a new option
 	generator for strings, used this to add a "default new account
 	currency" option

	* src/gnome/top-level.c (gnc_configure_newacc_currency_cb)
 	callback to update the default currency when options are changed
	(default_configure_newacc_currency) does the work of updating
	(gnucash_ui_init) registered the new callback

1999-12-14  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/register/table-allgui.c (gnc_table_traverse_update): a fix
 	for the auto modes.

	* src/SplitLedger.c (xaccSRCountRows): Look for the cursor
 	position using the transaction, as well as the split. Useful when
 	changing modes when you are on a blank split in multi-line.
	(xaccSRGetCurrentTrans): new function. Gets current transaction.
  	Works when you are on blank splits as well.
	(LedgerTraverse): save the old register values and then restore
 	them.

1999-12-13  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/register/gnome/gnucash-header.c
 	(gnucash_header_reconfigure): check for a valid header row before
 	proceeding.

1999-12-13  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-cursor.c (gnucash_cursor_set): Set
 	the type and row arguments in the header.

	* src/register/gnome/gnucash-header.c (gnucash_header_draw): Tweak
 	the coords on the separator line a bit.  Draw the header based on
 	header->type and header->row.
	(gnucash_header_set_arg): Add two new arguments to support setting
 	the type of the header from the current cursor and the row within
 	the cursor to draw.

	* src/register/gnome/gnucash-style.c
 	(gnucash_sheet_style_compile): Set the header font.

1999-12-13  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/option-util.c (gnc_lookup_multichoice_option): Rob
 	Merkel's patch.

	* src/engine/date.c (printDate): Rob Merkel's patch to i18n date
 	formats.

	* src/gnome/top-level.c (gnc_configure_date_format): Rob Merkel's
	patch to i18n date formats.

1999-12-12  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/table-allgui.c (gnc_table_traverse_update): Put an
 	assert(0) in the default case, since now we handle all possible
 	cases.

	* src/register/gnome/gnucash-sheet.c
 	(gnucash_sheet_key_press_event): Remove hack to wrap around when
 	moving the cursor.  splitreg.c takes care of this, after a
 	fashion.

1999-12-12  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/register/gnome/combocell-gnome.c (disconnect_list_signals):
 	if the list has been destroyed, don't bother.
	(connect_list_signals): ditto.

1999-12-10  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/splitreg.c (configTraverse): Configure left
 	traverses, too.

	* src/register/cellblock.[c,h] (xaccInitCellBlock): Allocate left
 	traverse matrices.
 	(FreeCellBlockMem): Free left traverse matrices.
 	(xaccNextLeft): New function.

	* src/register/table-allgui.c (gnc_table_traverse_update): Add
 	support for left traverses.

1999-12-10  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/window-register.c (jump_cb): new callback. Used to
 	jump to 'other' account.

	* src/gnome/option-util.c: modify multichoice
 	functions. multichoice options are now a list of vectors,
	where each vector contains the value, name, and description.

	* src/gnome/dialog-options.c (gnc_option_set_ui_widget): Rob
 	Merkel's patch to add the option name to a multichoice option.

1999-12-09  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/dialog-utils.c (gnc_build_option_menu): change this
 	function so that the callback includes the index of the selection
 	as well as the user_data.

	* src/gnome/option-util.c
 	(gnc_option_value_num_permissible_values): new function. return #
 	of permissible values.
	(gnc_option_value_permissible_value_index): new function. search
 	for SCM value in permissible value list.
	(gnc_option_value_permissible_value_name): new function. return
 	name of indexth permissible value.
	(gnc_option_value_permissible_value_help): new function. return
 	help of indexth permissible value.

	* src/gnome/dialog-options.c (gnc_option_set_ui_value): add
 	multichoice option.
	(gnc_option_get_ui_value): add multichoice option.
	(gnc_option_multichoice_cb): new function. callback for
 	multichoice buttons. We use an object data with key
 	"gnc_multichoice_index" to store the index with the option menu.
	(gnc_option_create_multichoice_widget): new function. create the
 	widget for multichoice options.
	(gnc_option_set_ui_widget): add multichoice option.

	* src/register/gnome/gnucash-sheet.c
 	(gnucash_sheet_block_destroy): Don't free the entries and colors,
 	that is done by gnucash_sheet_block_clear_entries now.
	(gnucash_sheet_block_clear_entries): Set the freed pointers to
 	NULL for safety.

1999-12-09  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-color.c (color_hash): The argument is
 	an argb, not a GdkColor. So we'll just use its value directly.
  	This fixes a bug in that we were getting lots of failed color
 	lookups in the hash table, and therefore lots of redundant
 	insertions.

	* src/register/gnome/gnucash-sheet.c
 	(gnucash_sheet_block_clear_entries): Free entries, fg_colors,
 	bg_colors here. We were leaking [fg,bg]_colors.


1999-12-09  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/window-register.c (regWindowLedger): set the window
	policy to allow shrinking and growing.

	* src/SplitLedger.c (xaccSRSaveRegEntry): change the memo
	before you create the 'other' split, so it gets the same memo.
	Also, if we are committing the blank split, insert it into the
	account before we create the 'other' split, so the other split
	can get a parent account, too.

1999-12-08  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/scm/main.scm (gnc:ui-finish): destroy the ui subwindows
	before doing a file-query-save. The register windows need to
	be closed before saving, in case there are edited transactions.

	* src/gnome/top-level.c (gnc_ui_destroy_all_subwindows): new
 	function.  used by guile to destroy all non-main windows.

	* src/gnome/window-help.c (gnc_ui_destroy_html_windows): new
 	function.  destroy any help or report windows open.

1999-12-08  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-cursor.c (gnucash_item_cursor_draw):
 	Draw an inner rectangle in the cell cursor.  This balances the
 	cursor top/bottom versus sides, and fixes some ugliness especially
 	in double line mode.

1999-12-08  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/SplitLedger.c (xaccSRLoadRegister): restore original
 	position a bit more accurately.

1999-12-07  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/scm/text-export.scm (gnc:account-transactions-export-as-text):
	return #f as value so the traversal keeps going. (See Group.h).

	* src/g-wrap/gnc-helpers.c: use gh_long2scm instead of the
	long long version. This is incorrect for very large values,
	but longlong doesn't seem to be working right now.

	* src/engine/LedgerUtils.c (accListHasAccount): new function.
	search for account in list.

	* src/MultiLedger.c: Only add the leader if it wasn't in the list.

	* src/gnome/window-register.c (gnc_register_create_menu_bar):
	Added an option to scrub the account. Changed Register menu
	to Account menu.

	* src/engine/Transaction.c (MARK_SPLIT): mark the account group
	as not saved. Ensures we get a "do you want to save" dialog.

	* src/register/gnome/gnucash-sheet.c (compute_optimal_height):
	request height for DEFAULT_REGISTER_ROWS rows.

	* src/gnome/window-register.c (deleteCB): fancy deletes.

1999-12-06  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/SplitLedger.c (xaccSRSaveRegEntry): Insert the blank split
 	into the account when it is committed, not when it is created.
  	Otherwise, the blank split gets saved to a file if you save with
 	an open register. Also, it gets stuck in the reconcile window if
 	you open that with an open register.

	* src/register/pricecell.c (xaccSetDebCredCellValue): simplify
	and fix value setting bug.

	* src/SplitLedger.c (xaccSRCancelCursorTransChanges): new
 	function. Cancel the changes to the current transaction.

	* src/motif/RegWindow.c (cancelCB): use SR functions instead.

	* src/g-wrap/gnc.gwp: add wrapper for xaccGroupGetBalance

	* src/gnome/window-register.c (regWindowLedger): take out the size
 	code altogether.

1999-12-06  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-sheet.c (DEFAULT_REGISTER_WIDTH):
 	Increase this a little, so at least a checking account register is
 	drawn correctly.  This is a hack for now anyway until the
 	computations in gnucash-style.c are reworked.

	* src/gnome/window-register.c (regWindowLedger): Comment out the
 	call to gtk_widget_set_usize (), so the register window finds it's
 	own natural size.

	* src/register/gnome/gnucash-header.c
 	(gnucash_header_reconfigure): Compute w, h correctly.

1999-12-05  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/window-register.c (closeCB): Query the user as to
 	whether or not to save a changed transaction.

	* src/MultiLedger.c (xaccLedgerDisplayClose): Only refresh
	if there were really changes.

	* src/SplitLedger.c (LedgerDestroy): Paranoia checks.

	* src/gnome/window-register.c (regWindowLedger): catch the register
	"activate_cursor" signal. Upon receipt, record the transaction and
	move to the next virtual row.

	* src/register/gnome/gnucash-sheet.c
 	(gnucash_register_goto_next_virt_row): new function. Cause the
	register cursor to advance to the next virtual row.

	* src/register/gnome/gnucash-sheet.h: Add a "activate_cursor"
 	callback to the register that is emitted when the user pressed
 	return.

1999-12-04  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/window-main.c (gnc_ui_mainWindow_scrub): new function.
  	Scrub the current account.
	(gnc_ui_mainWindow_toolbar_open_subs): new function.
	Open subaccounts.

	* src/gnome/window-register.c (gnc_register_raise): new function.
	Cause the given register window to be raised to the top.

	* src/gnome/scripts_menu.c (gnc_extensions_menu_add_item): We have
 	to register the scheme scripts to make sure they aren't
 	garbage-collected.
	(gnc_extensions_shutdown): New function. Call when shutting down
	to free memory structures and unregister scheme scripts.

	* src/gnome/window-register.c (gnc_register_create_popup_menu): new
	function. Create a popup menu for the register.
	(regWindowLedger): Add the popup menu to the register.

	* src/register/gnome/gnucash-sheet.c (gnucash_button_press_event):
	return FALSE for unused events so they are passed up the hierarchy.

	* src/gnome/window-adjust.c (adjBWindow): use fully qualified
	account name in window title.

	* src/gnome/window-register.c (regWindowLedger): use fully
 	qualified name in the title of the window.

	* src/gnome/dialog-utils.c (gnc_ui_get_account_full_name): new
 	function. Construct the fully-qualified account name using the
	given separator string.

	* src/engine/Account.c (xaccAccountGetParentAccount): new function.
	Return the parent account of an account.

	* src/engine/Group.c (xaccGroupGetParentAccount): new function.
	Return the parent account of a group.

	* src/register/gnome/gnucash-sheet.c (gnucash_sheet_key_press_event):
	respond to keypad directional keys.

1999-12-03  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/SplitLedger.c (xaccSRLoadRegister): When we refresh, look
 	for the pending transaction. If we don't find it, clear the
 	pending transaction to prevent it being committed later.

	* src/g-wrap/gnc.gwp: added binding for reportWindowDirect

	* src/gnome/window-register.c (helpCB): help window should not
	be parented.

	* src/gnome/window-main.c (gnc_ui_help_cb): help window should
	not be parented.
	(gnc_ui_reports_cb): reports window should not be parented.

	* src/engine/Transaction.c (xaccTransBeginEdit): Check for an
 	already open transaction.
	(xaccTransIsOpen): new function. returns true if transaction
	is open for editing.

	* src/gnome/window-register.c (regWindowLedger): Use a gnome dock
 	to hold the window contents. This is more flexible.
	(gnc_register_create_tool_bar): use graphical buttons. Also, don't
 	create the handle box, the gnome dock item will handle that.
	(gnc_register_create_menu_bar): don't create the handle box.

	* src/reports/Sheet.c: Rob Merkel's patch for locating eperl

	* src/gnome/account-tree.c (gnc_account_tree_refresh): tighter
 	bounds on adjustment value. Prevents quirks when refreshing to
	a smaller number of accounts.

	* configure.in: Rob Merkel's eperl and gtkxmhtml build patches

	* Makefile.in: Rob Merkel's patch to enforce gtkxmhtml requirement

	* src/gnome/window-register.c (deleteCB): use
 	xaccSRDeleteCurrentSplit to delete the split.

1999-12-02  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/register/gnome/combocell-gnome.c (moveCombo): disconnect
	the list signals.

	* src/SplitLedger.c (LedgerMoveCursor): update cursor_phys_row and
 	cursor_virt_row in the SplitRegiter.
	(xaccSRDeleteCurrentSplit): new function. delete the current split
 	in the register.
	(xaccSRCountRows): don't move the saved physical and virtual rows
	if the current split was NULL.

	* Makefile.in: Added Tyson Dowd's rules to rerun autoconf
	and configure when needed.

1999-12-01  Rob Browning  <rlb@cs.utexas.edu>

	* src/scm/txn-create.scm: remove trailing garbage.

	* src/scm/srfi: new directory containing source for various Scheme
	Requests for Implementation.  We now have srfi-8 and srfi-1.
	These are very useful.  Docs are available at
	http://srfi.schemers.org/.

	* src/scm/report/folio.scm: new file implementing
	Reports/report-folio.phtml.  Not finished, but not loaded either.

	* src/scm/report/dummy.scm: new file to test the report system.
	Shows the current date.

	* src/scm/report/balance-and-pnl.scm: new file to generate balance
	sheet and profit and loss reports.  Implements
	Reports/report-baln.phtml and Reports/report-pnl.phtml.  The code
	in here could be better, but it's not awful.  It's mostly a
	straight eperl port.

	* src/scm/report.scm: new file implementing the initial
	scheme-based report system.

	* src/scm/main.scm: use the new depend mechanism and load the new
	srfis

	* src/scm/extensions.scm: reformat so all the code doesn't go off
	the right side of a normal screen (with tabs set to 8, etc).
	Linas might veto this, but I thought it was worthwhile.

	* src/scm/depend.scm: new file adding a support/depend mechanism.
	Modify other files to start using it.

1999-11-30  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/window-help.c: extensive rewrite. Revamped look to use
	dockable toolbar. Handle motion keys. Escape key closes window.
	Graphics are now loaded.

1999-11-28  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/register/table-allgui.c (doMoveCursor): don't scroll when we
	update the cursor after the the callback.

	* src/register/table-gnome.c (doRefreshCursorGUI): same as below

	* src/register/table-motif.c (doRefreshCursorGUI): same as below

	* src/register/table-allgui.c (xaccRefreshCursorGUI): add a
 	do_scroll argument to determine whether the gui should scroll to
 	make the cursor visible. This lets us cut down on flashing.

	* src/register/gnome/gnucash-sheet.c (gnucash_sheet_table_load):
 	try to avoid scrolling
	(gnucash_sheet_cursor_set_from_table): remove redundant call to
 	update adjustments.

	* src/gnome/window-register.c (cancelCB): use
 	xaccSplitRegisterClearChangeFlag.
	(gnc_register_create_tool_bar): right-align the displayed balances

	* src/register/splitreg.c (xaccSplitRegisterClearChangeFlag): new
 	function. Clear the change flags of the register.

	* src/SplitLedger.c (xaccSRCancelCursorChanges): new
 	function. Cancel the changes made to the current cursor.

1999-11-27  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/window-register.c (regWindowLedger): set default sort
	order to the standard order.
	(gnc_build_ledger_sort_order_menu): add the standard order to the
	list of options.
	(gnc_ledger_sort_cb): handle the standard order

	* src/engine/Query.c (xaccQuerySetSortOrder): added BY_STANDARD and
 	BY_NONE sort orders.

	* src/register/splitreg.c (configLayout): configure the single
 	cursor last so the header is the most reasonable. This is a
 	hack. Eventually, we should probably switch headers dyamically.

	* src/register/gnome/gnucash-sheet.c
 	(gnucash_register_goto_virt_row_col): replaces and generalizes
 	gnucash_sheet_go_to_last_row.

	* src/gnome/window-register.c (gnc_register_jump_to_blank): new
 	function to jump to the blank split.
	(new_trans_cb): use gnc_register_jump_to_blank
	(regWindowLedger): jump to the blank split with above function
 	before returning

	* src/SplitLedger.c (xaccSRGetSplitRowCol): new function
	(xaccSRGetBlankSplit): new function

	* src/register/splitreg.c (configLabels): apply Rob Walker's patch
	to fix the labels.

	* src/gnome/window-register.c (gnc_register_date_cb): set start
 	date to the first second of the day selected and the end date to
 	the last second of the day selected.

	* src/engine/Query.c (xaccQueryGetSplits): fixed a problem to
 	prevent returning one split too many. We need to check for the
	max date before we add the split.

1999-11-23  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/register/gnome/gnucash-sheet.c (gnucash_sheet_go_to_last_row): 
	jump to the last row in the sheet. This will be the blank split.

	* src/gnome/window-register.c (gnc_register_create_menu_bar): add
	a menu item for moving to the blank split
	(regWindowLedger): jump to the last row, i.e., the blank split,
	before you return.

	* src/register/gnome/gnucash-style.c (gnucash_style_layout_init):
 	make the reconcile cell visible in mult-line mode. It's not
 	active, but it looks better.

	* src/SplitLedger.c (LedgerMoveCursor): tell xaccSRSaveRegEntry
 	which transaction we are moving to.
	(xaccSRSaveRegEntry): add an argument to indicate which
 	transaction will be current after the save. This allows us to
 	commit right away if we are changing transactions and keeps the
 	register gui in sync with the engine.

	* src/register/table-allgui.c (doMoveCursor): refresh the gui
 	cursor after the second makePassive if we are moving the gui.
  	This fixes a refresh bug that happens if the splits get reordered.

	* configure.in and src/gnome/Makefile.in: Rob Merkel's patch
	to check for gtkxmhtml
	
	* src/scm: applied Rob Walker's patch to add a version argument
	
	* src/gnome/account-tree.c (gnc_account_tree_init): auto resize
	the first column

	* src/gnome/window-main.c (mainWindow): give focus to the
	account tree before we exit

1999-11-22  Rob Browning  <rlb@cs.utexas.edu>

	* src/register/table-motif.c (modifyCB): *trivial* modification to
	support modify_verify cursor_position arg.  I'm not in a position
	to easily deal with the XmBae callback complexity.  This should
	just leave the status-quo.

	* src/motif/RegWindow.c (dateChangeCB): ditto.

	* src/register/table-allgui.[hc]: quickfill fixes, support the new
	modify_verify cursor_position arg.

	* src/register/gnome/gnucash-sheet.c: quickfill fixes, use the new
	modify_verify cursor_position arg.

	* ChangeLog: merge all the src/register/gnome/ChangeLog entries
	into this file and delete that file to finish up what Dave started
	on 1999-11-20.  Aside from being cleaner, it also makes emacs (and
	I suspect other editors) automatically find the right file when
	you do a "C-x 4 a" (changelog-add-entry).

	* src/register/*cell.h: added position (int *) parameter to
	all cell MV calls.  This allows the callback to reposition the
	cursor within the text if needed.  This was required by the
	quickfill fix, but is probably useful elsewhere.

	* src/register/quickfillcell.c (quick_modify): fixed so that
	cursor tracks as you type along with some other important bugs
	(quickfill divergences now cause the remainder of the stale fill
	to be deleted, etc.)

1999-11-21  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/window-register.c: (recordCB): when when record
	a new or existing transaction, make sure it will be in the
	date range we are viewing.

	* src/register/table-allgui.c: (gnc_table_traverse_update): handle
 	pointer traversals a bit more intelligently.

	* src/register/gnome/gnucash-item-edit.c: (item_edit_set_cursor_pos)
	fix for when you enter a cell that's right-aligned.
	
1999-11-20  Dave Peticolas  <peticola@cs.ucdavis.edu>

        * src/register/gnome/ChangeLog: we're going to stop using this
	changlog file and put all changes in the top-level ChangLog file.

	* src/gnome/reconcile-list.[ch]: Use a hash table to remember
	reconcile flags after a refresh. Also remember scroll position.
	Change row styles so active row isn't highlited.

	* src/register/gnome/gnucash-sheet.c:
 	(gnucash_button_press_event): For now, we need to enter the cell,
 	even if we're already there. The reconcile cell, for instance,
 	depends on this behavior. But, if we're entering the cell where we
 	already are, we remember the cursor position and try to go back to
 	it. Also, when we're entering a new cell it's drawn as if we're at
 	cursor position 0, so tell item_edit_set_cursor.

	* src/register/gnome/gnucash-item-edit.c (item_edit_draw_info):
 	new function to calculate drawing parameters for the item
 	editor. This is used both in drawing and in calculating the place
 	to move the cursor to for mouse traversals.
	(item_edit_draw): use item_edit_draw_info
	(item_edit_set_cursor_pos): use item_edit_draw_info

1999-11-19  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* gnucash-cursor.c (gnucash_item_cursor_draw): Use light gray for
 	the cell cursor; experimental to see if we like it.
	(gnucash_item_cursor_draw): Draw the inside rectangle slightly
 	inside.
	(gnucash_cursor_request_redraw): Tighten up the bounds now that we
 	don't have the outside rectangle.

	* gnucash-sheet.c (gnucash_button_press_event): Only move the cursor
	if the button press moves us to a new cell.  Set the editing cursor.

	* gnucash-item-edit.c (item_edit_draw): Take justification into
 	account here.  Use CELL_HPADDING, CELL_VPADDING instead of magic
 	constants to set the clip rectangle and the offsets.
	(item_edit_set_cursor_pos): New function.
	(item_edit_update): Adjust the positioning of the list now that we
 	don't have the outer rectangle.

1999-11-19  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/account-tree.c: remember expansion state and
	scroll position after a refresh.

	* src/gnome/query-user.[ch]: add parented versions of the
	query dialogs.

	* src/gnome/: modify dialogs to use parented dialogs

	* src/register/gnome/gnucash-cursor.c: (gnucash_item_cursor_draw):
	Heath's mod which removes the outer rectangle.

	* src/register/gnome/gnucash-item-edit.c: (item_edit_update):
	Heath's mod to make the combo list draw correctly

1999-11-18  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/engine/util.c: (PrtAmtComma): fixed
	rounding error when remainder is close to 1.

1999-11-17  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/register/gnome/gnucash-header.[ch]: removed type
	variable. The header should always be type GNUCASH_CURSOR_HEADER

	* src/register/gnome/gnucash-style.c:
	(gnucash_sheet_style_compile): use the cell labels for the header
	style labels
	
	* src/register/gnome/gnucash-item-edit.[ch]: Added a toggle button
	for popping the combo list.

	* src/register/gnome/gnucash-style.c: (gnucash_style_layout_init)
	make the width of the 'num' column of the split cursor the same as
	the others.

1999-11-15  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/register/gnome/gnucash-sheet.c: (gnucash_sheet_delete_cb)
	and
	(gnucash_sheet_insert_cb): use malloc/free instead of glib
	routines for newval. newval may be free()d by routines in the
	register code. You can't mix-n-match.

	* src/register/gnome/gnucash-sheet.c (gnucash_sheet_destroy) and
	(gnucash_sheet_new): sink the entry and unref it after the item
	editor is destroyed. This fixes a memory leak, the entry was not
	being finalized.

	* src/register/gnome/gnucash-sheet.c add
	(gnucash_sheet_key_press): allow outside entities to pass
	keystrokes to the sheet. Used by the combocell.

	* src/register/gnome/combocell-gnome-c: extensive modifications to
	support the new list item.

	* src/register/gnome/gnucash-item-edit.[ch]: ditto

1999-11-12  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/engine/util.c: (xaccSPrintAmount): print values
	very close to 0 as 0 without negative sign.

	* lib/README: updated to indicate obsolete packages.

	* lib/Makefile.in: don't build g-wrap if g-wrap-install
	directory exists

	* src/guile-util.c: (gnc_register_c_side_scheme_ptr):
	modified to return SCM handle, which is used with
	(gnc_unregister_c_side_scheme_ptr) to unregister.

	* src/gnome/option-util.c: added (gnc_options_init)
	and (gnc_options_shutdown).

	* src/gnome/top-level.c: call above functions at
	appropriate times.

	* src/gnome/account-tree.c: (gnc_account_tree_select_account):
	scroll to make sure account is visible.

	* src/register/gnome/gnucash-item-edit.c: (item_edit_draw): make
	the cursor larger and allow it to be seen even when it's at the
	end of a too-long-to-fit-in-cell string.

	* src/register/gnome/gnucash-item-list.[ch]: new code to support
	the combo cell.
	
1999-11-10  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/gnome/dialog-filebox.c: Use GtkFileSelection instead
	of GtkFileSelection2.

	* build: Changed configure.in/Makefile.in's to remove dependencies
	on gtkfilel2.

	* build: automatically rebuild gnc.[ch] when gnc.gwp changes *or*
	if you switch from motif to gnome build or vice versa.

	* src/gnome/window-main.: added Save As menu item.

	* src/register/gnome/combocell-gnome.c: reformatted to be
	idiomatic

	* src/register/gnome/gnucash-sheet.c:
	(gnucash_sheet_key_press_event): Added support for pageup/down and
	home/end keypressed.

1999-11-07  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/Refresh.c: Added this code for refreshing account-related
 	windows when accounts change. Right now, this is registers and
 	reconcile windows.

	* src/gnome/window-register.c: fixed deleting of blank split
	
	* src/register/gnome/gnucash-sheet.c
	(gnucash_sheet_activate_cursor_cell): handle enter updates when
	new_text is non-null by updating the cell from the table and *not*
	src/register/gnome/starting the editing widget.

	* gnucash-grid.c (draw_cell): used CELL_HPADDING for right justify
	adjustment on x value instead of CELL_VPADDING.

1999-11-05  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* src/register/gnome/gnucash-grid.c (gnucash_grid_draw): use
	g_return_if_fail for error checks.

	* src/register/gnome/gnucash-grid.c (gnucash_grid_unrealize):
	Sanity checks before unrefing the gc's.

	* src/register/gnome/gnucash-header.c (gnucash_header_unrealize):
	sanity checks

	* src/register/gnome/gnucash-currsor.c (gnucash_cursor_unrealize):
	sanity checks

	* src/register/gnome/gnucash-sheet.h (GnucashRegisterClass):
	parent class should be GtkTableClass

	* src/register/gnome/gnucash-sheet.c
	(gnucash_sheet_update_adjustments): update page_increment, so
	clicking on the rest of the scrollbar scrolls one page

	* src/register/gnome/gnucash-sheet.c
	(gnucash_sheet_key_press_event): call gnc_table_traverse_update on
	up/down motion.

1999-11-04  Dave Peticolas  <peticola@cs.ucdavis.edu>

	* Add this changelog entry which I should have done a long
	time ago.

	* Rework most of the src/gnome stuff to be compliant with
	gnome-standards.

	* Add QIF fixes.

	* Add Transfer and Adjust Balance windows.

	* Add gnome<->guile options interface.

	* Add c-side SCM registry, courtesy of Rob.

	* Add Alexandru's register window enhancements.

	* Add Heath's gnome register enhancements.

	* Remove dependencies on gtksheet. Hooray!

	* src/register/gnome Various: a few fixes here and there to make
	everything compile cleanly under -Wall. Mainly removing unused
	local variables, and changing g_return_if_fail to
	g_return_val_if_fail for functions which return a value. Added a
	few prototypes that were missing. Cleaned up #includes.

	* src/register/gnome/gnucash-sheet.c (gnucash_register_new): Make
	the vertical scrollbar flush with the top of the register.

	* src/register/gnome/Makefile.in: removed motif and qt
	targets. Made gnome target the default.

1999-08-30  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-sheet.c
	(gnucash_sheet_key_press_event): Be sure to set new_p_row in the
	case GDK_Tab, since the function gnc_table_traverse_update checks
	the proposed new row/col, so we need to initialize properly.

1999-08-28  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* TODO: New file.

	* src/register/gnome/gnucash-style.c (gnucash_style_init): Removed
	the dependency on gnome-print for now.  We may want to use the
	gnome-print library in the future.

	* Makefile.in (LIBS): Ditto

1999-08-25  Rob Browning  <rlb@cs.utexas.edu>

	* Add ./README.gnome-hackers.

	* Add ./README.guile-hackers.

	* Add this file (./ChangeLog).  I'm planning to add change
	information here, and I invite others to do the same.  For those
	that use emacs, 'C-x 4 a' adds a new entry.  If people don't like
	this idea, we can drop it.

	* Add new scheme function gnc:choose-item-from-list-dialog.  There
	is C side code, but it's only meant to be called from scheme.
	This function is quite flexible in handles selections.  Eventually
	we might want to generalize this even more, but there are some GC
	issues to consider.  See src/gnome/query-user.c and gnc.gwp for
	details, and see src/scm/extensions.scm for an example usage.

	* IMPORTANT: queryBox signature has changed.  See the docs in
	src/gnome/query-user.c and in gnc.gwp for details.

	* Remove queryBox stubs from Motif side.  Motif doesn't support it
	(yet), and with gnc.gwp conditional inclusion we can just ignore
	it on the motif side.

	* Add function (current-gnc-compile-flavor) to gnc.gwp so that we
	can have conditional blocks.  Possible return values are 'gnome
	and 'motif.

1999-08-23  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-header.c (gnucash_header_draw): Added
	a separator line between the header and the register entries.

	* src/register/gnome/gnucash-item-edit.c (item_edit_new): Attempt
	to implement the comboboxes.  For some reason, I can't get combos
	to work, something related to how the widget size is computed.
	Comment this out for now.

	* src/register/gnome/gnucash-item-edit.c (item_edit_set_arg):
	Ditto

1999-08-20  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-grid.c (draw_cell): Set the
	background/foreground color on a per cell basis.  This obsoletes
	the bg/fg colors in the styles for now.

	* src/register/gnome/gnucash-sheet.c
	(gnucash_sheet_block_clear_entries): Fixed a big memory leak here.
	(gnucash_sheet_block_set_entries): Support for background and
	foreground colors for the cells.  Set these from the table.

1999-08-19  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-style.c (gnucash_style_layout_init):
	Layout the stock registers.

1999-08-18  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-grid.c (gnucash_grid_draw): When the
	block is active, if a cell doesn't have a user-entered string,
	then draw the label for that cell type as a hint for what should
	be entered.  TODO: Don't draw the label if the cell isn't an
	input/output cell, or whatever.

	* src/register/gnome/gnucash-style.c
	(gnucash_sheet_style_compile): Initialize the labels[][] array in
	the style.

1999-08-17  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-cursor.c (configure_bounds): Do this
	the right way.

	* src/register/gnome/gnucash-item-edit.c (item_edit_draw): Added
	the clip rectangle, and made it so the text scrolls to keep the
	cursor in view.

	* src/register/gnome/gnucash-grid.c (gnucash_grid_draw): Added the
	clip rectangle.

1999-08-14  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-cursor.c
	(gnucash_cursor_get_pixel_coords): Take into account the alignment
	offsets.

	* src/register/gnome/gnucash-item-edit.c
	(item_edit_get_pixel_coords): Take into account the alignment
	offsets.

	* src/register/gnome/gnucash-grid.c
	(gnucash_grid_find_block_origin_by_pixel): Fixed an off-by-one
	mistake.

	* src/register/gnome/gnucash-sheet.c
	(gnucash_sheet_make_cell_visible): New function
	(gnucash_sheet_cursor_move): Make the cell visible.
	(gnucash_sheet_set_top_row): Added support for aligning on the top
	or bottom row.
	(gnucash_sheet_update_adjustments): Fixed this so the sheet can't
	scroll past the bottom row.

1999-08-12  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-sheet.c
	(gnucash_sheet_activate_cursor_cell): With Alexandru's patches, we
	seem to need to grab the focus.  We'll probably need this
	elsewhere.

1999-08-11  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-sheet.c (gnucash_button_press_event):
	New function.

	* src/register/gnome/gnucash-grid.c
	(gnucash_grid_find_block_origin_by_pixel): Add a return value.
	(gnucash_grid_find_cell_origin_by_pixel): New function.

1999-08-10  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-sheet.c
	(gnucash_sheet_key_press_event): Added up/down movement.
	(gnucash_sheet_style_set_dimensions): Change the way we set
	dimensions.
	(gnucash_sheet_size_allocate): Recompute style dimensions.

	* src/register/gnome/gnucash-item-edit.c
	(item_edit_get_pixel_coords): We need to compute pixels relative
	to the canvas origin, not the window origin.  Duh.  (Note that
	canvas sends coordinates to a draw function relative to the canvas
	origin.)

	* src/register/gnome/gnucash-cursor.c
	(gnucash_cursor_get_pixel_coords): Ditto.

	* src/register/gnome/gnucash-sheet.c
	(gnucash_sheet_deactivate_cursor_cell): New function.
	(gnucash_sheet_activate_cursor_cell):
	(gnucash_sheet_cursor_move):
	(gnucash_sheet_start_editing_at_cursor):
	(gnucash_sheet_stop_editing):

1999-08-09  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/combocell-gnome.c: New file, everything is a
	no-op for now, we just need the stubs.

	* src/register/gnome/gnucash-item-edit.[ch]: New file.  Implements
	an entry for the sheet.

1999-08-08  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-cursor.[ch] : New file.  Implements a
	block/cell cursor.

	* src/register/gnome/gnucash-sheet.c
	(gnucash_sheet_style_get_cell_pixel_rel_coords): New function.

1999-08-06  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-grid.c (gnucash_grid_draw): Updated
	to reflect the changes below.
	(gnucash_grid_find_block_origin_by_pixel): Bug fix (off by one).

	* src/register/gnome/gnucash-sheet.c (gnucash_sheet_table_load):
	Another overhaul of the structure.  We need to keep a local copy
	of the table, to keep what we need to redraw from changing
	underneath us.  So we needed some memory management and some minor
	API adjustments.
	(gnucash_sheet_resize):
	(gnucash_sheet_resize_row):
	(gnucash_sheet_destroy_row):
	(gnucash_sheet_block_new_row):
	(gnucash_sheet_block_set_from_table):
	(gnucash_sheet_block_set_entries):
	(gnucash_sheet_block_clear_entries):
	(gnucash_sheet_insert_block_row):
	(gnucash_sheet_get_block):

1999-08-04  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-sheet.c
	(gnucash_sheet_compute_visible_range): New

	* src/register/gnome/gnucash-grid.c (gnucash_grid_draw): Basic
	support for drawing the text of a cell.
	(gnucash_grid_draw): Added support for justifications.

1999-08-03  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-sheet.c (gnucash_register_new): Make
	register into an independent widget.

	* src/register/gnome/gnucash-sheet.c, gnucash-grid.c: Overhaul of
	the structure.  We don't need to keep a list of blocks, or a hash
	list of styles.  All the info we need is in the Table, and there
	are only five styles associated to a given table (from
	splitreg.h).  Many functions touched to reflect the change.  Also,
	keep track of the SplitRegister associated to this table.

1999-08-02  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-color.c (gnucash_color_init): move
	the color allocation and hash table routines from table-gnome.c to
	here.

	* src/register/gnome/gnucash-sheet.c (gnucash_sheet_block_append):
	fixed a silly bug.
	(gnucash_sheet_block_style_new): Fix up the key.
	(gnucash_register_new): This is complex widget that already has
	the vertical/horizontal scrollbars attached.

	* src/register/gnome/gnucash-grid.c (gnucash_grid_find_block): Be
	sure we get a valid sheet_block.  Our register window may be
	larger than the number of blocks.

	* src/register/gnome/gnucash-sheet.c (gnucash_sheet_load): Initial
	load of the table into the register.

	* src/register/gnome/gnucash-color.[c,h]:  steal these files from gnumeric

1999-08-01  Heath Martin  <martinh@pegasus.cc.ucf.edu>

	* src/register/gnome/gnucash-sheet.c
	(gnucash_sheet_style_recompile): make height, width a member of
	the style, so we don't have to change every block when the style
	gets recompiled (on sheet allocation changes for example).

	* src/register/gnome/gnucash-grid.c (gnucash_grid_get_type): First
	hack at getting a grid going.
	(gnucash_grid_class_init): Ditto
	(gnucash_grid_set_arg):
	(gnucash_grid_init):
	(gnucash_grid_draw):
	(gnucash_grid_find_block):
	(gnucash_grid_update):
	(gnucash_grid_unrealize):
	(gnucash_grid_realize):

	* src/register/gnome/gnucash-sheet.c (gnucash_sheet_new): New
	(gnucash_sheet_get_type): New
	(gnucash_sheet_class_init): New
	(gnucash_sheet_create): New
	(gnucash_sheet_realize): New
	(gnucash_sheet_block_new): New
	(gnucash_sheet_block_destroy): New
	(gnucash_sheet_vadjustment_value_changed): New
	(gnucash_sheet_set_top_block): New
	(gnucash_sheet_block_get_pixels): New
	(gnucash_sheet_get_block): New
	(gnucash_sheet_style_init): etc, per block style handling
