------------------------ AmigaOS 4 project ---------------------------

texteditor.gadget 16.1 (2002)

- initial release. This is a Stephan's rewrite 
  of the original texteditor.gadget by Allan 
  Odgaard!

---------------------- AmigaOS 3.2 project ---------------------------

texteditor.gadget 16.3 (18.8.2019)

- Notice that v16.3 reflects only a transitional status between the 
  OS4 and 3.2 projects.
  
- fixed race condition when opening/closing.

- ported to SAS/C.

- now runs on 68000/68010.

texteditor.gadget 47.1 (9.1.2019):

- recompiled with data=far and utllib to improve
  the code generation.

texteditor.gadget 47.3 (15.11.2019):

- Fix short cut for Undo to be the standard Amiga-Z and
  both Amiga-Shift-Z or Amiga-Y for Redo

texteditor.gadget 47.4 (24.11.2019)

- Substantial refactor and rewrite of cursor and undo handling

- We now have normal cursor movements and selections

- the cursor remembers it's x position going up and down

- selections have an anchor point

- basically it works as you'd expect in 2019

- there is support for pgdown, home, end pgup for those keyboards that
  has such keys, but otherwise ctrl and alt plus cursors give you 
  alternatives

- shift plus cursor extends the selection

- The undo system is rewritten in preparation for future improvements

- The rendering of the document as well as import and export is 
  unchanged

texteditor.gadget 47.5 (26.11.2019)

- The cursor position is now part of the undo/redo states

- Clicking to place the cursor now places the cursor at the nearest 
  insertion position

texteditor.gadget 47.6 (27.11.2019)

- Blinking cursor

- Undo/redo can now report if the text is unchanged or not (nice for 
  "are you sure you want to quit")

- Undo/redo now does merging of simple changes (like modern 
  texteditors all do)

- Undo/redo is now unlimited (was 16 changes)

- Fix a small bug when redoing everything, then the entire text was 
  selected

texteditor.gadget 47.7 (27.11.2019)

- Fix double click and reintroduce triple click

texteditor.gadget 47.8 (1.12.2019)

- Fix broken readonly mode

texteditor.gadget 47.9 (2.12.2019)

- Don't process mouse click outside the gadget

- Fix wrong cursor placement when clicking above or below the entire 
  document

- Fix Arexx method not handling command arguments

texteditor.gadget 47.10 (2.12.2019)

- New feature: Really support non word-wrapped editing

texteditor.gadget 47.11 (13.12.2019)

- Now scrolls with scrollmouse both vertically and horizontally 
  (NewMouse scroll events)

- API (struct Hook) support for applications to do syntax highlighting

- Handle TAB characters without converting to spaces 
  (GA_TEXTEDITOR_SpacesPerTAB and GA_TEXTEDITOR_ConvertTabToSpaces)

- Fix bug of not all text being extracted for cut, copy, and delete 
  undo

- Fix the cursor not deselecting when cursor is at extreme edge

- Fix horizontal scroll not working due to excessive number of 
  MakeCursorVisible calls (now only when needed)

texteditor.gadget 47.12 (19.12.2019)

- Draw cursor with text color for improved visibility

- Fix page up and page down not working since bug introduced in 47.11

texteditor.gadget 47.13 (24.12.2019)

- Updated APIDOX

- Remove beta API as there was previous API that should be implemented 
  instead

- Implement new search API for highlighting all matches

- Implement new search API for incremental search

- fix search backwards and next to find "mum" twice in "mumum"

- Implement whole word option. It's based on IsAlNum() plus '_' and 
  thus works like most editors.

- implement cyclic option for search backwards and next

- Extend ARexx interface with GETSELECTEDTEXT method

texteditor.gadget 47.14 (26.12.2019)

- Fix import of documents with TABs

- A bit more efficient redraw when highlighting all matches

texteditor.gadget 47.15 (02.1.2020)

- redraw caret while dragging

- don't loose selection on resize

- also import tabs correctly - a bit stupid not to, now that we can 
  handle them

texteditor.gadget 47.16 (06.1.2020)

- fix while drag selection you moved to the left of the window - now 
  it correctly places you at start of the line

- fix selection of word, cursor to next word, cursor to prev word

- Implement moving the selected text to another location)

- Fix a small memory leak

- Fix a bug in doubleclick to select text

texteditor.gadget 47.17 (10.1.2020)

- Fix big memory loss due to double allocation of class memory

texteditor.gadget 47.18 (18.1.2020)

- Fixed: it was drawing over part of its bevel.

- Fix lef offset (horizontol scroll) not being updated correctly on 
  triple click

- After above fix, change so triple click, selects entire line 
  _including_ newline

- Fix cursor leaving a trail when drag selecting (only happened with 
  some fonts)

