ReAction GUI is thewidget toolkit engine that is used inAmigaOS 3.2–4.1.
It is an evolution of ClassAct, which is anobject-oriented system ofclasses that enhanced the aspect of the Workbench 2.0 GUI of AmigaOS.
The native Amigawindowing system is calledIntuition, which manages the rendering of screens, windows and basic widgets. However, until AmigaOS 2.0 there was no standardizedlook and feel, and often application developers had to write their own non-standard widgets (both buttons and menus), with Intuition providing little support.
Intuition was later enhanced withgadtools.library (AmigaOS 2.0 and later), which provides a set of standard widgets. AmigaOS 2.0 also introduced a standarddialog system calledASL (Amiga Standard requester Library) and theAmiga User Interface Style Guide, which defined how applications should be laid out for consistency. Intuition was improved withBOOPSI (Basic Object Oriented Programming System for Intuition) which provides an object-oriented interface on which to build an extensible set of widgets. The introduction of BOOPSI allowed third-party developers to create comprehensive widget toolkits, such asMUI and ClassAct which later evolved into ReAction.
ClassAct is an object-oriented system of classes and gadgets developed on the BOOPSI system introduced with AmigaOS 2.0. Its main features are expandability and modularity. New classes and gadgets could be added to the system and improve it with new capabilities. ClassAct was modeled after the future direction Commodore had envisioned for the future of the OS presented at Orlando Developers Conference prior to Commodore's Bankruptcy. Programmers Christopher 'caldi' Aldi, Timothy Aston, Osma 'Tau' Ahvenlampi came together and ClassAct is a realization of that future.
Main classes are:
Main gadgets are:
Various styles can be applied to ClassAct gadgets, such as 3D aspect. Gadgets could havebevel borders, the font have fallback option in case the default font is too large to fit the window on the screen, Pen number to use for labels and labels fonts could be set by the user, and many, many options like these.
ReAction is the official AmigaOS GUI builder since the OS 3.5 days.[1][2] Nowadays it is being built on top of Intuition, updated and has a better and more consistent look through the apps that use it.
ReAction system of classes and gadgets is almost the same as ClassACT. It is expandable and modular as the same as ClassAct. New classes and gadgets can be added to the system with ease to enhance its features.
A simple example of this modularity is the newly-available ReAction gadget class known aspiechart.gadget. The main purpose of this gadget is displaying data distribution among various sources, like shares, disk capacity and free space, etc. via a graphicalpie chart. Optional interaction from the user is also possible.
Button and String gadgets
// Button gadget#include<gadgets/layout.h>#include<proto/layout.h>#include<proto/button.h>// Sample layout:LAYOUT_AddChild,OBJ(OBJ_QUIT)=ButtonObject,GA_ID,OBJ_QUIT,GA_Text,"Quit",GA_RelVerify,TRUE,End,//Quit button gadget
// String gadget#include<gadgets/layout.h>#include<gadgets/string.h>#include<proto/layout.h>#include<proto/string.h>#include<intuition/gadgetclass.h>// Sample layout:LAYOUT_AddChild,OBJ(OBJ_STRING)=StringObject,GA_ID,OBJ_STRING,GA_RelVerify,TRUE,STRINGA_MaxChars,32,STRINGA_WorkBuffer,buffername,End,//String gadget
There are two main widget toolkits competing in the Amiga world. ReAction which is the default GUI toolkit chosen for AmigaOS 3.2-4.1 and for developing AmigaOS software, andMUI which is the default GUI toolkit chosen forMorphOS.AROS usesZune toolkit which is an open source MUI clone.
Cygnix is a lightweightUNIX simulation environment for AmigaOS that comes with anX11 serverCygwin, and this has been used to port programs such asAbiWord orGIMP to the Amiga. A slightly related project is aGTK MUI wrapper which eventually will simplify porting ofGTK based software.
Various multi-platforms graphics libraries and toolkits such asCairo andSDL are also available on Amiga, and are the basics for creating new and enhanced Toolkits, new GUIs, new systems of widgets, etc.
There is also XML based toolkit,Feelin.