Fri Aug 24 01:15:52 PM PDT 2001 chicane <chicane@uberhackers.dhs.org>
Moved GdsEditorHighlightTable implementation into GtkExText
Added show_newlines and show_whitepace options and accessor functions
Fixed draw_numbers functiont o recompute whenever the number of lines changes, so we dont use up valuable screen realestate.
Fixed draw_numbers and draw_pixmaps accessor functions to recompute gutter width so that internal changes are displayed properly.

Sun Jul 08 06:57:22 PM PDT 2001 chicane <chicane@uberhackers.dhs.org>
Fixed auto line selection and gutter selection (selected properly, but not shown)
Fixed bug in line_get_by_offset that freed a linedataptr right before we returned it if we got to the last line of the document.
Fixed column_get_by_offset bug when cursor > line end, and worked on position detection by checking if the cursor is to one side of the current character or not.
Added '#' to the characters that are considered part of a number (html color codes and etc)

Wed Jul 04 03:02:48 PM PDT 2001 chicane <chicane@uberhackers.dhs.org>
Removed all GtkEditable code for Gtk+ 2.0 compatability, and general cleanliness.

Tue Jun 05 03:07:15 PM PDT 2001 chicane <chicane@uberhackers.dhs.org>
* re-implemented GdkPixmaps as the line pixmap data instead of gdk-pixbuf... gdk-pixbuf looked all crappy.
* fixed cursor selection code...now we have GDK_ARROW when the cursor is in the margin.
* fixed problems with middle click insertion from other sources, as well as withing a document.
* small changes to the selection code.

Sun Oct 01  19:36:51 2000 CEST Mikael Hermansson <mikeh@bahnhof.se>

* code cleanup in text_[insert/remove] memory leak fix 
* also fixed segfault when removing text.
* removed GtkArg stuff because to be more compatible with Gtk 2.0

Tue Sep 19  19:10:04 2000 CEST Mikael Hermansson <mikeh@bahnhof.se>

* The widget is now totally rewritted to work as an sourceeditor

Added Chris Phelps improvements lots of new goodies :-)
Here is some of his improvements and fixes:

* Possiblities to set a line pixmap and/or show linenumber
* Undo/redo bugfixes
* possiblities to set underline/strikeout on textstyles
* paint code is rewritten
* other bugfixes  

Sun Sep 17  03:07:40 2000 CEST Mikael Hermansson <mikeh@bahnhof.se>

* hmm it has been a very long time since I hacked on this widget :-)
* gtkextext.c fixed a stupid scrollbug which should have been fixed a long time ago...

Wed Apr 19  18:37:26 2000 CEST Mikael Hermansson <mikeh@bahnhof.se>

* releasing 0.0.21

Mon Apr 10  14:17:52 2000 CEST Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c memory leak fix in gtk_extext_get_[line_init/line_data]  called g_malloc0 twice.
  reported by Drori Ghiora <drori@ilogix.co.il>

* CREDITS added Drori Ghiora <drori@ilogix.co.il>

Sun Apr 02  01:06:57 2000 CEST Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c "property_mark" signal works better now signal is sent every time cursor
  goes over a new property or if it leaves a property and enters
  an textsegment without any property. This is good to use in a
  source editor...

* test.c connected signal: "property_mark" for testing.

Thu Mar 30  21:10:49 2000 CEST Mikael Hermansson <mikeh@bahnhof.se>

* fixed the random bug when inserting more than one line. 
  This bug was nasty but Mario Motta  <mmotta@guest.net>
  gave me the right way to reproduce the bug more often so I 
  could fixit thanks :-)

Tue Mar 28  18:23:55 2000 CEST Mikael Hermansson <mikeh@bahnhof.se>

* fixed bug when deleting text to make sure cursor moves to right position. 

Sat Mar 04  22:59:18 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* Released 0.0.20

Sat Mar 04  18:39:29 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c changed gtk_extext_insert_with_style to not call
   gtk_editable_insert_text instead we call gtk_extext_real_insert_text directly

* gtkextext.c killed the Compile warnings messages in g_print(...)

Sat Mar 04  16:18:05 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c fixed a ugly bug in text_remove that made the widget segfault
  when remove text with GDK_Delete

Wed Mar 01  03:16:23 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* Added (changed) "property_mark" signal. This signal is called when 
  textcursor goes to a new property mark.

Sat Feb 26  02:58:56 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* Added Chris Phelps <chicane@reninet.com> patch that fixes
  DOS cut/copy/paste keybindings.