texteditor.gadget 47.19 (16.2.2020)

- Fix memory leak when moving a selection with the mouse

- Reduce memory usage as a result of pasting multiline text

- Made sure we notify changes after resize/layout

- Fix it was possible to scroll small document out of view with 
  mousewheel

texteditor.gadget 47.20 (23.2.2020)

- Fix cursor key movement in readonly mode

texteditor.gadget 47.21 (27.2.2020)

- Fix hit when clicking inside a selection

texteditor.gadget 47.22 (24.3.2020)

- Fix a layout problem (seen in RAWBInfo when clicking the icon tab)

- Moving a selection is now a single undo step

- The caret was rendered 1 pixel too tall, deleting parts of the line 
  below with some fonts

- The display and horizontal scroll could be out of sync after a resize

texteditor.gadget 47.23 (26.3.2020)

- Implemented a hook system for syntax highlighters to work through

- Fix a bug that made it possible to render the cursor outside the 
  gadget

texteditor.gadget 47.24 (08.4.2020)

- Fix highlight or search hitting text in the bloc colors would make 
  the text invisible

texteditor.gadget 47.25 (15.4.2020)

- Fix a bug when pasting text containing blank lines. It would end up 
  wrong and would eventually crash

- Fix a small transparent area between text and bevel, where you could 
  see eg fillpattern

- Introduce a framework to show linenumbers (and in the future anything 
  through a hook)

texteditor.gadget 47.26 (20.4.2020)

- Fix the possibility of writing line numbers into the general area

- Fix a muforce hit when moving a selection as first thing after 
  loading a file

- Make sure we don't draw cursor into the leftbar area

- Fix the text near the blinking cursor being rendered wrongly

texteditor.gadget 47.27 (27.4.2020)

- Fix sending out incomplete data upon resize

- Fix blinking Cursor with selected text would visually remove one char 
  of the selection

texteditor.gadget 47.28 (15.5.2020)

- Implement the new GM_HANDLESCROLL by calling our current code

- Fix cursor movement left/right when a selection was active

- Fix detection of line containing TAB failed on paste onto a line 
  that contained tabs

- Fix uninitialized cursor anchor after import

texteditor.gadget 47.29 (23.5.2020)

- Make sure the cursor is visible even if to the extreme right of the 
  text

- Don't loose scroll position on resize/relayout

texteditor.gadget 47.30 (27.5.2020)

- No point in wasting CPU cycles on doing division as it isn't really 
  needed

- Leftbar (most commonly for linenumbers) rendering - implement the 
  hook calling for render and input

- Rectangular selections (only possible with fixedwidth font and no 
  wordwrap). Toggled with ctrl+lalt

texteditor.gadget 47.31 (05.6.2020)

- Fix copying from rectangular selection writing beyond buffer end

- Fix crash when deleting the rectangular selection when it contains 
  areas with no text

- Fix crash when inserting using rectangular selections say 2 
  positions after the text of the line

- Fix Undo/redo macros (merging of sub changes into one user-visible 
  change)

- Get,set,notify GA_TEXTEDITOR_RectangularSelections

- Fix triple click on last line of document didn't work

texteditor.gadget 47.32 (11.6.2020)

- Fix rendering of cursor when rectangular selection and short lines

- Make sure rectangular selections can only be moved to normal 
  locations

- Fix some colors being wrong when special colors were set after layout

texteditor.gadget 47.33 (15.6.2020)

- Clicking to move a selection should not grap if the selection ends 
  on first char of line

- Change signature of syntax highlighter so that we in the future are 
  not bound by UWORD line length

- Fix an offset glitch when going from non-wordwrap to worwrap mode 
  (if horizontally scrolled)

texteditor.gadget 47.34 (22.6.2020)

- Fix rendering lines longer than 32000 pixels (~3500 chars)

- Fix duplicate rendering that could be seen as temporary duplicate 
  lines when adding/removing lines

- Fix rendering glitches when going from word wrap to NoWordWrap

texteditor.gadget 47.35 (01.7.2020)

- Fix hit and don't set mousepointer if readonly

texteditor.gadget 47.36 (13.7.2020)

- Tweak GA_TEXTEDITOR_ConvertTabToSpaces from being a bool to being 
  the number of spaces (0 disables)

- Implemented GA_TEXTEDITOR_AutoIndent attribute that auto indents 
  like previous line

- Implement GA_TEXTEDITOR_CutCopyLineWhenNoSelection attribute

texteditor.gadget 47.37 (06.9.2020)

- Don't choke on pasting in text containing CSI sequences

- Don't move up instead of down if on last line of last block (in 
  dynamic wrapping mode)

- Fix Esc keypress not being reported to the outside world

texteditor.gadget 47.38 (17.10.2020)

