Magic User Interface

Last updated
Magic User Interface
Developer(s) Stefan Stuntz
Initial release1993;31 years ago (1993)
Stable release
5.0 / June 19, 2015;8 years ago (2015-06-19)
Operating system AmigaOS, MorphOS
Platform Amiga
Type Widget toolkit
Licence Proprietary/Shareware
Website www.sasg.com/mui/

The Magic User Interface (MUI in short) is an object-oriented system by Stefan Stuntz to generate and maintain graphical 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.

Contents

The Magic User Interface was written for AmigaOS and gained popularity amongst both programmers and users. It has been ported to PowerPC processors and adopted as the default GUI toolkit of the MorphOS operating system. The MUI application programmer interface has been cloned by the Zune toolkit used in the AROS Research Operating System. [1]

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 a new object-oriented GUI toolkit for Amiga. Main goals for new GUI toolkit were:

MUI was released as shareware. 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.

Application theory

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 traditional Intuition-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.

Example

// 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 other BOOPSI based GUI toolkit objects inside a MUI application.

Applications

Some notable applications that use MUI as a widget toolkit include:

Other GUI toolkits

Currently there are two main widget toolkits in the Amiga world, which are competing with each other. The most widely used is MUI (adopted into AROS, MorphOS and in most Amiga programs), the other one is ReAction 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. [6] There is also modern interfaces based on XML, Feelin.

Palette extension to Workbench defaults

MUI extended Workbench's four-colour palette with four additional colours, allowing smoother gradients with less noticeable dithering. The MagicWB 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
Red14900025559123175170255
Green149000255103123175144169
Blue149000255162123175124151

See also

Related Research Articles

<span class="mw-page-title-main">History of the graphical user interface</span>

The history of the graphical user interface, understood as the use of graphic icons and a pointing device to control a computer, covers a five-decade span of incremental refinements, built on some constant core principles. Several vendors have created their own windowing systems based on independent code, but with basic elements in common that define the WIMP "window, icon, menu and pointing device" paradigm.

In computing, a desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system that share a common graphical user interface (GUI), sometimes described as a graphical shell. The desktop environment was seen mostly on personal computers until the rise of mobile computing. Desktop GUIs help the user to easily access and edit files, while they usually do not provide access to all of the features found in the underlying operating system. Instead, the traditional command-line interface (CLI) is still used when full control over the operating system is required.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

MorphOS is an AmigaOS-like computer operating system (OS). It is a mixed proprietary and open source OS produced for the Pegasos PowerPC (PPC) processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the Efika and mobileGT. Since MorphOS 2.4, Apple's Mac mini G4 is supported as well, and with the release of MorphOS 2.5 and MorphOS 2.6 the eMac and Power Mac G4 models are respectively supported. The release of MorphOS 3.2 added limited support for Power Mac G5. The core, based on the Quark microkernel, is proprietary, although several libraries and other parts are open source, such as the Ambient desktop.

<span class="mw-page-title-main">Standard Widget Toolkit</span> Graphical widget toolkit for use with the Java platform

The Standard Widget Toolkit (SWT) is a graphical widget toolkit for use with the Java platform. It was originally developed by Stephen Northover at IBM and is now maintained by the Eclipse Foundation in tandem with the Eclipse IDE. It is an alternative to the Abstract Window Toolkit (AWT) and Swing Java graphical user interface (GUI) toolkits provided by Sun Microsystems as part of the Java Platform, Standard Edition (J2SE).

<span class="mw-page-title-main">Graphical widget</span> Element of interaction in a graphical user interface

A graphical widget in a graphical user interface is an element of interaction, such as a button or a scroll bar. Controls are software components that a computer user interacts with through direct manipulation to read or edit information about an application. User interface libraries such as Windows Presentation Foundation, Qt, GTK, and Cocoa, contain a collection of controls and the logic to render these.

gtkmm is the official C++ interface for the popular GUI library GTK. gtkmm is free software distributed under the GNU Lesser General Public License (LGPL).

<span class="mw-page-title-main">JFace</span>