Fri Feb 25  20:20:59 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* Release 0.0.19

Fri Feb 25  20:17:34 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* higlight.c fixed an random error in property_remove_text, 
  when text was removed...

Fri Feb 18  05:01:44 PM 2000 CET

* fixed horizontal scroll bug

Mon Feb 07  19:46:40 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* Added William G Bunton's <wgb@buntonstudios.com> patch
  this path fixes the hardware line wrap code (if using *_set_line_max_chars).

Sat Feb 05  19:16:20 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* removed iteration of line_height in gtk_extext_get_line_data it's to slow :-/

Sat Feb 05  18:01:50 2000 CET  Mikael Hermansson <mikeh@bahnhof.se>

* released 0.0.18

Sat Feb 05  17:08:34 2000 CET  Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c Fixes to Mario Motta's bugreports.
  flicker fixes when move overlapped windows over widget. 
  removed old iterator patch in *_property_move_all() its to buggy :-/
* highlight.c fix in property_text_remove to make sure it dont
  try higlighing outside text->length.  

Fri Feb 04  15:46:10 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* Fixed some of Mario Motta's bugreports 
  fixed get_editable reverse bug  
  fixed mispelled gtk_extext_is_[undo/redo]_empty and reverse logic

Fri Jan 28  10:44:57 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c added Mario Motta's patch in property_move_all 
  this patch make sure to gtk+ msgqueke gets updated when higlight big files. 
  Also added ready_only = TRUE in the function.  To make sure user don't 
  trying to insert/remove text when higlighting.

Sun Jan 23  13:51:17 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* killed some warnings
* fixed a bug in gtk_extext_get_line_data to make sure lineptr always initiated

Fri Jan 23  23:00:00 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* fixed bug in in setting style->bg

Sat Jan 15  22:15:02 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* releasing 0.0.17

Sat Jan 15  21:47:49 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* added background pixmap support
* added style->flags so that widget don't draw background
  if "Default" style or when user sets style bg color to NULL 

Thu Jan 13  11:45:55 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c fixed bug in gtk_extext_style_set
* gtkextext.c fixed bug in *_nearest_backward make sure it returns NULL
  instead of property_start if no propertys before pos.
  This also fixed a bug in higlight code.

Fri Jan 07  22:01:19 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* bugfix release 0.0.16
* fixed some selections issues in new selection code

Fri Jan 07  17:06:18 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* releasing 0.0.15

Fri Jan 07  16:45:51 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* selection fixes <shift> + Home/End selects text
* bugfix in button_press so that cursor always moves to last character
  if you click on a column outside last character

Thu Jan 06  22:47:31 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* keyboard mavigation bugfixes
  <Control> + LEFT/RIGHT moves one word forward/backward
 <Control> + End moves to end without killing text

Wed Jan 05  22:23:14 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* Releasing 0.0.14

Wed Jan 05  22:18:40 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* highlight.[c/h] new syntax highlight widget based on gtkextext using 
  GNU Regular expression search/match for pattern/syntax coloring
  some of this code is based on GtkEditor by Thomas Mailund  

Mon Jan 03  19:34:16 2000 CET Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c fixed property bug when removing text
  no the default property handling "property_text_remove" updates correctly
  (like a wordprocessor) 

Fri Dec 31  17:29:08 1999 CET Mikael Hermansson

* Released 0.0.13 latest version before millenium :-)
* optimized gtk_extext_get_line_data(...)


Wed Dec 29  23:16:26 1999 CET Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c line wrap cleanup works better now.
  but find_cursor_by_offset is broken and need to be fixed.
* Implemented undo_max_count code.

Wed Dec 29  04:50:04 1999 CET Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c Fixed a stupid bug in *_property_remove_all makes it work mush faster
* gtkextext.[c/h] added *prev parameter to *_property_insert code 
* fixed some scroll bugs but still some bugs left :-/
* added text_insert_line_wrap but its horrible broken :-/

Thu Dec 23  18:02:18 1999 CET Mikael Hermansson <mikeh@bahnhof.se>

* added David Knight's <david@ritter.demon.co.uk> 
  patch fixes color background bug

* fixed gtk_insert_text random segfault bug
  added gtk_editable_set_position to make sure it updates text->scroll_line_start

* changed licence to LGPL

Wed Dec 22 19:26:17 CET 1999 Mikael Hermansson <mikeh@bahnhof.se>

* release 0.0.12

Tue Dec 21  16:28:23 1999 CET Mikael Hermansson <mikeh@bahnhof.se>

