What is ReAction?
ReAction is a set of BOOPSI classes originally created by a 3rd party software development company. During integration into AmigaOS, the package was renamed from ClassAct to ReAction and all the macros and headers changed accordingly.
ReAction is not the name of the AmigaOS GUI system. Intuition is the term used to describe the AmigaOS GUI and this has not changed. What has changed is many new BOOPSI classes have been added to Intuition.
ReAction is not the name of the AmigaOS GUI system. Intuition is the term used to describe the AmigaOS GUI and this has not changed. What has changed is many new BOOPSI classes have been added to Intuition.
Class Access
BOOPSI has had many improvements both in usability and features. The addition of the ReAction set of BOOPSI classes greatly simplifies GUI programming as well.
Many BOOPSI classes that are not built into some other component and need to be explicitly loaded from disk. This is now accomplished with
All BOOPSI classes also use
Using these new functions also eliminates the need for all those redundant
Many BOOPSI classes that are not built into some other component and need to be explicitly loaded from disk. This is now accomplished with
IIntuition->OpenClass()
to load them and IIntuition->CloseClass()
to unload them.All BOOPSI classes also use
struct ClassLibrary
as a base which is a requirement for using IIntuition->OpenClass()
. The reason for this is to enable the programmer to obtain access to the Class
pointer. The Class
pointer is required for obtaining the interface to a class.Using these new functions also eliminates the need for all those redundant
GetClass()
functions which are now deprecated. Use of the Class
pointer is not only faster but it also eliminates the need to open an Interface for many classes.window.class
The window.class has had many enhancements and is easier to use. Gadget help hints, built-in scroll wheel support and simplified keyboard controls are some examples.
Applications which make use of window.class inherit a lot of functionality which can be useful to speed up development. Be sure to check out all the examples in the SDK as well to save even more time.
Applications which make use of window.class inherit a lot of functionality which can be useful to speed up development. Be sure to check out all the examples in the SDK as well to save even more time.
Dynamic Layouts
It is possible to add, remove and modify BOOPSI objects already added to a
The correct way to dynamically add, remove or modify objects in a layout is with the new
A good alternative to dynamically changing objects is to use a
layout.gadget
object. This feature existed prior to AmigaOS 4.x but the design was fundamentally flawed and used the LAYOUT_AddChild
, LAYOUT_AddImage
, LAYOUT_RemoveChild
and LAYOUT_ModifyChild
tags.The correct way to dynamically add, remove or modify objects in a layout is with the new
LM_ADDCHILD
, LM_ADDIMAGE
, LM_REMOVECHILD
and LM_MODIFYCHILD
methods. Only by using these methods can you be guaranteed not to run the risk of a GUI deadlock.A good alternative to dynamically changing objects is to use a
page.gadget
instead. With a page.gadget
object you can change pages to display a different set of options to the user. This method usually requires less code and is less error prone as well.