JFace is defined by the Eclipse project as "a UI toolkit that provides helper classes for developing UI features that can be tedious to implement." The Standard Widget Toolkit (SWT) is an open source widget toolkit for Java designed to provide efficient, portable access to the user-interface facilities of the operating systems on which it is implemented.

<span class="mw-page-title-main">Workbench (AmigaOS)</span> Graphical user interface for the Amiga computer

Workbench is the desktop environment and graphical file manager of AmigaOS developed by Commodore International for their Amiga line of computers. Workbench provides the user with a graphical interface to work with file systems and launch applications. It uses a workbench metaphor for representing file system organisation.

Intuition is the native windowing system and user interface (UI) engine of AmigaOS. It was developed almost entirely by RJ Mical. Intuition should not be confused with Workbench, the AmigaOS desktop environment and spatial file manager, which relies on Intuition for handling windows and input events. Workbench uses Intuition to produce displays and AmigaDOS to interact with filing system: AmigaDOS is built on Exec.

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 (MUI), a well-known Amiga shareware product by Stefan Stuntz.

ReAction GUI is the widget toolkit engine that is used in AmigaOS 3.2-4.1.

Amiga support and maintenance software performs service functions such as formatting media for a specific filesystem, diagnosing failures that occur on formatted media, data recovery after media failure, and installation of new software for the Amiga family of personal computers—as opposed to application software, which performs business, education, and recreation functions.

<span class="mw-page-title-main">AmigaOS</span> Operating system for Amiga computers

AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions of AmigaOS required the Motorola 68000 series of 16-bit and 32-bit microprocessors. Later versions were developed by Haage & Partner and then Hyperion Entertainment. A PowerPC microprocessor is required for the most recent release, AmigaOS 4.

A software widget is a relatively simple and easy-to-use software application or component made for one or more different software platforms.

<span class="mw-page-title-main">GTK</span> Free and open-source cross-platform widget toolkit for creating graphical user interfaces

GTK is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the Wayland and X11 windowing systems.

<span class="mw-page-title-main">Origyn Web Browser</span> Discontinued web browser

Origyn Web Browser (OWB) is a discontinued web browser that was synchronized with WebKit and sponsored by the technology company Pleyo. OWB provides a meta-port to an abstract platform with the aim of making porting to embedded or lightweight systems faster and easier. This port is used for embedded devices such as set-top boxes, and other consumer electronics.

<span class="mw-page-title-main">Hollywood (programming language)</span> Programming language

Hollywood is a commercially distributed programming language developed by Andreas Falkenhahn which mainly focuses on the creation of multimedia-oriented applications. Hollywood is available for AmigaOS, MorphOS, WarpOS, AROS, Windows, macOS, Linux, Android, and iOS. Hollywood has an inbuilt cross compiler that can automatically save executables for all platforms supported by the software. The generated executables are completely stand-alone and do not have any external dependencies, so they can also be started from a USB flash drive. An optional add-on also allows users to compile projects into APK files.

<span class="mw-page-title-main">Fyne (software)</span> Graphical toolkit for building cross platform GUIs

Fyne is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs) across desktop and mobile platforms. Fyne uses OpenGL to provide cross-platform graphics. It is inspired by the principles of Material Design to create applications that look and behave consistently across all platforms. It is licensed under the terms of the 3-clause BSD License, supporting the creation of free and proprietary applications. In December 2019 Fyne became the most popular GUI toolkit for Go, by GitHub star count and in early February 2020 it was trending as #1 project in GitHub trending ranks.

References

  1. "AROS Research Operating System". Aros.sourceforge.net. Archived from the original on 2016-03-25. Retrieved 2016-07-17.
  2. Stuntzi, S: MUI User Documentation. 1997
  3. "MUI Concepts". Sasg.com. Retrieved 2016-07-17.
  4. "The Amiga Computer Community Portal Website". Amigaworld.net. Retrieved 2016-07-17.
  5. Stuntzi, S: MUI Programmer Documentation. 1997
  6. "GTK-MUI download". SourceForge.net. Retrieved 2016-07-17.