* horizontal scrolling works better now
* line_wrap implemented but there still is some to fix here 

Mon Dec 20  02:27:57 1999 CET Mikael Hermansson <mikeh@bahnhof.se>

* rewrite paint handling to support line_wrap.
* separarated Internal[Style/Paint]Cache cache routine in a new function.
  create_paint_cache()

Sun Dec 19  01:46:48 1999 CET Mikael Hermansson <mikeh@bahnhof.se>

* code cleanup again. 
* make sure property cache updates correcly added gtk_extext_property_nearest_backward
* started implement line_wrap code
* The cache API works mush better now

Wed Dec 15  14:54:26 1999 CET Mikael Hermansson <mikeh@bahnhof.se>

* highlight.c changed cb_inserttext/cb_remove_text again
  still need to optimize this crap :-(

gtkextext.c changes:

* changed get_line_data property handling hopefully
   property_first returns correct values now :-/
* changed/added word checking gtk_extext_get_[current/previous/next]_word
   returns FALSE if no word found
* changed regex_[search/match] hopefully it is correctly now :-/
  SIZE_STRING2 = text->length - text->part1len+1,
  

Tue Dec 14  10:57:51 1999 CET Mikael Hermansson <mikeh@bahnhof.se>

* removed gtkextext_static.h

Sun Dec 12  18:30:54 1999 CET Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c reworked paint routine
  Only create a new buffered pixmap when resize widget
  instead of creating a new everytime widget expose.  

Wed Dec 08  07:37:18 1999 CET Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c killed a segfault bug when remove all propertys 
  forgot to set text->scroll_line_start->property_first to NULL

Wed Nov 24  22:29:13 1999 CET Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c codefix in property_remove_linked_list

Fri Nov  5 22:24:33 1999

* highlight.c changed some code in cb_[insert/remove]text so higlighting works better

Fri Nov  5 16:26:50 CEST 1999 Mikael Hermansson <mikeh@bahnhof.se>

* Its time for a new release 0.0.11 :-)

Fri Nov  5 15:43:33 CEST 1999 Mikael Hermansson <mikeh@bahnhof.se>

* implemented gtk_extext_get_first_visible_line(GtkExText *text);
* property API improvements
* gtkextext.[c/h] removed GtkExTextLineData->property_last.
* higlight.c optimized the highlight code.
* gtkextext.[c/h] removed gtk_extext_new GtkAdjustment parameters 
* gtkextext.[c/h] implemented gtk_extext_insert(GtkExText *text,char *text,gint len)
* gtkextext.[c/h] implemented gtk_extext_insert_with_style(GtkExText *text,char *text,gint len,gchar *stylekey,gpointer userdata)

Fri Nov  5 04:38:13 1999 Mikael Hermansson <mikeh@bahnhof.se>

* Property code works better but there is still bugs to fix.

Fri Nov  5 04:05:43 1999 Mikael Hermansson <mikeh@bahnhof.se>