- Fix placing cursor with mouse click didn't set "wishX"

texteditor.gadget 47.39 (16.11.2020)

- More work on the leftbar interface (msg structures have changed)
- General cleanup
- New method to get a pointer to a block
- Userdata is available in each block. It's a hook called when block is deleted
- Fix double click to select word had anchor and pos reversed

texteditor.gadget 47.40 (17.11.2020)

- Fix Text insertion in rectangular selection mode so it handles TAB chars
- Change wishX to be pixelbased rather than position based, which benefits
  proportional font editing and all in case of tabs
- Fix drawing of the blinking cursor in rectangular selections so it now
  handles TAB chars
- Fix Drawing of selection in rectangular selections so it now handles
  TAB chars
- Don't listen for relative mouse qualifier when listening for ctrl+lalt
  to toggle rectangular selections - in fact only listen for keyboard
  qualifiers. This way it works while dragging with the mouse too
- Detection of clicking inside a selection now works with rectangular and Tabs
- Fix CursorSelectedText to work with rectangular selections  tabs and
  selections outside text
- Limit cursor coordinates when changing to from rectangular to normal
- Fix horizontal scroll could be inprecise
- Fix vertical offset could allow non-existent lines at the bottom when
  the should be scrolled away
- Change mouse pointer when in drag and drop mode
- Dragging rectangular selection can now be dragged whereever a selection can be made
- Fix graphic glitches when moving a selection
- Fix rendering big blinking cursors in rectangluar mode, we would try to
  render every single line
- Change CursorPageUp and CursorPageDown so it tries to keep the the visual
  position on screen

texteditor.gadget 47.41 (24.11.2020)

- Fix a bug that could lead to corrupted data. If you pressed enter on an
  empty line, there was a chance of corruption
- Fix "Select all" once again - previous fix, was wrong
- Fix a screen update bug I introduced myself in the last revision
- Fix that you couldn't enter | character on danish keyboard (bug could
  have other similar effects)
- Fix crash when pressing enter with cursor in non char area and rectangular
  selection
- Do indentation change on tab and shift+tab
- Fix triple click in rectangular selection mode

texteditor.gadget 47.42 (30.11.2020)

- Bookmarks now allow more than 3, make them move while editing. Remove user shortcuts
- More implementation of the editing with styles (still offciially NOT
  implemented, and certainly still not complete)
- Use pooled memory for most of our allocations

texteditor.gadget 47.43 (25.01.2021)

- Implement Replace_all functionality (as repeatedly cyclicly replacing
  one string could go into infinite loop)
- Implement GM_TEXTEDITOR_MultiChange so programs can group edits in one
  undo step
- Add some bookmark related functions to the arexx method
- Fix several render speed bugs

texteditor.gadget 47.44 (07.02.2021)

- Fix moving a selection would have indeterministic behavior if at the same position as cursor.
- Change MultiChange method into arexx command as it is more versatile

texteditor.gadget 47.45 (19.02.2021)

- Introduce ChangeListener so applications can listen to changes
- Bookmark system is refactored to be one such (internal) user of the
  ChangeListener system.
- Fix bookmarks and linenumbers not being redrawn correctly when adding
  and removing lines
- Change leftbar to be 3 seperate things bookmarks, hook and line numbers
  GA_TEXTEDITOR_LeftBarWidth is gone and replaced by GA_TEXTEDITOR_ShowLineNumbers
  hook for now gets 20 pixels wide

texteditor.gadget 47.46 (25.02.2021)

- Extend ChangeListener interface so you can now be notified of keypresses
- One more Arexx command to have an optional shadow cursor for arexx

texteditor.gadget 47.47 (04.03.2021)

- Fix import text with CR or CRLF
- Export can now be controlled  to LF, CR CRLF, or same as import
- When moving selection make sure selection endings are cleared correctly

texteditor.gadget 47.48 (09.03.2021)
- Fix that horizontal scroller wasn't updated when using scrollwheel
- Fix that search did move the hit into view horizontally

texteditor.gadget 47.49 (15.03.2021)
- Fix that import mime was still converting tabs to spaces on import
- Change it so tab replacement is done before inserting. This way
  replacement on undo/redo is avoided
- Indentation is now only performed if a selection or the cursor is in
  leading whitespace
- GA_TEXTEDITOR_ConvertTabToSpaces renamed to GA_TEXTEDITOR_IndentWidth
- New attribute GA_TEXTEDITOR_TabKeyPolicy about what happens when
  pressing tab key

texteditor.gadget 47.50 (28.03.2021)
- Small change to GETCURSORe ARexx command to make the code smaller and more
  correct. It even fixed a small bug.

texteditor.gadget 47.51 (09.04.2021)
- Fix that auto-indent could in some cases give less than desireble results.
