
 eXtensions to AES (XAES) ver 0.35 released by BitGate Software PD
 by Ken Hollis (aka. Jigen)

 XAES was completely written in Mark Williams C 1.0.4

 Version 0.35 is a major update from 0.30.  These routines have been fully
 optimized from the ones that were stated in 0.30 documentation.  Any
 other changes are described below, as with regular minor details.

 XAES Current Version information:
 """""""""""""""""""""""""""""""""
 o FORM_BUTTON call has been replaced with my own version of a form button
   routine.  It has yet to be updated to add DEFAULT button and RADIO BUTTON
   checking.
 o FORM_KEYBD call has been replaced with my own version.  I have made it
   so that the cursor wraps around when you move the cursor up and down, and
   such.
 o Popup routine is done, but is not currently used since I do not have the
   current Extended Object Types (reserved) from Atari Corp.
 o XAES was designed to be compatible with MultiTOS and is 100% compatible.
 o "Flying Dialog" routines are added but not used for the same reason as
   that in the Popup routine.
 o Macros to mainly used GEM functions are done.
 o Up to eight (8) windowed dialog boxes can be displayed at a time.
 o Sliders inside a window.  Not demonstrated, since I don't know if Atari
   is reserving a type for these.
 o Custom message buffer (MYMSG) with managers of two types:
   1.  Windowed dialog box manager with return values
   2.  Regular manager with returned values (if no windows are displayed)

 Bugs fixed:
 """""""""""
 o FORM_BUTTON no longer inverts the entire GEM desktop when the mouse is
   clicked on the desktop (item index -1)
 o FORM_KEYBD no longer leaves a nasty little spot where the cursor was
   last located.  This was due to a duplicated MU_MESAG handler, which to
   my knowledge led me to believe that it continued on after a RETURN call.
 o Popup routines no longer highlight items that are not selectable.
 o Closing a window that is overlapped over another window will no longer
   cause XAES to bomb.

 Bugs known:
 """""""""""
 o Maybe it's just with my CLI, but when I run the program, close all the
   windows correctly, and quit and exit to GEM, I try to run another program
   under the CLI, and it gives four (4) bombs.  Maybe I am doing something
   wrong, I dunno.  This matter will be investigated.  (Is this a bug?)
 o Since I am still working on the editing routines, you may get a glitch
   in there the editing cursor may be displayed in a dialog box that does
   not have an editable child.  Don't worry.  This is part of the testing
   process.
 o When you quit the program, XAES does not uniformly close all windows and
   THEN exit to GEM.  I rely on GEM and MultiTOS to close the windows when
   you exit.  This is risky programming, and will be fixed in the next
   version.
 o When you first open a window with an editable object, you can't edit it.
   The easy solution to this bug is to close it, or click on an object, and
   then re-open it and the text editing should work.  I have yet to fix
   this known bug.

 XAES Plans for version 0.4:
 """""""""""""""""""""""""""
 o Fix up FORM_BUTTON to make it sense the [RETURN] key to select DEFAULT
   buttons, select them, and such.
 o Fix up FORM_KEYBD in a minor way in which you can reposition the entire
   text cursor inside the editable field, and make an undo buffer.
 o Add some MultiTOS calls, along with AES version sensing.
 o Demonstrate the sliders inside a window, even though I don't have the
   EObTypes from Atari Corp. (just for the demo)
 o Add a maximize and minimize function for dialog boxes and for the entire
   program to make it so that you can move the program out of the way on
   MultiTOS, or as a desk-accessory.  If the user clicks on the "FULL" box
   of the window, it either minimizes it or maximizes it.  It does not,
   however, move the window out of the way.  You are required to do that.
 o Handle both types of messages in one separate routine rather than in two
   separate routines (GetMYMSG/DoDialogWindow).
 o Always center windows when they are created.  They can be centered based
   on the screen coordinates, or where your mouse is located at time of
   mouse click.

 XAES Plans for the future:
 """"""""""""""""""""""""""
 o Add menu bars inside a window and control them as well as dialog boxes
   at the same time.
 o Add desk accessory information, and a few XBRA routines by Dan Hollis
   if I can manage to swing it.  Hopefully so, but who knows.  :)
 o Based on AES type, assume number of maximum windows without having to
   keep a set counter.  Meaning, if the wind_create routine returns a neg-
   ative value for the window handle, no more windows can be created.
 o Update MYMSG and add more or less fields to it.
 o Optimize the code and make it faster.
 o Don't rely on OBX being a global variable.  Use local variables so that
   it can be made into a .O object file.
 o Get the indeces from Atari Corp. and create a modify dialog routine in-
   side the program.
 o Customize minimize window routine with replacement to icons instead of
   smaller windows.
 o Custom alert boxes with user controllable program process locking, mean-
   ing that if they want to display an alert box, and do NOTHING until the
   user clicks the "OK" or "CANCEL" buttons, they are forced to do so, but
   may move the dialog box around, or click on other applications, just not
   pass any information to the application.  If it is non-locking, if the
   user clicks another window while the alert box is displayed, it is inst-
   antly deleted from the screen.
 o Add popup menu bars inside a window only.
 o Use the scrap directory and other goodies.
 o Add cookies to assembly language routines (if I get any.)
 o Fix GEM menus and add submenus (if MultiTOS doesn't already.)
 o Add Flying Dialogs and Popup dialogs on desktop for MultiTOS with its
   own redraw message handler so MultiTOS doesn't screw the absolute crap
   out of them.
 o Add functionality to FORM_KEYBD where you can have a line longer than
   can be displayed on a single line.  When you enter more data, the text
   scrolls as you type it, and an arrow indicates which way you can move the
   cursor to view previously entered data.  Also add a function which pops
   up a window asking you which text you want to recover when you hit the
   UNDO key.
 o Many more features, and too many ideas.  :)

 As for now, the source code is included with each library that I am sending
 out to the local BBSes.  Although I am doing this, I will be changing some
 routines, and will soon no longer make the source code available to the
 public.  I will, however, keep posting demos to show off my progress.  I
 am planning to market XAES, so keep your shirt on, and don't be hasty.
 Once you see the power of these demos that I create that you can do with
 XAES, the possibilities are endless!

 XAES Contributors and Programming Credits:
 """"""""""""""""""""""""""""""""""""""""""
 Program, Concept, Design, and most of the ideas by Ken Hollis (Jigen)
 Code contributed by Dan Hollis from many major FTP sites on InterNET
 Examined code consists of E_GEM, GEM++, APP_LIB, and LET 'EM FLY
 Window slider routines by Tom Hudson
 Extended Object Type help and many ideas by Dan Hollis (Goemon on IRC)
 Cursor repositioning routines taken from E_GEM source code library (PD)
 Many thanks to Andrew Smith for the submenu code
 Thanks to Dan Hollis for moral support

 Current cursor repositioning routines are taken from E_GEM source code.
 I have made minor modifications to it and have included the functions
 within XAES.  I have yet to fix it up entirely, therefore making my own
 routines, so as not to break any copyrights.

 Contact addresses:
 """"""""""""""""""
 FoReMNET: Ken Hollis @ 3 (Atari-OH!)
	   Ken Hollis @ 181 (NovelConcepts BBS)
	   Ken Hollis @ 547 (Metal Shop)
 FidoNET:  Ken Hollis @ 1/106:168 (Bubba's Online Sport Shop (B.O.S.S.))
 Snail:    BitGate PD, c/o Ken Hollis, PO Box 580448, Houston, TX 77258
 Phone:    (713)-484-4001

 Any questions, comments, or ideas would be greatly appreciated!  I would
 be willing to answer any questions you have, or to give tips if you need
 them!  I am always ready and willing to help!

 -- Jigen '93 : "Happy Coding and Source-hunting!"

 **************************************************************************
 ** BitGate Software Public Domain -- Atari ST/TT/Falcon030 software/src **
 **                    XAES final due date:  July 1994                   **
 **************************************************************************