* looks like the widget is working again but the property API still sucks :-(
  It's still to SLOW.  

Fri Nov  5 02:23:18 CEST 1999 Mikael Hermansson <mikeh@bahnhof.se>

* rewrite Line/propertys API again I need have it to work faster
  Linked list is not good but there is no other way :-(
  The code is broken at the moment :-/

Tue Nov  2 01:57:27 1999 Mikael Hermansson <mikeh@bahnhof.se>

* removed some line API
* the class members line_by_offset/colummn_by_offset works better now
  segfaults fixed

Sat Oct 30 23:39:25 CEST 1999 Mikael Hermansson <mikeh@bahnhof.se>

* Removed line_get_[startpos/endpos/num/ptr] use gtk_extext_line_data instead
* implemented two new "class" mebers [line_by_offset/column_by_offset]
  (UNSTABLE segfaults dont know why???)

Wed Oct 27 03:44:58 CEST 1999 Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c implemented gtk_extext_search(., search, pos, iscase, forward,GtkExTextMatch *match)
  returns TRUE if found and GtkExTextMatch has the startpos and endpos
  if not found returns FALSE and GtkExTextMatch start/endpos is set to 0

* test.c added test of new search routine

Mon Oct 25 22:55:52 1999 CEST Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c bugfix in vertical scrolling 

Mon Oct 25 18:37:42 1999 CEST Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c gtk_style_insert
  Made it possible for the user to insert new
  styles with NULL color or font values before widget is
  realised. The NULL values will be initiated with
  default style values when the widget is realized. 

Mon Oct 25 12:39:29 1999 CEST Mikael Hermansson <mikeh@bahnhof.se>

* gtkextext.c in gtk_extext_get_line_data fixed bug when 
  update startpos/endpos backward. This fixed the move cursor bug
  when move cursor to a new line backward.

Sun Oct 24 05:42:29 CEST 1999  Mikael Hermansson <mikeh@bahnhof.se>

* cleaned up some code in destroy/finalize to 
   make sure widget freeing memory when widget is destroyed.
   I also added font_ref/font_unref in style_[insert/remove]

Sun Oct 24 03:49:03 CEST 1999 Mikael Hermansson <mikeh@bahnhof.se>

* moved some of the freeings to gtk_extext_finalize instead of gtk_extext_destroy

Sat Oct 23 23:42:34 CEST 1999 <mikeh@bahnhof.se>

* Released 0.0.10

Sat Oct 23 17:48:21  CEST 1999 Mikael Hermansson <mikeh@bahnhof.se>

* Added new function gtk_extext_get_line_by_offset call this if you want to now
  wish line the y pixel points to this is good if you want to set breakpoints etc... 
* remove_text bugfix. Dont try to remove text if text->length==0 or pos>text->length.
* set_line_ptr/get_line_by_pos using GtkExTextLineData structure
   also fixed some small cursor movement bugs.
* find_cursor bugfixes

Sat Oct 23 14:53:40 1999

* line_set_cursor_pos  now sets hadjustment when cursor 
  is out of scrollview :-)

Sat Oct 23 03:20:59 1999

* Releasing  0.0.9

Sat Oct 23 03:14:43 1999

* Cursor is now painting correct position when text->hadj->value > 0
* rewrote horizontal scrolling but there is still some todo
* gtk_extext_line_foreach is now using the new GtkExTextLineData structure.

Sat Oct 23 02:20:22 1999

* Added configure/automake support

Fri Oct 22 16:58:40 1999

* rewriting property/linecache API
* implemented gtk_extext_get_line_data()

Mon Oct 18 00:45:03 1999

* Implemented tabstops

Sun Oct 17 23:37:30 1999

* Implemented blinking cursor
* Cleaned up paint routine expose_text_*/expose_line_* 
* GtkExText support multiple fonts better now :-)
* hscroll is broken at the moment.

Fri Oct 15 23:47:02 1999

* fixed verticalscroll page bug in recompute_geometry

Sun Oct  3 22:50:54 1999

* Fixed random segfault when removing text
  forgot to set property_current to NULL if remove current prop

Sun Oct  3 03:34:21 1999

* Released 0.0.8

Fri Oct  1 16:03:00 1999

* Implemented better search in test application
* reworking property API again using is_value_ok to check start/endpos
  function return 0 if property is under pos -1 if property before
  +1 if property is after.
* implemented new signals: line_insert/line_remove/property_mark
  "property_mark" is called when cursor changes position and 
  a new property is at cursor pos.
  "line_[insert/remove]" is called when a new line has been inserted/removed
  
Fri Oct  1 01:41:59 1999

* Try fixing hscroll mouseclick bug. But still problems :-/
  looks like I need to rework that crap...

Thu Sep 30 23:56:21 1999

* Font ascent bugfix so the text is drawn better now.

Thu Sep 30 22:00:20 1999

* Added GDK_KP_Enter to key_press_event

Tue Sep 28 03:39:33 1999

* Added gtk_widget_queue_draw to extext_insert routine

Tue Sep 28 03:07:26 1999

* test implementation of undo buffert but its buggy :-/

Mon Sep 20 00:02:32 1999

* I have reworked the property API so it will work faster
* Implemented property_nearest_[forward/backward]
 
Thu Sep 16 19:45:21 1999

* released 0.0.7

Thu Sep 16 18:36:45 1999

* moved highlight code to a new sourcefile (highlight.c)

Thu Sep 16 16:22:27 1999

* init propertys/styles before realize to avoid segfault
  if user inserts new styles before widget is realized

Thu Sep 16 15:51:07 1999

* Looks like the widget is ready for a new relese :-)
* the Insert/Delete property works fine in the GtkExText widget 
  Hoppefully there is no bugs in the widget property API.
  But user must call gtk_extext_property_move_all(..,gint startpos,gint diff) 
  to move all propertys after inserting deleting text
  see test.c for more info diff should be updated with +- how many chars inserted 
  or removed from startpos (=current_pos).

* I am working on the test.c to see if it segfaults or bugs...
  test.c first try to insert/delete higlight propertys its VERY BUGGY :-)

