HOME

TheInfoList



OR:

The Magic User Interface (MUI in short) is an
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
system by Stefan Stuntz to generate and maintain
graphical user interface The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
s. 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 for
AmigaOS 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 version ...
and gained popularity amongst both programmers and users. It has been ported to
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
processors and adopted as the default GUI toolkit of the
MorphOS MorphOS is an AmigaOS-like computer operating system (OS). It is a mixed Proprietary software, proprietary and Open-source software, open source OS produced for the Pegasos PowerPC (PPC) processor based computer, PowerUP accelerator equipped Amig ...
operating system. The MUI application programmer interface has been cloned by the
Zune Zune is a discontinued line of digital media products and services marketed by Microsoft from November 2006 until its discontinuation in June 2012. Zune consisted of a line of portable media players, digital media player software for Windows Per ...
toolkit used in the
AROS Research Operating System AROS Research Operating System (AROS, pronounced "AR-OS") is a free and open-source multi media centric implementation of the AmigaOS 3.1 application programming interface (API). Designed to be portable and flexible. , ports are available for p ...
.


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: * ''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 an
ARexx ARexx is an implementation of the Rexx language for the Amiga, written in 1987 by William S. Hawes, with a number of Amiga-specific features beyond standard REXX facilities. Like most REXX implementations, ARexx is an interpreted language. Program ...
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 is a type of proprietary software that is initially shared by the owner for trial use at little or no cost. Often the software has limited functionality or incomplete documentation until the user sends payment to the software developer ...
. 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 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 other using object groups. In traditional
Intuition Intuition is the ability to acquire knowledge without recourse to conscious reasoning. Different fields use the word "intuition" in very different ways, including but not limited to: direct access to unconscious knowledge; unconscious cognition; ...
-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 third-party MUI classes.


Example

// Complete MUI application #include #include // 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 BOOPSI (Basic Object Oriented Programming System for Intuition) is an object-oriented programming system for AmigaOS. It extends the AmigaOS windowing environment (Intuition) with an object-oriented subsystem allowing a hierarchy of object classes ...
based GUI toolkit objects inside a MUI application.


Applications

Some notable applications that use MUI as a widget toolkit include: *
Aladdin4D Aladdin4D is a computer program for modeling and rendering 3D computer graphics, three-dimensional graphics and animations, currently running on AmigaOS and macOS platforms. A-EON Technology Ltd owns the rights and develops current and future ve ...
- 3D rendering/animation application *
Ambient Ambient or Ambiance or Ambience may refer to: Music and sound * Ambience (sound recording), also known as atmospheres or backgrounds * Ambient music, a genre of music that puts an emphasis on tone and atmosphere * ''Ambient'' (album), by Moby * ...
- desktop environment *
AmIRC AmIRC is an MUI-based IRC client for the Amiga. First released in 1995 as a shareware, it was later open-sourced. AmIRC offers large degree of configuration with an easy to use interface. History Developed by Oliver Wagner (VaporWare) and first ...
- IRC client * Digital Universe - desktop planetarium *
IBrowse IBrowse is a Magic User Interface, MUI-based web browser for the Amiga range of computers, and was a rewritten follow-on to AMosaic, Amiga Mosaic, one of the first web browsers for the Amiga Computer. IBrowse was originally developed for a company ...
- web browser *
Origyn 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 s ...
- web browser *
PageStream PageStream (originally Publishing Partner) is a desktop publishing software package by Grasshopper LLC (United States), currently available for a variety of operating systems, including Windows, Linux, and macOS. The software was originally relea ...
- desktop publishing * SimpleMail - email client * Voyager - web browser * YAM - email client


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 Aros may refer to: *Aros (Middle-earth), a river in J. R. R. Tolkien's Middle-earth legendarium * Aros, Mull, the location of Aros Castle, a ruined 13th-century castle on the Isle of Mull, Scotland *AROS Research Operating System, a free software i ...
,
MorphOS MorphOS is an AmigaOS-like computer operating system (OS). It is a mixed Proprietary software, proprietary and Open-source software, open source OS produced for the Pegasos PowerPC (PPC) processor based computer, PowerUP accelerator equipped Amig ...
and in most Amiga programs), the other one is
ReAction Reaction may refer to a process or to a response to an action, event, or exposure: Physics and chemistry *Chemical reaction *Nuclear reaction *Reaction (physics), as defined by Newton's third law *Chain reaction (disambiguation). Biology and me ...
which was adopted in AmigaOS 3.5. There is in development a GTK MUI wrapper and it will allow the porting of various
GTK GTK (formerly GIMP ToolKit and 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 propriet ...
based software. There is also modern interfaces based on XML
Feelin


Palette extension to Workbench defaults

MUI extended
Workbench A workbench is a sturdy table at which manual work is done. They range from simple flat surfaces to very complex designs that may be considered tools in themselves. Workbenches vary in size from tiny jewellers benches to the huge benches used by ...
's four-colour palette with four additional colours, allowing smoother
gradient In vector calculus, the gradient of a scalar-valued differentiable function of several variables is the vector field (or vector-valued function) \nabla f whose value at a point p is the "direction and rate of fastest increase". If the gradi ...
s with less noticeable
dither Dither is an intentionally applied form of image noise, noise used to randomize quantization error, preventing large-scale patterns such as color banding in images. Dither is routinely used in processing of both digital audio and digital vide ...
ing. The
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 with the gray and abstract icons provided by Commodore. The origin ...
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 In computer graphics, alpha compositing or alpha blending is the process of combining one image with a background to create the appearance of partial or full transparency. It is often useful to render picture elements (pixels) in separate pas ...
and support for user defined widget shapes.


See also

*
ReAction GUI ReAction GUI is the widget toolkit engine that is used in AmigaOS 3.2-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 The native Amiga win ...
(ClassAct) *
Zune Zune is a discontinued line of digital media products and services marketed by Microsoft from November 2006 until its discontinuation in June 2012. Zune consisted of a line of portable media players, digital media player software for Windows Per ...


References


External links


MUI homepage

Unofficial MUI nightly build directory


{{Widget toolkits Widget toolkits Amiga APIs Amiga software AmigaOS AmigaOS 4 software MorphOS