
              **********************************************

                             guifront.library

                     GadTools based GUI layout engine

                                Release 1.2
                           Library version 38.1

                  Copyright (C) 1994,1995 by Michael Berg
                            All rights Reserved

              **********************************************

Contents
--------

1. Introduction

2. Installation

3. Requirements

4. Usage

5. Author information

6. Credits

7. History


1. Introduction
---------------

This library provides a means of creating fully font sensitive graphic user
interfaces (GUIs) with a minimum of programming efford. It also provides a
couple of visual enhancements over GadTools, and a more convenient method
of handling gadget hotkey shortcuts.

The most important features of GUIFront is:

* GadTools foundation, very easy to come to grips with
* Generates fully font sensitive interfaces
* Automatic hotkey handling, including shift-cancellable buttons
* Easy backfilling of windows
* Automatic group framing
* Frame headlines
* Public screen support
* New GETALT_KIND with images for file, dir, font, screenmode and "other"
* Automatic ASL requesters
* Hotkey aliasing - use ENTER or even F10 as gadget hotkeys
* Offers attractive new XEN look
* Easy to program, tags with suitable default values used most everywhere
* Executables are generally small, most code embedded in the library itself
* Fully supports localizing, including gadget labels and menus
* Preferences editor (localized) allowing customization of applications
* Simple installation (only one library and the preferences editor)
* Small - library ~40k, prefs editor ~30k

The preferences editor allows you to customize...

* Gadget fonts
* Frame headline fonts
* Frame headline style (text style, color, left/center/right leading etc)
* Gadget rendering style for each gadget kind (XEN or normal)
* Refreshing (simple or smart)
* Backfill patterns
* Public screen information

Every setting is controllable on a per-application basis, allowing the user
full control over visual appearance for each application.

2. Installation
---------------

To install GUIFront, copy the library to your LIBS: directory and the
preferences editor to your SYS:Prefs directory. If you want the preferences
editor localized you must also copy the appropriate .catalog files to your
LOCALE: directory.

To simplify installation even further, I have provided installation scripts
for use with both IconX and Commodore's Installer utility. Simply double
click the one which is appropriate for your machine and watch the
fireworks.

3. Requirements
---------------

The GUIFront library and its editor both require at least AmigaDOS 2.04.
Any attempted use under kickstart 1.2 or 1.3 will fail.

The developer includefiles were written speciffically for the SAS/C
compiler. They probably work under most other compilers as well, but may
need some tweaking (as of release 1.2 the GNU compiler is also directly
supported).

4. Usage
--------

To maximise code reusability, GUIFront has been implemented as a shared
library. To use any of the library functions, you must first successfully
open the library, as illustrated below:

    #include <proto/guifront.h>
    #include <libraries/guifront.h>

    struct Library *GUIFrontBase;

    main()
    {
        if (GUIFrontBase = OpenLibrary(GUIFRONTNAME, GUIFRONTVERSION))
        {
            /* GUIFront functions may now be called */
            ...;
            CloseLibrary(GUIFrontBase);
        }
    }

Note that as of release 1.2 (library version 38), the GUIFront distribution
also comes with AutoInit code for use with SAS/C 6.x. AutoInit means that
you do not have to worry about opening and closing guifront.library,
because the compiler does it for you automatically. To enable
autoinitialization you must link your code with guifront.lib. Please refer
to your SAS/C manual for more information on auto initialization code.

For examples on how to use GUIFront, please refer to the included example
programs. You will find a more detailed description of the individual
GUIFront library functions in the developer directory (doc/guifront.doc).


5. Author
---------

If you have any comments or suggestions regarding GUIFront, do not hesitate
to contact me. You can reach me on any of the following adresses:

          E-mail: mberg@datashopper.dk  (preferred)

            Fido:  2:238/ 24.28
        AmigaNet: 39:140/101.28

          S-mail: Michael Berg
                  Lyngens Kvarter 20 st.
                  7400  Herning
                  Denmark


6. Credits
----------

GUIFront could not have become a reality without the helpful assistance of
the following persons (in no particular order):

- Nico François for suggestions and invaluable programming assistance.
  Thanks pal! :-)

- SAS Institute for supplying the necessary compiler magic

- Volker Stolz for the Oberon developer files
- Stefan Schulz for the Modula-2 developer files
- Gunther Nikl for the GNU support
- George Beasley the E developer files

- Doug Dyer for his helpful comments

- Mike Barsoom for helpful comments and (indirect) AmiNet access

- Roger Nordin and the rest of the SPOT.BETA gang for betatesting and
  suggestions

- Magnus Holmgren for the swedish translation

- Michele Giorato for the italian translation

- Stefan Stuntz for MUI. Truly a remarkable piece of work.

- The Amiga hard- and software engineering crews for creating the Amiga

- Stig Poulsen for Fido- and (partial) Internet support

- DataShopper Danmark for Internet support

7. Library History
------------------

The following denotes the most signifficant changes made to the library.
The most recent version is listed first.

For a history of the preferences editor, please refer to GUIFront.guide in
the Prefs directory.

11.10.95 - Release 1.2, library version 38.1 (Public release)
    - All source recompiled with SAS/C 6.55.
    - Fixed problems with layouting empty groups
    - Minor problems with the autodocs fixed (Mike Barsoom, Volker Stolz)
    - Public Screen support! Hooray! :-)
    - Added autoinit code for SAS/C 6.x users
    - Added GUI_LockGUI tag (works like GF_LockGUI())
    - Added masking control tags (GUI_GadgetMask, GUI_GroupMask,
      GUIL_GadgetMask, GUIL_GroupMask)
    - Fixed serious layout problem with GUILF_EqualSize (Arthur Choung)
    - Added missing documentation for ALT_AslTags
    - Various optimizations in layout engine
    - Added GNU support (Gunther Nikl, gnikl@informatik.uni-rostock.de)
    - Added Oberon support (Volker Stolz, vok@tindrum.tng.oche.de)
    - Added Modula-2 support (Stefan Schulz, schulz@rhrk.uni-kl.de)

8.10.94 - Release 1.1, library version 37.3 (Public release)
    - Automatic ASL requesters did not work if there wasn't a BUTTON_KIND
      somewhere in the GUI.
    - Arrow images were rendered incorrectly in some situations.
    - Added GUI_ScreenTitle tag
    - Added GUI_ActualFont tag
    - Smart refreshing did not work properly. A zip-window operation would
      cause gadget labels to disappear (i.e. not get refreshed). Fixed.
    - GUIFront quietly gobbeled up all IDCMP_REFRESHWINDOW events, making
      it impossible (or at least unfeasible) to render custom graphics in
      a GUIFront GUI.
    - Added GFA_VisualUpdateSigBit and GFA_VisualUpdateSigTask to enable
      applications to update their GUIs when their preferences have been
      edited.
    - Using a keyboard shortcut for a button kind sometimes locked up
      the application. Fixed (hopefully).
    - Implemented ALTI_GetScreenMode (gadget image + automatic requester)
    - Added a distinct image for ALTI_GetScreenMode and ALTI_GetFont
    - Fixed various minor and a couple of major bugs
    - Distribution now includes E developer files (courtesy of George Beasley)
    - GTLV_MakeVisible now supported under V37 (goodbye GTLV_Top! :-)
    - Fixed the most obvious integer math roundoff errors.

18.6.94 - Release 1.0, library version 37.2 (Public release)
