1999-02-26  Chris Lahey  <clahey@umich.edu>

	* testgtkrichtext.c (main): Updated for change in how
	gtk_rich_text_insert works.  This should be an old change.  I
	haven't tested this in a while.

1999-02-15  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c: Changed the tab width.

1999-02-11  Chris Lahey  <clahey@umich.edu>

	* Makefile.am: Updated this a bit to use the libhnj configuration
	tools.

	* gtkrichtext.h, gtkrichtext.c: Rearranged where libhnj get
	included.  Added a "selection_changed" signal.  Added a
	gtk_rich_text_get_paragaph_params and a
	gtk_rich_text_get_selection_paragraph_params.  These fill in a
	structure of what the paragraph parameters are for the first
	paragraph and a structure with booleans of whether that parameter
	stays the same for the entire run.

	* gtkparagraph.h, gtkparagraph.c: Rearranged where libhnj gets
	included.  Fixed another vertical movement bug.  Added a couple of
	get_paragraph_params functions for gtk_rich_text to use.

	* gtkword.h, gtkword.c: Rearranged where libhnj gets included.

1999-02-03  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c: Fixed a couple of bugs involving vertical
	movement in go.

	* gtkparagraph.c: Switched from ints to doubles in the appropriate
	places in gtk_paragraph_render.  This fixed a rounding error which
	was creating jagged edges when printing.

1999-02-01  Chris Lahey  <clahey@umich.edu>

	* gtkword.c, gtkrichtext.c: Got rid of a couple of unimportant
	warnings.

1999-02-01  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.h, gtkrichtext.c: Added and implemented
	gtk_rich_text_render.  See gtkrichtextcallbacks.h (struct
	_GtkRichTextRenderSystem) for the declarations of the callback
	functions and parameters that you need to set.

	* gtkword.h, gtkword.c, gtkparagraph.h, gtkparagraph.c: Added a
	bunch of helper functions for gtk_rich_text_render.  Most of them
	called through gtk_paragraph_render.

	* gtkrichtextcallbacks.h: Added declarations for the structures
	and callback functions you use to define the rendering environment
	for using gtk_rich_text_render.

1999-01-26  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c (gtk_rich_text_font_new): The data parameter
	wasn't getting set to NULL before.

1999-01-21  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c: A few more small optimizations.  They seem to
	help a bit though.

1999-01-21  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.h, gtkrichtext.c: Made it so that the freeze and
	thaw functions actually do something.  Added lots of other
	optimizations, mostly just not recalculating data that already
	existed.  All in all, between today and yesterday, I sped up
	opening /usr/dict/words by about 83%.

	* gtkword.h, gtkword.c: Turned one simple function into a #define
	in an optimization attempt.  It helped, but not by much.

1999-01-21  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.h, gtkrichtextcallbacks.h, gtkparagraph.h,
	gtkparagraph.c, gtkword.h, gtkword.c: Added a parent field to
	gtkparagraph and gtkword that points to the gtkrichtext that this
	object is contained in.

	* gtkword.h, gtkword.c: Added the concept of what type of space
	follows this word.  The two choices are a space or a tab.  This
	replaces the old concept of tabs, where the tab was embedded in
	the text of the word.

	* gtkparagraph.h, gtkparagraph.c: Modified these to use the new
	concept of how tabs work.  Rearranged the redraw code, but the new
	code doesn't work, so it's not used yet.

	* gtkrichtext.c: Mostly small or cosmetic changes.

1999-01-19  Chris Lahey  <clahey@umich.edu>

	* gtkrichtextcallbacks.h, gtkrichtext.c: Added a data parameter
	within GtkRichTextFont.  This is used by go to store a pointer to
	the GnomeFont *.

1999-01-19  Chris Lahey  <clahey@umich.edu>

	* gtkparagraph.h, gtkparagraph.c: Added line number support for
	gtkrichtext to use.

	* gtkrichtext.h, gtkrichtext.c: Added a get_position_line_number
	function and added the concept of whether the buffer is editable.
	Added signals that get emitted if the user tries to edit the
	document when it's not edittable.

	* gtkrichtext_view.h, gtkrichtext_model.h: Made small changes to
	these unused files.

1999-01-18  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c: Got rid of gtk_rich_text_set_font.

	* gtkrichtext_view.h, gtkrichtext_view.c: Added for mutual viewing.

1999-01-15  Chris Lahey  <clahey@umich.edu>

	* gtkword.h, gtkword.c: Optimized by switching a few functions to
	macros.

	* gtkparagraph.c: Added a couple casts for variable that used to
	be automatically cast by being passed to a function.

1999-01-06  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c (expose_text): Changed it so that only paragraphs
	within the widget are drawn.

	* gtkparagraph.h, gtkparagraph.c: A bunch of optimizations.  The
	optimizations seem to give about 40% speedup on large files on my
	machine.

