

                       MUI - MagicUserInterface

       A system to create and maintain graphical user interfaces

                              Version 2.0

                          User Documentation

                (c) Copyright 1992-94 by Stefan Stuntz

                             - ShareWare -

Introduction
************

The concepts behind MUI
=======================

   MagicUserInterface (also known as MUI) is a complete system to create
and maintain graphical user interfaces. The creating GUIs has been a
big problem for a very long time. Mainly because the programmer got
only a minuscule amount of support from the operating system. Beginning
with Kickstart 2.0, the `gadtools library' was a step in the right
direction, however, even using this library to generate complex and
flexible interfaces remained difficult and still required a great deal
of patience.

   Today there are tools available that make the use of `gadtools
library' much more simplified, but even these alternatives are not
often satisfying.

   The largest problem in existing tools for the creation of user
interfaces is the inflexible output.  Most of the programs are still
using built-in fonts and window sizes, thus making the use of high
resolution graphics hardware adaptors nearly unbearable.  Its been said
that Amiga users have had to live with such similar shortcomings all
along.  Even the preference programs on the Workbench are still only
using the default font, topaz/8!

   MUI corrects all these disadvantages!  The central scheme behind MUI
assumes that only the user (and not the programmer) of an application
knows how the program he is using best fits his personal needs, and that
of his computer system.  Because MUI applications don't contain any
absolute values for sizes or positions, the programmer instead only
defines objects and groups of objects.  Such objects are defined on run
time by MUI according to the users settings.

   Consequently, an MUI application gives the user *many* more important
advantages:

   - Font sensitivity

     In MUI Its possible for the font to be set in every application.
     No more times where the A2024 users had to suffer from the
     programs that only used the tiny topaz/8 font. Even better, MUI
     gives the user no restrictions on which fonts he may use,
     especially proportional fonts!  The proportional fonts make a
     program much more appealing and even reduces the space a program's
     window uses.

   - Changeable window sizes

     All MUI windows have a sizing gadget which allows users to change
     the window size until it suits their needs. The smaller a window
     becomes, the closer control items within the window come together.
     The larger the window, the more space that will be used for
     displaying information (e.g. in list-views). The size and position
     of every window can be saved, thus giving you your favorite
     setting every time you start the program.

   - Flexibility

     Almost all elements can be changed by the user regarding their own
     personal tastes. The user can define the thickness of borders, how
     the scroll-bars look, mhich images have to be used, and how much
     space should be inserted between the lines of a list-view.  MUI
     gives the user a lot of options to change the look and feel of an
     MUI based application.

   - Controlling by keyboard

     Most of the time it is expected that graphical user interfaces
     (GUIs) and of course MUI applications as well, are controlled by
     the mouse.  However, many users prefer the use of the keyboard for
     faster execution of operations, and because it can be more
     comfortable.  Because of this, all MUI objects (e.g. string
     gadgets, radio buttons, or list-views) can be controlled by the
     keyboard as well as by the mouse! You can even put away your mouse
     completely if you wish!  Its no longer needed!

   - System integration

     MUI applications cooperate with the operating system in many ways.
     Every program can be iconified and uniconified by pushing a gadget
     or by using the Commodities exchange program.  Furthermore, every
     MUI application has an ARexx-Port that allows you full remote
     control (and more) over the user interface.

   - Adjusting to its environment

     It doesn't matter which screen or screen size your MUI applications
     run on.  Workbench or public, 640x200 or 1280x1024 pixels, 4 or 256
     colors, it doesn't matter!  Every application can be made to open
     on any screen, and adapts itself to it's environment.

   All of the MUI settings listed above (and more) can be changed by the
user via the MUI preferences program.  This can be set for every
program in one setting (global) or can be set for each and every single
application.

System Requirements
===================

   MUI requires version 2.0 of the Amiga operating system or higher.

   Kickstart 1.3 is *not* supported; this operating system has been
considered to be obsolete.

   The use of MUI on a harddisk is *highly* recommended, although floppy
disk usage is still possible.  Due to the modular concept behind MUI
the first application startup may last "a little" longer.

   MUI does not require a special processor, but of course the faster
CPUs make life easier. Many complex calculations are needed for the
management and layout of the objects, so a "base" 68000 based machine
could be a tad slow.

   MUI applications can run on machines only equipped with 512K of free
RAM, but could become obsolete quite soon. One Megabyte (1024K) RAM
should be sufficient even for the most complex MUI applications.

