Magic User Interface
Encyclopedia
The Magic User Interface is an object-oriented
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 system by Stefan Stuntz to generate and maintain graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

s. With the aid of a preferences program, the user of an application has the ability to customize the outfit according to personal taste.

The Magic User Interface (MUI in short) was written for AmigaOS
AmigaOS
AmigaOS is the default native operating system of the Amiga personal computer. It was developed first by Commodore International, and initially introduced in 1985 with the Amiga 1000...

 and gained popularity amongst both programmers and users. It has been ported to PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...

 processors and adopted as the default GUI toolkit of the MorphOS
MorphOS
MorphOS is an Amiga-compatible computer operating system. It is a mixed proprietary and open source OS produced for the Pegasos PowerPC processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the...

 operating system. The MUI application programmer interface has been cloned by the Zune
Zune (GUI toolkit)
Zune is an object-oriented GUI toolkit which is part of the AROS project and nearly a clone, at both an API and look and feel level, of Magic User Interface , a well-known Amiga shareware product by Stefan Stuntz....

 toolkit used in the AROS Research Operating System
Aros
Aros may refer to:*Aros , a river in J. R. R. Tolkien's Middle-earth legendarium*AROS Research Operating System, a free software implementation of AmigaOS* Aros, the original Viking name of Aarhus, the second largest city in Denmark...

.

History

Creating GUI applications on Amiga was difficult 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.

The largest problem in existing tools for the creation of user interfaces was the inflexible output. Most of the programs were still using built-in fonts and window sizes, thus making the use of new high resolution graphics hardware adapters nearly unbearable. Even the preference programs on the Workbench were still only using the default fixed width font.

In 1992 Stefan Stuntz started developing new object oriented GUI toolkit for Amiga. Main goals for new GUI toolkit were:
  • Font sensitivity Possible for the font to be set in every application.
  • Changeable window sizes Windows have a sizing gadget which allows users to change the window size until it suits their needs
  • Flexibility Elements can be changed by the user regarding their own personal tastes.
  • Controlling by keyboard Widgets can be controlled by the keyboard as well as by the mouse.
  • System integration Every program has a REXX port and can be iconified or uniconified by pushing a gadget or by using the Commodities exchange program.
  • Adjusting to its environment Every application can be made to open on any screen and adapts itself to its environment.


MUI was released as shareware
Shareware
The term shareware is a proprietary software that is provided to users without payment on a trial basis and is often limited by any combination of functionality, availability, or convenience. Shareware is often offered as a download from an Internet website or as a compact disc included with a...

. Starting from MUI 4.0 it is distributed for free but shareware key is still required to activate all user configuration options in MUI 3.

Application theory

UI development is done in source code level without aid of GUI builders. In MUI application the programmer only defines logical structure of the GUI and the layout is determined on run time depending on user configuration. Unlike on other GUI toolkits developer does not determine exact coordinates for UI objects but only their relative placement to each others using object groups. In traditional Intuition
Intuition (Amiga)
Intuition is the windowing system and user interface engine of AmigaOS. It was developed almost entirely by RJ Mical. Intuition should not be confused with Workbench, the AmigaOS spatial file manager, which relies on Intuition for handling windows and input events.Users may remember the initial...

 based UI coding programmer had to calculate placement of gadgets relative to font and border sizes. By default all UI elements are resizable and change their size to match window size. It can also automatically switch into smaller font or hide UI elements if there is not enough space on screen to display window with full contents. This makes it very easy to build UI which adapts well to tiny and large displays as well.

There are over 50 built-in MUI classes today and various 3rd party MUI classes.

Example


// Complete MUI application
  1. include
  2. include


// Sample application:
ApplicationObject,
SubWindow, WindowObject,
WindowContents, VGroup,
Child, TextObject, MUIA_Text_Contents, "Hello World!", End,
End,
End,
End;


This example code creates small MUI application with the text "Hello World!" displayed on it. It is also possible embed other BOOPSI
BOOPSI
BOOPSI is an object-oriented programming system for AmigaOS...

 based GUI toolkit objects inside MUI application.

Applications

