Ultra Light Client Guide and Reference
The most significant difference between ULC and CW is in its handling of
system events. You register interest in a ULC event by sending a
message to the widget that would signal the event. CW callbacks are not
used.
For example, to register for the action event of a
UlcButton instance, send the message
#ulcWhenActionSend: aDirectedMessage to the
button. At run time, aDirectedMessage is sent whenever the
action event occurs. If the event has additional objects
associated with it, nil parms of aDirectedMessage are replaced with those
associated objects, in sequence, when the event occurs.
All event registration methods implemented in a given widget are
categorized under ULC-API-Events.
Other differences from CW
- Widget layout. Manually laying out a ULC window is a lot
simpler than constructing the same window under Common Widgets (see Using layout widgets).
- Setting ULC widget attributes. The two set methods
available for all widget attributes differ in how they update the UI
Engine. The standard setter (that is, #attribute:
anObject) only sets the attribute and does not trigger an update of the
UI. Use this standard setter for initialization only. The ULC
specific setter (that is, #setAttribute: anObject)
does update the UI. It is not possible to set, as a bundle, attributes
of a widget already created on the UI and send the changes collectively to the
UI. With the UlcProxy>>#bundleRequestsWhile: API, it is
now possible to set multiple attributes of a widget already created on the UI
and send the changes collectively to the UI.
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]