Installation
============

   MUI is distributed together with the Installer program from
Commodore. Therefore making installation a breeze!  Just double-click
on the `MUI-Install' icon and the installation procedure is on it's way.

Using MUI Applications
**********************

Windows
=======

   As mentioned previously, nearly all MUI windows are resizeable.  This
allows the user to determine if he wants his control items (i.e.
buttons, list-views, a.s.o.) small and space saving, or bigger and easy
to use. It would be very annoying to adjust the size and position every
time an application appears, all MUI windows remember their size and
positions and uses these values when the application appears again.
This is true for the "normal" window position and size as well as for
the values of the window in a "zoomed" state. (after hitting the zoom
gadget)

   After rebooting the data for the windows are usually lost, if you
have not saved them by hitting the `Save' button in the preferences
window. By doing so, all data regarding the windows are saved and are
available even after a reset.

   In addition to the depth and soom gadget there is a third button in
the title-bar of every MUI window. This button is used to iconify the
whole application. All windows (and screens if available) in the
application are closed and a little appicon appears on the Workbench or
default screen. Double-clicking on this appicon makes the program open
its window(s) (and screen) again.

Keyboard control
================

   All control items in an MUI window can be controlled completely by
the keyboard. All the known keyboard shortcuts (marked by an uderscore
character) are supported. However, this method is limited if used with
list-views or cycle gadgets.

   Because of this the `TAB' cycling (up until now only used for string
gadgets) has been made available for MUI applications. You can activate
every object (not only string gadgets) by hitting the `TAB' key. As
soon as you activate an object it can then be controlled by the
keyboard.

   - Button gadgets

     `Return' is the equivalent to clicking the gadget with the moust
     button. Pressing and releasing a button is handled in a different
     way. If you push a knob and then wish you cancel this action, you
     may do so by additionally pushing `Shift' before releasing the
     `Return' key.

   - Checkmark gadgets

     An active checkmark gadget can be controlled by `Space' or
     `Return'.  The value of this gadget is toggled every time you
     press the corresponding key.

   - Slider gadgets

     The value of the horizontal or vertical slider gadgets can be
     changed by using the four cusor keys. Using qualifier keys
     additionally allows you to change the increase/decrease amount of
     the sliders.

   - Cycle gadgets

     An active cycle gadget can be switched by using the cursor keys.
     The `Return' key pops up a popup menu (as long as you did not
     disable this feature in the MUI preferences program).

   - Radio-Buttons

     Radio buttons are also controlled by the cursor keys.

   - List-Views

     In an activated list-view the cursor can be moved line by line
     using the cursor keys and together with the corresponding
     qualifier keys pagewise or even to the top or to the bottom. The
     `Return' key simulates a double-click.

     If multiselecting is allowed in a list-view, you can select the
     different items by using the `Space' key.

   - Windows

     For applications opening several windows simultaneously you can
     switch from one window to another by using the `Alt-Tab' key or the
     `Shift-Alt-Tab' key respectively. If the window has a close gadget
     , you can hit the `ESC' key to close the window.

   All information refers to the default settings. With the preferences
program, you can change all the keyboard combinations until the suit
your needs.

Cycle gadgets
=============

   Besides the MUI cycle gadgets supporting their "normal" function
(next entry by clicking on them, previous entry by holding `Shift'
additionally), offers a menu feature.  This popup menu appears as soon
as the text section of the cycle gadget is hit, then allows a quick and
easy selection of one of the listed entries.

   The behaviour of the popup menus can be influenced within the
listview section of the MUI preferences program.

Commodities interface
=====================

   Every MUI application ties itself in the system as a commodity.
This is nice in that the user can control any MUI application via the
`Commodities Exchange' program, i.e. MUI Applications can be iconified
or canceled.

built-in ARexx Port
===================

   Every MUI application is able to receive commands via the built-in
ARexx port. Here are some default commands which are understood by
every program:

   - QUIT

     Ends the application.

   - HIDE

     Hides (iconifies) the application

   - SHOW

     Shows (pops up) an iconified application.

   - INFO ITEM/A

     According to the given parameter the result string is filled with
     the following contents:

        - "title"       Title of the application

        - "author"      Author of the  application

        - "copyright"   Copyright message

        - "description" Short description

        - "version"     Version string

        - "base"        Name of the ARexx port

        - "screen"      Name of the public screen

   - HELP FILE/A

     A list of all ARexx commands available for the application is
     written into the given file. In addition to the default commands an
     MUI application can (and of course should) support many application
     specific commands. The help list will contain these commands as
     well.

   In case of an error, MUI returns the following values to the rexx
script:

   - -1

     Wrong command definition in host program. Should never happen.

   - -2

     Out of memory.

   - -3

     Unknown ARexx command.

   - -4

     Syntax error.

   Some example scripts can be found in the `Rexx' drawer on the main