* gtkextest.c reworked gtk_property_get_nearest_at_pos(..) now it return property under or if no
  property under it will return previous property

Thu Sep 16 01:52:34 1999

* implemented two new signals insert-property/delete-property
* fixed segfault when removing first property
* Also worked with the test.c example to see if the property API is working 
  to see if we need a better property implementation....  

Tue Sep 14 00:55:25 1999

* Cleaned up code
* removed line_insert_more/line_get_text_xxx

Sun Sep 12 20:39:00 1999

* When widget is unfocus the selected text will be changed to prelight style
* changed style API from gtk_extext_style_append to gtk_extext_style_insert

Sun Sep 12 19:25:33 1999

* Fixed cursor bugs
* Impemented word selection


Fri Sep 10 00:09:54 1999

* Another try to implement GtkExTextProperty functions....

Wed Sep  8 23:05:03 1999

* Released gtkextext 0.0.6

Wed Sep  8 23:04:23 1999

* changed directoryname to gtkextext

Wed Sep  8 22:06:35 1999

* Some cleanings in the remove/insert. User should ALWAYS call gtk_editable_[insert/remove] 
  else the insert/remove signal will never happens.

* Select/Replace bug fixed. 
  If inserting new text the selected text should be replaced by the new one. 

Wed Sep  8 01:38:03 1999

* segfault bugfix: I added the editable->update_text callback and now it works nicer :-)
  Looks like I have killed the segfault when moving to another widget :-)
  but there is still some to fix . If widget looses focus the selected text should
  change color to style -> [PRELIGHT] 


Wed Sep  8 00:54:51 1999

* Implemented some keyboard shorcuts.
* Reworked the gtk_extext_key_press function 

Tue Sep  7 02:57:26 1999

* As always forgot to update changelog
* Draw focus is implemented.
* Better handling for Buttonevents 3buttonclick selects line
* Higlight works better
* Improved insert/remove API


Wed Sep  1 19:10:59 1999

* implemented gtk_extext_line_foreach(text,func,);

Wed Sep  1 03:17:14 1999

* Improved user API.
* Removed TextClass
* implemented signals when changing line/column.

Mon Aug 30 13:21:30 1999

Improved paint just ask ones for property/line
and then we use offset from were paint is begining.
For example: if paint begins at line 100 (scroll_line_start=100)
we only ask get_line_ptr one time then we move
to next line by doing line=line->next
we also call startpos=line_get_start_pos ones.
and oldposptr=property_line_get_nearest to get first property 
from startpos. then we use property_get_at_pos(tclass,pos,oldposptr)
to check if the same property or new property.

All property start/endpos MUST be sorted.
because the property_get_at_pos loop stops if pos<prop->startpos
and return NULL; (No property at pos)

Sat Aug 28 23:53:55 1999

* I'm probadly a very hungry programmer at the moment :-)
* Implemented mouse cursor movement and mouse cursor selection :-)
  Maybe its time to beta best it really hard by using it in my ProjektCC

Sat Aug 28 19:43:24 1999

* Argh! cannot stop worrking with this widget :-)
* Implemented first real test of style propertys 

Sat Aug 28 14:48:28 1999

* Paint routine works better all characters is now corerectly showed when
  selecting text.

Fri Aug 27 21:55:12 1999

Realesed 0.0.3

Fri Aug 27 15:42:56 1999

* Remove_line bugfixed
* remove multiple lines works fine now :-)
* Select lines works also fine now but paints sometimes wrong

Thu Aug 26 22:37:52 1999

*Still working on select text and set_propertys 
* reworking paint routine

Wed Aug 25 14:32:59 1999

* Start implement select text :-)


Wed Aug 25 00:34:51 1999

* fixed up bugs when insert lines
* Using linked list in line[insert/remove] instead of my old crap that didn't
   work as i should.
* cursor movement cleanup.

Sat Aug 21 23:07:06 1999
* Scroll works i think
* Insert works better but in some kays the return is added to wrong line.
* Insert between sometimes flips out

Fri Aug 20 16:58:22 1999

* Scroll implemented works a little but there is bugs when scroll cursor :-) 

Sun Jun 27 18:01:08 1999 <mikeh@bahnhof.se>

* Hmm first try to insert/delete  text 

Wed Jun 16 03:09:28 1999 <mikeh@bahnhof.se>

* Must first try to do a better GtkText widget with better
   Line support/Syntax higlight etc... :-)
* LineCache see the comments in the file for more info
 



