ReAction GUI is 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.
The native Amiga windowing system is called Intuition, which manages the rendering of screens, windows and basic widgets. However, until AmigaOS 2.0 there was no standardized look 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 with gadtools.library (AmigaOS 2.0 and later), which provides a set of standard widgets. AmigaOS 2.0 also introduced a standard dialog system called ASL (Amiga Standard requester Library) and the Amiga User Interface Style Guide, which defined how applications should be laid out for consistency. Intuition was improved with BOOPSI (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 as, MUI and ClassAct which later evolved into ReAction.
ClassAct is an object-oriented system of classes and gadgets developed on the BOOPSI system introduce with AmigaOS 3.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 Aldi, Timothy Aston, Osma 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 have bevel 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.