1999-01-06 Nat Friedman  <nat@nat.org>

	* gtkrichtext.c (gtk_rich_text_move_forward_word): Check that
 	paragraph->next is non-NULL, not paragraph->prev.
	
1999-01-05  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c: Fixed a compilation warning.  Also, deleting now
	recalculates the scrollbars.

1999-01-02  Chris Lahey  <clahey@umich.edu>

	* gtkrichtextcallbacks.h: Added the type GtkRichTextFont so that
	gtkrichtext would store the name of fonts so that file.c could
	output them to a file.
	
	* gtkparagraph.h, gtkparagraph.c: Added tabs to gtkrichtext
	widget.  It doesn't work perfectly, but it's close.  Also updated
	to use the new GtkRichTextFont.  Added
	gtk_paragraph_traverse_partial.

	* gtkword.h, gtkword.c, gtkrichtext.h, gtkrichtext.c: Switched to
	using the new GtkRichTextFont.  This introduces a small
	inconsistency with relation between GtkRichTextInsert and
	GtkTextInsert.  However, both can be passed NULL for the second
	parameter, and if they're not being passed NULL it should give a
	warning.  I think that this is, at least for now, an acceptable
	change.  gtkrichtext.c also contains the functions for
	gtk_rich_text_font.  Added gtk_rich_text_traverse_partial and
	gtk_word_traverse_partial.

	* testgtkrichtext.c: Switched from gtk_rich_text_append to
	gtk_rich_text_insert since gtk_rich_text_append no longer exists.
	This means that the output text doesn't have any spaces in it.
	testgtkrichtext is mostly obsolete.  Go acts as the test for
	gtkrichtext now.
	
1998-12-31  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c (gtk_rich_text_key_press): Somehow gtkrichtext not
	accepting digits when typed slipped by so far.  This is fixed
	now.  Also made more keypad keys active.

1998-12-31  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c (gtk_rich_text_get_chars): Fixed a fairly major
	bug with a misplaced carriage return.  I think that this fixes
	what has been causing most of the crashes during editting with the
	gtkrichtext widget.

	I'm sure it's not perfect but it seems to be crashing a lot less
	often during editting.  The spell check plugin now seems to work
	fine as well.

	As it turns out, this change also fixes a problem with cut & paste
	where carriage returns were cut as spaces.  Cut & paste seems to
	work fine now.

	* gtkparagraph.c (gtk_paragraph_get_chars): Fixed a small bug that
	shouldn't have any real effect but is more correct for the
	semantics of this function.

1998-12-30  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c: Fixed gtk_rich_text_set_selction a bit.

1998-12-30  Chris Lahey  <clahey@umich.edu>

	* gtkrichtextcallbacks.h: Added this file to resolve a circular
	dependency.  Moved ParagraphParams, CharacterParams, and
	GtkRichTextTraversalCallbacks to here.

	* Makefile.am: Added gtkrichtextcallbacks.h.

	* gtkword.h, gtkword.c, gtkparagraph.h, gtkparagraph.c,
	gtkrichtext.h, gtkrichtext.c: Added functions to traverse the
	tree.  Also added gtk_rich_text_set_location_paragraph_params to
	set the paragraph parameters at a certain location instead of at
	the current selection.

1998-12-28  Chris Lahey  <clahey@umich.edu>

	* gtkparagraph.c (gtk_paragraph_length): Changed the style in one
	place.  Very small change.

	* gtkrichtext.c (gtk_rich_text_get_length): Fixed this function.  It
	used to not count carriage returns.

1998-12-28  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.h, gtkrichtext.c: Worked on making it deal with
	typing when there's an area.  There's a buffer overflow in this
	case somewhere that causes it to crash most of the time if you
	type when an area is selected.  The same bug occurs often when you
	do a cut.  I hope to have this run through a bounds checker
	sometime soon or find the bug myself.
	
	Added a cursor grab so that going into other windows wouldn't make
	it hilight in those windows.

	Started work on handling double and triple clicks.  No results yet
	though.

	Middle button now inserts the X selection.  This seems to work
	most of the time.

1998-12-27  Chris Lahey  <clahey@umich.edu>

	* gtkparagraph.h, gtkparagraph.c: Added a justification parameter.
	Left, right, centered, and fill justifications are all available.
	Added space_space to ParagraphValues.  space_space is the number
	of pixels used up by the spaces if left, right, or center
	justified.

	Added an optimization for the gtk_paragraph_length function (a
	length cache essentially.)  It seemed to help alot.

	* gtkrichtext.h, gtkrichtext.c: Added a concept of the total width
	of the text.  A value of -1 means to vary the width of the text
	with the width of the widget.

