Changes and Bug Fixes in SubArctic St. Paul Release (0.8e)

Who is affected by changes
Most changes are additions, but there are a few modifications. These modifications will typically effect you only if you override one of the following methods: and/or you call one of the following methods: Specifics follow below, with a bug-fix list at bottom.

In menu_button
Added popup_menu() and set_popup_menu() to access the menu to be popped up.

Drawing isolation special effects hook in drawable
A new special effects hook has been added to drawable. This hook consists of three methods: start_interactor_draw(), mark_interactor_draw(), and end_interactor_draw(). start_ and end_ are to be called to denote the beginning and end of drawing that is associated with a particular interactor. This can be used with special effects that need to separate the drawing of an individual interactor from its children and other interactors. Note: start_ and end_ are called for you in base_interactor.draw_self() (*not* draw_self_local(), but draw_self()), consequently, you can generally ignore them (unless you are overriding draw_self()). mark_interactor_draw() is used to indicate significant points in the drawing (what these represent, and what consequence the mark has is dependent on the drawable subtype making use of the information).

Each of these methods takes the interactor doing the drawing as a parameter. mark_ also takes a second Object parameter that gives additional information about the mark. start_ and mark_ return a boolean. This boolean indicates whether drawing should continue. If true is returned, normal drawing is done, otherwise, any remaining drawing of the interactor and/or its children should be skipped (draw_self() already does this for start_ for you).

At present, there are no subclasses of drawable that take advantage of these hooks, but several are planned.

In menubar
Menubar now behaves properly if it contains empty right or left side set of images. You can pass null to the constructor of menubar to indicate an empty set of objects.

In manager
Added a fix by Craig Ogg (thanks Craig) to make animations work properly in applications which use frames.

In label_toggle
Added code contributed by Craig Ogg to make label_toggle's understand how to use transitions if they are desired.

In checkbox
Fixed the problem of checkboxes looking like radio buttons (because they were using the wrong images).

In base_interactor
The arguments for damage_from_child() have been changed. Two arguments were added to interactor.damage_from_child(), an Object reference which indicates the interactor the damage originated from, and an integer flag value which indicates the type of damage being reported (currently there isn't much meaningful you can do with the flag, this is for some future expansion we have in mind). The damage_self() methods were modified to supply correct default values for these new arguments automatically, so this change should only effect you if you override damage_from_child() or damage_self() without calling super. Finally two new damage_self() methods were added, which allow the originator and/or the damage type to be specified. Added clear_child_list() which removes all children if the object has children, otherwise does nothing. Added code for the drawing isolation hook (see above) to draw_self(). This should not effect anyone unless you have reimplemented draw_self() in a sub-class, in which case you need to add this code to your implementation also.

Gradients
Support for drawing linear and radial gradients has been added to the output package. See the gradient, linear_gradient, and radial_gradient classes.

debug_lens
New features for filtering the display of information about interactors, as well as which interactors are displayed (e.g., child number range and depth limits) have been added. Other lenses have been added as well- see the listing of test applets to see them.

range sliders
{h,v}h_range_slider[_display] has been added. These provide a "two thumbed" slider for specifying a range of values. (See the standard debug lens for a demo).

Bugs Fixed in St. Paul Release


Last revision: February 2 1997