directory of the distribution.

Preferences-Programm
********************

Introduction
============

   With traditional applications, the user usually has no or only very
limited possibilities to influence the look and feel of an user
interface. With MUI, interfaces are a lot more flexible. The programmer
only specifies very few things about the outfit of particular gadgets,
what actually is displayed on screen depends on the users preferences
setting.

   To adjust these settings, MUI comes with a preferences program
called `MUI'. After installation, this tool can be found in the
system's preferences drawer.

Main Window
===========

   The main window of the preferences program consists of three
sections; an application info at the top, the traditional preferences
buttons at the bottom and some configuration pages in the middle.

   With the application popup at the top of the window, you can adjust
the program for which you want to edit the preferences. MUI maintains a
list of all previously started applications automatically.  The special
string "Global" indicates the global default setting.  Usually you will
configure a lot of global settings and only very few application
specific changes, e.g. different public screens or iconify icon
positions.

   The middle part of the window is made up of several pages that
contain all the possible configuration items.  A detailed explanation
for all groups follows in the next chapters.

   At the lower part window border are the `Save', `Use' and `Cancel'
buttons, already common in several of the system preference programs.
Additionally you'll find a `Test' gadget which can be considered to be
the most useful function in the preferences program.  It will be handy
in the beginning to use the `Test' options to play around with the
different settings until you have found the configuration that best
fits your needs. Pushing the `Test' button makes all currently running
applications adopt their parameters from the new values. Thus making it
possible to change the settings of a running application and
immediately notice the consequences of your actions.

   The `Use'-Gadget saves the changes to the `ENV:' drawer and then
ends the preferences program. Please note that the `ENV:' directory
usually resides in the `RAM DISK:' and a reset discards all the
settings made. If you want your settings to be permanent, please use
the `Save'-Button. In addition to global and application specific
settings, all window positions will be saved.

   If you hit `Cancel', all changes will be discarded. Applications