1998-12-26  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.h, gtkrichtext.c: Fixed alot of the interface with
	GtkEditable including setting selection_start_pos,
	selection_end_pos, and current_pos.  Added and implemented the
	concept of a point, based on the same concept from gtktext.  Also
	fixed a number of small bugs concerning converting between
	Positions and ints.  Fixed gtk_rich_text_get_chars.  Consolidated
	a lot of stuff to make gtkrichtext.c much cleaner.  

	* gtkparagraph.c: Fixed some small bugs concerning converting
	between ParagraphPositions and ints and got rid of some more of
	those extraneous minuses.  Fixed gtk_paragraph_get_chars.

1998-12-23  Chris Lahey  <clahey@umich.edu>

	* gtkparagraph.c: Fixed an extraneous - sign in two places that
	was causing incorrect insertions.

	* gtkrichtext.c: Fixed up gtk_rich_text_get_chars a bit, but not
	sure if it's working yet or not.  

1998-12-23  Chris Lahey  <clahey@umich.edu>

	* gtkword.h, gtkword.c, gtkparagraph.h, gtkparagraph.c,
	gtkrichtext.h, gtkrichtext.c: Did some work to make insertion
	faster by sending blocks of text down instead of one at a time.

1998-12-22  Chris Lahey  <clahey@umich.edu>

	* gtkword.c: Fixed gtkword so that empty words still contributed a
	height to the line they're on.  This fixes a bug that made it so
	that empty paragraphs didn't show up.

	* gtkrichtext.h, gtkrichtext.c: Used the new paragraph parameter
	system.  Also switched from one character at a time insertion to
	multiple character insertion to speed things up a bit.  This will
	eventually switch to calling a similar function that hasn't been
	written in gtkparagraph which should help speed alot.

	* gtkparagraph.h, gtkparagraph.c: Added the concept of paragraph
	parameters that are set with a gtk_paragraph_set_params function.
	These encompass the old HnjParams, prespace, inspace, and
	postspace member fields and add first_indent, left_indent, and
	right_indent.  gtk_paragraph_set_params also takes a
	ParagraphParamsValid which lets you set only some of the values.

1998-12-02  Chris Lahey  <clahey@umich.edu>

	* gtkparagraph.h, gtkparagraph.c, gtkrichtext.h, gtkrichtext.c:
	Added the ability to have spacing before, after, or within
	paragraphs.  Respectively pre, post, and inspace.

1998-12-02  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.h, gtkrichtext.c (gtk_rich_text_queue_redraw): Moved
	redraw into a timeout function.  It's a timeout of 0 seconds, but
	it helps alot.  We used to be redrawing multiple times in some
	functions.  That doesn't happen any more.

1998-12-02  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.h, gtkrichtext.c (gtk_rich_text_motion_notify):
	Moved selection calculation into a timeout function.  It now only
	calculates once every twentieth of a second (still experimenting
	with this number a bit.)  The algorithm for selection calculation
	still needs to be sped up, but not by as much.

1998-12-01  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c, gtkparagraph.h, gtkparagraph.c, gtkword.h,
	gtkword.c: Fixed the last known bug about fonts changing.  Wrote
	some code to implement pasting.  Unfortunately, it pastes at the
	beginning of the area.  Do not experiment with this in go with an
	important file as it will save a broken (almost empty) copy of the
	file you're editting.  Experiment with a New file if you want to
	though.

1998-11-30  Chris Lahey  <clahey@umich.edu>

	* gtkword.c, gtkword.h: Set the width when changing fonts.
	Cleaned up font manipulation a bit.  Added gtk_word_max_ascent and
	gtk_word_max_descent.

	* gtkparagraph.c: Fixed a display bug from using
	word->font->ascent instead of gtk_word_max_ascent (and the same
	for descent.)

1998-11-29  Chris Lahey  <clahey@umich.edu>

	* gtkparagraph.h, gtkparagraph.c, gtkrichtext.c
	(gtk_rich_text_key_press & others): Added more keybindings and
	enabled alot of ones added in the last commit.  Mostly navigation
	commands.  Made it so that after every cursor move, the window
	scrolls to display the cursor.

1998-11-29  Chris Lahey  <clahey@umich.edu>

	* gtkparagraph.h, gtkparagraph.c, gtkrichtext.c
	(gtk_rich_text_key_press): Added a bunch of keybindings.

1998-11-28  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.h, gtkrichtext.c, gtkparagraph.h, gtkparagraph.c: Fixed up vertical movement.

1998-11-28  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c (gtk_rich_text_key_press): Got the cursor to stick
	together when you type or move the cursor around.

	* gtkparagraph.c (gtk_paragraph_insert,
	gtk_paragraph_insert_with_data): Fixed the bug where the left
	arrow skips words after inserting a bunch of spaces.

