
README for wxLayout classes
---------------------------

All the source in this directory is copyrighted under the
GPL (GNU GENERAL PUBLIC LICENSE), version 2,
by Karsten Ballueder <ballueder@usa.net>.


This is still work in progress, so if you want to make any significant
changes, please get in touch with me before.


*** THIS SOURCE IS USUALLY OUTDATED AND FOR DEMONSTRATION ONLY  ***
*** GET THE VERY LATEST VERSION OF THE WXLAYOUT CLASSES FROM    ***
*** THE SOURCE OF THE MAHOGANY MAIL/NEWS CLIENT, AVAILABLE FROM ***
*** http://www.wxwindows.org/Mahogany/                          ***



There are three building blocks for rich text editing:

wxllist :

The wxLayoutList layout engine. It is a linked list of wxLayoutObjects
which can arrange and display them on any wxDC. I am trying to keep
this class as simple as possible, to be just the core layout
engine. All "convenience" functions should be defined in classes built 
on top of this.
The wxLayoutList is derived from kbList, a double-linked list with an
interface modelled after the STL list. As wxLayoutList depends on the
way kbList treats iterators (i.e. the iterator value after an insert() 
or erase() operation), I don't feel like rewriting it for wxList.

wxlwindow :

Contains a class wxLayoutWindow, derived from wxScrolledWindow which
can directly be used as a rich-text display or editing window. The
function responsible for keyboard handling is virtual and can be
overloaded for different keybindings. wxLayoutWindow can sent fake
menu-events to the application to react to the user clicking on
objects.

wxlparser:

Contains several high level functions operating on
wxLayoutList. Currently implemented is inserting of text (including
linebreaks) and export of objects, text or html.
Planned for the future is an html parser for importing html.


wxLayout.cpp is a simple test program. It will export Text and HTML to
stdout and demonstrate some of the features and bugs of wxLayoutList.

There are still things to do and I'm working on them. :-)

Karsten Ballueder <Ballueder@usa.ne>          29 June 1998