that have already adjusted themselves to the new values because you hit
`Test' automatically return to their previous settings.

Font Page
=========

   MUI applications may use some user configured fonts:

   - `Normal'

     This font is used for everything as long as no other font was
     explicitly specified by the programmer.

   - `List'

     The default font for list-views.

   - `Tiny'

     This font is used for small an quite unimportant descriptions. The
     lettering of the scale object (see `MUI-Demo') is using this font
     for example.

   - `Fixed'

     If a program needs a fixed width font, it uses this one.

   - `Title'

     This font is used for the group titles.

   If a font field stays empty MUI uses appropriate default fonts, i.e.
the system default font for the fixed font and the default font of the
screen for all the others.

Frames Page
===========

   Frames are important elements to create a straightforward graphical
user interface and to separate single groups from each other. However,
frames are a matter of taste, therefore you can change their appearance
in several ways.

   In usual (non MUI) Amiga programs, all frames have vertical lines
with double the thickness of horizontal lines. This outfit was
introduced lots of years ago when 640x256 with a pixel aspect ratio of
nearly 1:2 was the standard resolution. Now days, hi-res graphic
adapters and flicker-fixers often allow an 1:1 aspect ratio,
eliminating the use of double width frames. MUI allows you to change
the thickness of the frames using the `Thickness' cycle gadget.

   Framed groups can have a title, and the color of this frame title
can be set via the `Title Color' gadget. Currently three settings are
available:  Black, White and 3D.

   The title of the group is centered horizontally at the upper part of
the frame. Selecting `Title Pos' changes the vertical position of this
title text. `Centered' centers the title text vertically, `above' sets
the base line of the text to the position of the frame.

   When a programmer creates a MUI application, he doesn't set the
outfit, but only the type for the frames. For example, a button gadgets
gets a button frame and a string gadgets gets a string frame. The
appearance of the frames is determined by the user. Therefore all
possible frame types are collected in a list:

   - Button frame

     for usual button gadgets, as for example for the `Edit' button
     below this list.

   - Image frame

     for small buttons that contain nothing but an image, e.g. the arrow
     gadgets in a scroll-bar.

   - Text frame

     for text gadgets on which can neither be clicked upon nor can be
     edited and are used only to display information, e.g. status lines.

   - String frame

     for string gadgets.

   - Read list

     for list-views that only display a list and that can't be clicked
     upon.

   - Input-List

     for list-views in which the user can select entries, e.g. all
     list-views of the MUI preferences program.

   - Prop frame

     for all prop gadgets, used for example within scroll-bars and
     sliders.

   - Group frame

     to group objects, for example the buttons for the subwindows of the
     MUI preferences program are surrounded by a group frame.

   - PopUp frame

     frames a cycle gadgets popup menu.

   - Virtual frame

     is used in virtual groups.

   Right beneath the frame list, some gadgets allow adjusting the look
of the currently selected frame. You can select one out of a list of
predefined frames with the `Type' cycle gadget, every frame is offered
in an either raised or recessed look.

   Additionally, for every frame type, the distance between the frame
itself and its contents can be changed by setting the appropriate slider
gadgets.

   At the upper right of the frame configuration page, some slider
gadgets influence several spacing values such as window border spacing,
inter group spacing and radio button spacing. Just try some changes to
see what fits your taste.

Listview Page
=============

   The `Leading' value determines the number of additional pixels that
are inserted between the lines of a listview to improve its
readability. According to the font used and your personal taste, it
could make sense to set higher values, especially if you use small
fonts such as `topaz/8';

   `Smoothing' enables smoothing of list-views. This setting effects
the position of the list in that it doesn't follow the scroll-bar moves
immediately, but instead is delayed for some short amount of time. The
result is smoother scrolling! Selecting zero (0) prevents the
list-views from doing any smoothing at all.

   In multi select list-views the user can select either `shifted' or
`Always'. `Shifted' enables the usual multi select mechanism, i.e. you
have to hold down the `Shift' key while you are selecting the entries.
If you select `Always', you don't have to hold down the `Shift' key.

   `Refresh' determines the kind of the list-view refreshing.  `Linear'
refreshes the lines as usual from top to bottom, `Intermixed' refreshes
the lines intermixed, what should result in a "nicer" appearance.
Especially on slower machines!

   The position of the arrow gadgets at the scroll-bars are controlled
with the `Arrows' cycle gadget, and three different options are
available.

   The cycle gadgets of MUI supply a popup menu for easier usage, which
is opened as soon as you hit the gadget. It allows an easy and quick
selection of the desired entry.

   `Level' determines the minimal number of entries that are needed to
supply a popup menu. If you don't like popup menus, all you have to do
is select a high value and you'll never see them.

   Usually popup menus appear directly under the gadget. For fast usage
and less mouse movement you can configure the popup menus in a way that
let the active entry appear just below the mouse pointer. For this
reason there are the two options for the `Position' gadget.

   MUI offers a new register class which allows quick and easy selection
of an active page within a page group. You can have a look at its
layout by viewing the `Preview' picture coming with this distribution.
The position of the `Register Level' slider determines up to which
nesting count, page groups will be shown as registers. If you set this
to 0, no register layout will be used at all, instead you will get
standard cycle gadgets for page swapping. Page groups with more than
`Max Pages' pages will always be shown with cycle gadgets.

Images Page
===========

   Graphical user interfaces often use little images, e.g. arrow
buttons or slider knobs. A MUI application usually doesn't define these
images itself, it just says it wants an arrow and MUI supplies this
arrow. This allows the user to configure, how his arrows actually shall
look like.

   Here is a list of all available images:

   - `ArrowUp', `ArrowDown', `ArrowLeft', `ArrowRight'

     Four arrows for the four different directions.

   - `CheckMark', `Radio-Button', `Cycle'

     Used as image for the well known user interface elements.

   - `PopUp', `PopFile', `PopDrawer'

     Images for popup buttons besides string gadgets. `PopUp' is used
     if neither a file nor a drawer is wanted.

   - `Drawer', `HardDisk', `Disk', `Chip', `Volume', `Network', `Assign'

     Default images for the entries of a file requester.

   - `TapePlay', `TapePlayback', `TapePause', `TapeStop', `TapeRecord'

     Used within tapedeck applications.

   - `Prop Knob', `Slider Knob'

     Image for the knob within a proportional or slider gadget.

   - `BG Window'

     Used on every place that doesn't match another background type.

   - `BG Groups'

     Used within register pages or virtual groups.

   - `BG Requester'

     Background for MUI requesters, e.g. for the `About' requester of
     the preferences program.

   - `BG Textfield'

     Framed text fields (e.g. status lines) use this background type.

   - `BG Button'

     used for buttons containing text and for cycle gadgets.

   - `BG Selected Gadget'

     a gadget which was selected is marked with this background
     (besides the inversion of the frame).

   - `BG Listview'

     appears behind the lines of a listview.

   - `BG Listview Cursor'

     the cursor in a listview.

   - `BG Listview Selected'

     selected entries in a listview.

   - `BG Listview Selected+Cursor'

     the cursor on a selected entry of a listview.

   - `BG Prop-Gadget Container'

     the background in a prop gadget, i.e. the area on which the knob is
     moved around.

   - `BG Slider Container'

     the background in a slider gadget.

   The look of the active image can be configured with the right side
of the image page. Several different image types are available:

   - Pattern

     Some less complicated pattern are already built into MUI. These
     patterns are mainly used as backgrounds but might also be useful
     for some standard images (e.g. for prop gadget knobs).

   - Builtin

     MUI offers a built-in outfit for all standard images, all of them
     are visible in this list. MUI's built-in images are scalable, they
     grow with the font size.

   - Pen

     Mainly useful for background settings; you can select a specific
     color which will be used to draw a simple rectangle for the image.
     Three possibilities are offered for selecting a color: you can
     reference a system pen or a colormap entry or you can tell MUI to
     directly allocate a single color by specifying its RGB values. The
     last choice is only available with Kickstart 3.x and does only
     make sense if the parent screen contains enough sharable colors.

   - Boopsi

     A Boopsi image a shared system library that contains some specific
     commands for drawing. Boopsi images support resizing and are
     mainly useful for things like prop gadget knobs.

   - Brush

     MUI Brushs' are traditional ILBM brush files saved with a special
     color setting that allows MUI to translate these images to
     different screens with different colors. MUI comes with lots of
     brushes and you can of course take a paint program and draw your
     own ones.

     Note: These images are not resizeable.

   - Alien (only for Kick 3.0 and above)

     Starting with Kickstart 3.0 there are the so called `datatypes'
     available.  With these datatypes it is possible to load any
     picture file, no matter if its IFF, GIF or another format. MUI
     supports that and allows you to use any datatype picture for
     background or standard images in all applications.

   Together with the `All', `None' and `Guess' buttons, you can
simplify the task of selecting many images at once. If you click on
`Guess', MUI will try to find a matching image for all currently
selected items in the image list.

Pens Page
=========

   When drawing its user interfaces, MUI doesn't use the system supplied
pens directly. Instead, it uses a private set of pens which usually
reference the system pens but are also completely user adjustable.

   * Shine

     used for shining edges of 3d looking objects.

   * Halfshine

     used especially for the XEN frame design. Should be a color
     between shine pen and background pen.

   * Background

     used for backgrounds.

   * Halfshadow

     used especially for the XEN frame design. Should be a color
     between background pen and shadow pen.

   * Shadow

     used for dark edges of 3d looking objects.

   * Text

     used for all kinds of texts.

   * Fill

     rarely used, maybe you can find it in some builtin rasters for
     image configuration.

   * ActiveObj

     the active object is surrounded with this color.

System Page
===========

   The `System window' contains some settings that refer to the
cooperation of MUI and the operating system.

   The very first gadget here allows to adjust a public screen for the
application. The popup button here also offers a way to the builtin
screen manager.

   Windows can be refreshed either `smart' (fast but eating chip
memory) or `simple' (slower but no need for memory). The `Window
Refresh' cycle gadget can be used to set one of these refresh types.

   When redrawing windows after a resize operation, MUI also offers two
possibilities, adjustable with the `Window Redraw' gadget.  Just choose
the one you like better.

   The `Startup' and `Shutdown' string gadgets contain two commands
that are automatically executed before and after running an
application. It is possible for example to use an external screen
manager for opening the desired screen for the application (if the
built-in screen manager doesn't fit your needs).  Another possibility
is to use a simple `echo' command to create a log about starting and
stopping of applications.

   The `Iconify-Hotkey' allows you to enter a key combination that
iconifys the application (and pops it up again). The format is the same
as the one described for the input events of the `commodities.library'.

   If the `Iconify-Gadget' checkmark is set, every window of the
application gets an additional gadget in the upper window frame that
makes the window iconify as soon as you hit it.

   Usually an appicon is created for every iconified application on the
Workbench. Double-clicking this icon reactivates the application. If
`Iconify-Icon' is not set, no AppIcon appears. The application
activation can still be done via the iconify hot-key or the
`Commodities Exchange Program'.

   `Start Iconified' determines, if the application will be iconified
at start-up. This will make sense, for example, if you place some tools
into the `WBStartup' drawer, to make them available via keystroke.

   All keys that are used to control the MUI applications, can be
configured at the right side of the system group. The entries of the
list directly refer to the keyboard actions, the format for entering
strings is the same as the one used for the input events of the
`commodities.library'. Special attention earns the `Press' key. MUI
needs this key to be able to react on key releases. Therefore this
qualifier description has to contain the string `-upstroke'.  A new key
is only accepted when you acknowledge the string gadget with `Return'.
MUI does a syntax check on your inputs and beeps the display when the
entered key is invalid.

Public Screen Manager
=====================

   If an application is started, MUI looks for the configured public
screen. When none is found, it checks the list of preconfigured screens
from the builtin screen manager and if successfull, opens the screen
with the specified properties.

   The screen managers window is divided into three pages. On the
`Attributes' page, you will find four string gadgets that allow
configuration of a screens public name, his title, the default font and
a background picture.  The background picture can be any picture file
as long as a matching datatype is installed in your system. This
feature is only available under Kickstart 3.0 and above.

   Besides these essential values, the screen can have the following
features:

   - `Auto Scroll'

     If the screen was set larger than the visible part was defined, it
     will be scrolled automatically as soon as the mouse touches the
     screen border.

   - `Draggable'

     If the screen doesn't have this attribute, it can't be dragged.

   - `Exclusive'

     The screen cannot share its display with other screens; it will be
     displayed separately (Kick 3.x only).

   - `Interleaved'

     This attribute reduces - if set - the flicker, that appears
     especially during the scrolling of lists on colorful screens (Kick
     3.x only).

   - `Open Behind'

     The screen will be opened behind all other screens.

   - `System Default'

     The screen is declared to be the system default screen. All windows
     that are opened on the system's default screen (e.g. shell
     windows), are automatically routed here.

   Size and resolution of the new screen are adjustable on the `Display
Mode' page. It offers gadgets similar to the system screen mode
preferences program and shouldn't need further explanation.

   Finally, the `Palette' page allows configuring a screens color
palette. It works much the same way as the systems color preferences,
but it doesn't open a seperate screen. Thus, you will only be able to
see your adjusted colors when you run Kickstart 3.x or above and when
your workbench screens contains enough sharable colors. Just like
system palette preferences, MUI allows to adjust the first and the last
four colors of a screen.

CLI Interface
=============

   The MUI preferences program supplies a small CLI interface that can
be used to give other programs access to MUI's built-in screen manager
utility.

   The syntax is:

     NAME,OPEN/S,CLOSE/S

NAME:
     Name of a preconfigured public screen

OPEN:
     Open screen

CLOSE:
     Close screen

ARexx Port
==========

ARexx Port
==========

   The preferences program contains a simple ARexx port, defining the
following four commands.

   * `SAVE'

     Does the same as the `Save'-Button.

   * `USE'

     Does the same as the `Use'-Button.

   * `TEST'

     Does the same as the `Test'-Button.

   * `CANCEL'

     Does the same as the `Cancel'-Button.

   Of course the *Note standard ARexx commands: USE_AREXX can also be
used.

Other Topics
************

Registration
============

   "MagicUserInterface" is a rather complex product that has always
consumed and will continue to consume a large amount of my time. It was
a lot of work to finish, but I hope this work will be appreciated and
that a lot of MUI based applications with nice and flexible user
interfaces will be available soon.

   For I cannot afford just working for fun, I decided to release MUI
as shareware. The unregistered version is not able to save some of the
configuration items of the preferences program. Of course these
restrictions won't affect the operation of MUI applications, all
important values (window positions, screens, system configs) are usable
without registering. Other items will contain reasonable default
values. Even with these default values, MUI applications will be more
attractive and usable as most other programs.

   If you plan to use the full set of MUI's possibilities (different
fonts, frames, images, background pattern, ...) with all applications,
or if you just feel that MUI is good and should be supported, you
should register.

   Registered users will be shipped a disk with the newest public
release of MUI, along with a personalized, so-called "keyfile" that
enables loading and saving of the complete configuration data. This
keyfile will work with all future releases of MUI, so you can simply
download the latest version from your local bulletin board without
having to wait weeks for your update passing through the slow mail
channels.

The price for a MUI registration is

     20.- DM  (D-Mark),
     20.- SFr (Schweizer Franken),
     90.- FF  (French Francs),
     15.- US$ (US Dollar)
   or an equivalent amount of US$ 20.- (twenty!) in any other currency.
"Twenty" because I have to visit my bank and sell your foreign currency
which is some kind of expensive here in Germany. If you think your bank
does it cheaper, feel free to get some 15.- US$ at home and send them.

   The fastest, cheapest and easiest way to register is put the money
together with the filled registration form into a letter and send it to

     Stefan Stuntz
     Eduard-Spranger-Straße 7
     80935 München
     GERMANY

   Euro cheques (in DM) are also welcome, but please do not send any
kind of foreign cheques since the bank charges outrageous fees from
both the sender and the receiver. If you really feel you must use a
such cheques, please include extra $10.

   You can also transfer the money directly to my bank account, but
beware: international transfers via banks are very expensive.

     Stadtsparkasse München, BLZ 701 500 00, Konto 35-169929

   In any case, be sure to provide me with your name, address, phone
number and e-mail address for filing purposes. You can send this
information via electronic mail, if you wish. If you don't mind, this
data will be stored and processed in electronic form. There is a sample
registration form you can fill in the file "OrderForm".

   All registrations will be handled as fast as possible and should be
finished in about two weeks. Instead of registering MUI directly by the
author, you can also use one of the following registration sites. This
reduces my mailing costs and makes your registration faster.

   - U.S.A. and Canada

          Robert Blayzor
          P.O. Box 807
          Johnstown, NY 12095-0807
          
          Phone: (518) 883-5326 (data/fax/bbs)
          
          electronic mail:
          
          InterNet/UUCP: robertb@liquid.albany.ny.us
                FidoNet: 1:267/131.0
               AmigaNet: 40:714/1.0
                 C-Link: 911:6150/1.0
          
          Make all payments payable to: Robert Blayzor
          
          Acceptable payment methods: US Money Orders & Bank/Personal Checks
          
          Personal checks must wait 10-15 days to clear unless certified!
          (All payments in US dollars ONLY!)

Updates
=======

   Whenever a new release of MUI gets released, I will post some
information in the appropriate newsgroups of some electronic networks.
The new archive will soon be available on many bulletin boards and on
all `aminet' FTP servers. Major releases will also come with some PD
disks, especially on Fred Fish's collection.

   As mentioned above, registered users will neither need a new keyfile
nor a special personalized program version. They can use all new
features immediately.

   Of course, every MUI update will be completely compatible to all
previously released versions. All applications will continue to run and
automatically benefit from possible enhancements in user interface
design.

Support
=======

   If you have some questions, comments, suggestions or even flames,
please feel free to contact me at one of the following addresses. If
you send your letter via e-mail, there's a good chance for getting a
quick reply.

     Snailmail: Stefan Stuntz
                Eduard-Spranger-Straße 7
                80935 München
                GERMANY
     
         Phone: +49-89-313-1248
     
        e-mail: stuntz@informatik.tu-muenchen.de

Acknowledgments
===============

   The author wishes to thank

   - Stefan Becker

     ... he seemed to have very few time but nevertheless gave some
     valuable hints. Parts of his `ToolManager' source code were a
     great help during MUI's development.

   - Martin Berndt ... solved some tricky problems.

   - Robert Blayzor ... reworked the english manual.

   - Dirk Federlein

     ... for his application `DFView'. With over 100 kByte of source,
     locale support and documentation in three different formats I
     don't dare speaking of an "example-program" any more.
     Additionally, he translated parts of this user documentation.

   - Georg "gucky" Heßmann

     ... for reporting some bugs and for his demo program `DVIprint'.

   - Martin Horneffer and Albert Weinert

     ... for creating the Oberon language interface.

   - Martin "XEN" Huttenloher

     ... has drawn many of the supplied images and also significantly
     cooperated in other parts of the MUI-Design. Furthermore he
     contributed the amazing background patterns, which are a small
     extract of his `MagicWB' package. Friends of an impressive and
     plastic Workbench should definitely take a closer look at his
     package `MagicWB'!

   - Kai "KCommodity" Iske

     ... wrote one of the several MUI calculators and reported lots of
     bugs.

   - Oliver "Mr.Coffee" Kilian

     ... for testing MUI on good old (and slow) 68000.

   - Klaus "kmel" Melchior

     ... for the two sample tools `WbMan' and `MUI-Exchange' and for
     endless lists of bug reports. He also painted the demo programs
     icons and supplied some BOOPSI images.

   - Wouter van Oortmerssen

     ... for the Amige-E interface.

   - Armin Sander

     ... for giving me my first ideas about object oriented GUI design.
     He told me a lot about classes and objects and made me start with
     MUI.

   - Matthias "tron" Scheler und Markus "corwin" Stipp

     ... for writing the first real MUI application, a message editor
     for the `Universal Mail System (UMS)'. Look out for `IntuiNews'!
     Additionally, Matthias wrote the sample program `Font'.

   - Andreas "goonie" Schildbach

     ... significantly influenced the design and functionality of MUI
     and is currently working on a MUI application, a phone and answer
     machine for ISDN. He made me think of some other things during our
     endless phone calls.

   - Wolfgang Schildbach

     ... for his text formatting code.

   - Christian Scholz

     ... for the Modula interface.

   - Ibrahim "radi" Solmaz

     ... who also prevented me from working with many phone calls but
     nevertheless was a valuable help sometimes.

   - Henri Veistera

     ... for the assembler interface.

   The last big thanks is reserved for all registered users of my file
requester MFR. Its success made me trying it with shareware again. I'm
sorry, that there was no update for MFR for such a long time, but I put
all my efforts on this new product. Hope I can release a new, MUI based
MFR soon.

Discussion
==========

   - "Why don't MUI's string gadgets support the clipboard?"

     There is a utility called `NewEdit' that adds clipboard support to
     all system string gadgets. Of course MUI string gadgets work with
     this utility too. You can find this thing on aminet or on some PD
     disks.

Disclaimer
==========

   THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDER AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE
COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

   IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY REDISTRIBUTE THE
PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS
OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

License
=======

   - This license applies to the product called "MagicUserInterface"
     (short "MUI"), a collection of programs for the Amiga computer,
     published by Stefan Stuntz under the concepts of shareware, and
     the accompanying documentation. The terms "Program" and "MUI"
     below, refer to this product. The licensee is addressed as "you".

   - You may copy and distribute verbatim copies of the program's
     executable code and documentation as you receive it, in any
     medium, provided that you conspicuously and appropriately publish
     only the original, unmodified program, with all copyright notices
     and disclaimers of warranty intact and including all the
     accompanying documentation, example files and anything else that
     came with the original.

   - Except when otherwise stated in this documentation, you may not
     copy and/or distribute this program without the accompanying
     documentation and other additional files that came with the
     original. You may not copy and/or distribute modified versions of
     this program.

   - You may not copy, modify, sublicense, distribute or transfer the
     program except as expressly provided under this license. Any
     attempt otherwise to copy, modify, sublicense, distribute or
     transfer the program is void, and will automatically terminate
     your rights to use the program under this license. However,
     parties who have received copies, or rights to use copies, from
     you under this license will not have their licenses terminated so
     long as such parties remain in full compliance.

   - By copying, distributing and/or using the program you indicate your
     acceptance of this license to do so, and all its terms and
     conditions.

   - Each time you redistribute the program, the recipient automatically
     receives a license from the original licensor to copy, distribute
     and/or use the program subject to these terms and conditions. You
     may not impose any further restrictions on the recipients'
     exercise of the rights granted herein.

   - You may not disassemble, decompile, re-source or otherwise reverse
     engineer the program.

   - You agree to cease distributing the program and data involved if
     requested to do so by the author.

Installer
=========

   Along with MUI comes the `Installer' from Commodore:

     Installer and Installer project icon
     (c) Copyright 1991-93 Commodore-Amiga, Inc.  All Rights Reserved.
     Reproduced and distributed under license from Commodore.
     
     INSTALLER SOFTWARE IS PROVIDED "AS-IS" AND SUBJECT TO CHANGE;
     NO WARRANTIES ARE MADE. ALL USE IS AT YOUR OWN RISK. NO LIABILITY
     OR RESPONSIBILITY IS ASSUMED.