1998-11-27  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c, gtkparagraph.h, gtkparagraph.c, gtkword.h,
	gtkword.c: Added gtk_rich_text_get_chars.

1998-11-27  Chris Lahey  <clahey@umich.edu>

	* gtkword.c (gtk_word_init): Added a check for hnj_hyphen_load
	returning NULL.

	* gtkrichtext.c (expose_text): Fixed background color.  Added
	redraw after font change.
	(gtk_rich_text_get_length): Implemented this function.

	* gtkparagraph.h, gtkparagraph.c: Fixed selections.  Added code to
	cache line breaks.

1998-11-27  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.h, gtkrichtext.c, gtkparagraph.h, gtkparagraph.c,
	gtkword.h, gtkword.c: Got selections working a bit.  Still a bit
	buggy (and slow.)

1998-11-27  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c, gtkword.c: Switched from g_free to g_list_free
	(which actually works.)

1998-11-27  Chris Lahey  <clahey@umich.edu>

	* Makefile.am (CFLAGS): Set it to not optimize.

	* gtkword.c (gtk_word_break): Improved multiple fonts and spaces a
	bit.  (It's still pretty broken.)

1998-11-26  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.h, gtkrichtext.c: Added the concept of a cursor
	font.

	* gtkparagraph.h, gtkparagraph.c (gtk_paragraph_insert_with_data):
	Added this function.

	* gtkword.c: Did some debugging for multiple fonts.  Still not
	perfect, but multiple fonts have been displayed.  Added
	gtk_word_insert_with_data.

1998-11-25  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.h, gtkrichtext.c (gtk_rich_text_set_font),
	gtkparagraph.c (gtk_paragraph_set_font, ...), gtkparagraph.h,
	gtkword.c, gtkword.h: Lots of changes to allow multiple fonts in a
	single word.  Also fixed a compilation warning or two.  This may
	have introduced a new bug that makes deleting a space not work,
	but that may have been there before.

1998-11-23  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c: Changed the rest of the rect.x = x and rect.y = y
	to rect.x = 0 and rect.y = 0.  The bug with the top part of the
	window not updating are fixed.

	Turned off debugging information.  It slows down the program too
	much.

1998-11-20  Seth Alves  <alves@hungry.com>

	* gtkparagraph.c (gtk_paragraph_draw)(gtk_paragraph_find_point):
	don't sigfpe if there are no words on the line

1998-11-18  Chris Lahey  <clahey@umich.edu>

	* Makefile.am (CPPFLAGS): Added a definition for DATADIR.

	* gtkword.c: No longer hyphenates 0 character words.  Points at
	installed hyphen.mashed now.

	* gtkrichtext.c: Turned off debugging mode.  Moved some code from
	_init to _new.  Fixed up the behavior if you call insert with a
	length of 0.

	* gtkparagraph.h, gtkparagraph.c (gtk_paragraph_new): Added for a
	bit more of a break between gtkrichtext.c and gtkparagraph.c.
	(gtk_paragraph_delete): Fixed up a bunch.  Cleaned up mostly.

1998-11-17  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c (gtk_rich_text_class_init): Changed parent_class
	to editable_class on line 140.

1998-11-17  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c, gtkrichtext.h: A bunch of small changes to get
	this all to work.  Added debugging print statements.

	* gtkparagraph.c, gtkparagraph.h: Added gtk_paragraph_position
	which converts an int to a ParagraphPosition.

	* gtkword.c, gtkword.h: Added gtk_word_position which converts an
	int to a WordPosition.

1998-11-13  Chris Lahey  <clahey@umich.edu>

	* Makefile.am: Changed to generate gtkrichtext.a, a small library
	with all the necessary stuff.

1998-11-11  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.h, gtkrichtext.c: Added a gtk_rich_text_insert (as
	an external function) to match the interface of gtk_text_insert.
	The old static gtk_rich_text_insert became
	gtk_rich_text_insert_internal.

	* testgtkrichtext.c (main): Added a test for the new
	gtk_rich_text_insert.

	* gtkparagraph.c: Added the ability to have multiple spaces after words.

	* gtkword.c (gtk_word_new): Added some support needed for multiple
	spaces after words.

	* Makefile.am: Removed -pedantic.

1998-11-09  Chris Lahey  <clahey@umich.edu>

	* gtkrichtext.c: Fixed gtk_rich_text_find_point so that clicking on
	the document works for all paragraphs.

1998-11-09  Chris Lahey  <clahey@umich.edu>

	* gtkparagraph.c, gtkparagraph.h, gtkrichtext.c: The return key
	now makes the document into a multiple paragraph document.

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

	* Started the ChangeLog.