Some notable applications that use MUI as a widget toolkit include:
  • Aladdin4D
    Aladdin4D
    Aladdin4D is a software program for modeling and rendering three-dimensional graphics and animations, for the Amiga platform. Aladdin 4D was originally created by Greg Gorby at Adspec Programing in Ohio, and was an updated version of an earlier 3D program called Draw4D Pro, which integrated...

     - 3D rendering/animation application
  • Ambient - desktop environment
  • AmiNetRadio - shoutcast player
  • AMosaic
    AMosaic
    AMosaic is an Amiga port of the Mosaic web browser, developed beginning in 1993, and was the first graphical web browser for the Amiga. AMosaic was based on NCSA's Mosaic, but was not distributed by the University of Illinois or NCSA...

     - a web browser based on Mosaic
    Mosaic (web browser)
    Mosaic is the web browser credited with popularizing the World Wide Web. It was also a client for earlier protocols such as FTP, NNTP, and gopher. Its clean, easily understood user interface, reliability, Windows port and simple installation all contributed to making it the application that opened...

  • Origyn Web Browser
    Origyn Web Browser
    Origyn Web Browser is a web browser that is synchronized with WebKit and sponsored by web enabler Pleyo. OWB provides a meta-port to an abstract platform with the aim of making porting to embedded or lightweight systems quicker and easier...

     - web browser
  • PageStream
    PageStream
    PageStream is a desktop publishing software package by Grasshopper LLC , currently available for a variety of operating systems, including Windows, Linux, Macintosh, and Amiga...

     - desktop publishing
  • Poseidon - USB stack
  • YAM
    YAM (Yet Another Mailer)
    YAM is a MIME-compliant e-mail client written for AmigaOS based computers. It supports multi-POP3, APOP, SMTP, TLSv1/SSLv3, multiple users, PGP, unlimited hierarchical folders, filters, a configurable GUI and an ARexx interface and many other features which are common for Mail User Agents ...

     - email client

Other GUI toolkits

Actually there are two main widget toolkits in the Amiga world, and are competing each other. The most widely used is MUI (adopted into AROS
Aros
Aros may refer to:*Aros , a river in J. R. R. Tolkien's Middle-earth legendarium*AROS Research Operating System, a free software implementation of AmigaOS* Aros, the original Viking name of Aarhus, the second largest city in Denmark...

, MorphOS
MorphOS
MorphOS is an Amiga-compatible computer operating system. It is a mixed proprietary and open source OS produced for the Pegasos PowerPC processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the...

 and in most Amiga programs), the other one is ReAction
ReAction GUI
ReAction GUI it is the name of the widget toolkit engine that is used in AmigaOS 3.5-4.1.It is an evolution of ClassACT, which is an object oriented system of classes that enhanced the aspect of the Workbench 2.0 GUI of AmigaOS.- History :...

 which was adopted in AmigaOS 3.5. There is in development a GTK MUI wrapper and it will allow the porting of various GTK based software. There is also modern interfaces based on XML, Feelin.

Palette extension to Workbench defaults

MUI extended Workbench
Workbench (AmigaOS)
-Overview:Commodore named their Amiga computer's first operating system Workbench 1.0 and continued with the Workbench name until version 3.1, when it was changed to AmigaOS, prompted by Apple renaming their propriety OS from "System" to "MacOS"...

's four-colour palette
Palette (computing)
In computer graphics, a palette is either a given, finite set of colors for the management of digital images , or a small on-screen graphical element for choosing from a limited set of choices, not necessarily colors .Depending on the context In computer graphics, a palette is either a given,...

 with four additional colours, allowing smoother gradient
Image gradient
An image gradient is a directional change in the intensity or color in an image. Image gradients may be used to extract information from images....

s with less noticeable dither
Dither
Dither is an intentionally applied form of noise used to randomize quantization error, preventing large-scale patterns such as color banding in images...

ing. The MagicWB
MagicWB
MagicWB is a third-party Workbench enhancer for AmigaOS. It was developed in 1992-1997 by Martin Huttenloher.-History:The idea to enhance Workbench arose when the author got bored to the gray and abstract icons provided by Commodore. The original Amiga icons could use only four colours and even...

 companion to MUI made use of this extended palette to provide more attractive icons to replace the dated Workbench defaults. MUI 4 added support for alpha blending and support for user defined widget shapes.
| MUI eight-colour palette
Colour
Red 149 000 255 59 123 175 170 255
Green 149 000 255 103 123 175 144 169
Blue 149 000 255 162 123 175 124 151

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK