| Magic User Interface | |
|---|---|
![]() | |
A screenshot of the MUI-basedAmbient desktop. | |
| Developer | Stefan Stuntz |
| Initial release | 1993; 32 years ago (1993) |
| Stable release | 5.0 / June 19, 2015; 10 years ago (2015-06-19) |
| Operating system | AmigaOS,MorphOS |
| Platform | Amiga |
| Type | Widget toolkit |
| Licence | Proprietary/Shareware |
| Website | www |
TheMagic User Interface (MUI in short) is anobject-oriented system by Stefan Stuntz to generate and maintaingraphical user interfaces. With the aid of a preferences program, the user of an application has the ability to customize the system according to personal taste.
The Magic User Interface was written forAmigaOS and gained popularity amongst both programmers and users. It has been ported toPowerPC processors and adopted as the default GUI toolkit of theMorphOS operating system. The MUI application programmer interface has been cloned by theZune toolkit used in theAROS Research Operating System.[1]
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 a new object-oriented GUI toolkit for Amiga. Main goals for new GUI toolkit were:
MUI was released asshareware. Starting from MUI 3.9 an unrestricted version is integrated with MorphOS, but a shareware key is still required to activate all user configuration options in AmigaOS.
UI development is done at source-code level without the aid of GUI builders. In MUI application the programmer only defines logical structure of the GUI and the layout is determined at 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 other using object groups. In traditionalIntuition-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.[3][4][5]
There are over 50 built-in MUI classes today and various third-party MUI classes.
// Complete MUI application#include<libraries/mui.h>#include<proto/muimaster.h>// Sample application:ApplicationObject,SubWindow,WindowObject,WindowContents,VGroup,Child,TextObject,MUIA_Text_Contents,"Hello World!",End,End,End,End;
This example code creates a small MUI application with the text "Hello World!" displayed on it. It is also possible to embed otherBOOPSI based GUI toolkit objects inside a MUI application.
Some notable applications that use MUI as a widget toolkit include:
Currently there are two main widget toolkits in the Amiga world, which are competing with each other. The most widely used is MUI (adopted intoAROS,MorphOS and in most Amiga programs), the other one isReAction which was adopted in AmigaOS 3.5. There is in development a GTK MUI wrapper and it will allow the porting of variousGTK based software.[6] There is also modern interfaces based on XML,Feelin.
MUI extendedWorkbench's four-colourpalette with four additional colours, allowing smoothergradients with less noticeabledithering. TheMagicWB companion to MUI made use of this extended palette to provide more attractive icons to replace the dated Workbench defaults. MUI 4 added support foralpha 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 |