|Technote R6153: Button Naming Precedence in Helix 6.2|
In Classic Helix a rather convoluted route taken to determine the name (and name-related attributes) of a button, resulted in seemingly logical choices not working as expected. In Helix 6.2 the naming order is streamlined and open for more useful features in the future.
This technote details the rules that govern the naming of buttons (aka: command rectangles) in Helix 6.2 and later.
|Order of Precedence||
In Helix, a button’s name is taken from one of five places. In order of precedence:
In Helix 6.2, this naming hierarchy is always traversed until a name is found or the options are exhausted. In Classic Helix it is possible to have a situation where a button name was blank. Helix avoids this by following a simple rule: if no name is found at the first level, the next level is checked. This checking now walks the entire hierarchy until a name is found.
If you actually want a button displayed with no name, name it with two or more spaces. (See Special Case Attributes below.)
|Special Case Attributes||
Special case attributes are available to command rectangles containing plain text. They are not applied when the label is styled text or a graphic.
The special cases are:
Helix is now completely consistent in the application of these rules. Unlike Classic Helix, the special cases apply regardless of how the button name is acquired. For example, in Classic Helix , the “single space” rule was only applied if the space was typed into the command rectangle; None of the other rules was considered.
Because Classic Helix is not being modified to follow the new naming rules, there are specific cases where button names differ between Classic and macOS versions of Helix. Some situations where this may be seen are:
There may also be other situations where the results differ, but all should follow the naming precedence rules outlined above.
|Classic Bugs Not Fixed||
With few exceptions, bugs that were discovered in Classic Helix have not been addressed. We do not plan on addressing subtle Classic bugs such as these.
For example: when setting up button naming and enabling in RADE, you can specify whether the name and enabling info comes from a field or an abacus. There is a subtle bug in Classic Helix when a field is specified: the value typed into the field does not pass through to the button until the record is actually entered. This is fixed in macOS: the field value passes through to the button as soon as you de-focus (tab or click out of) the field.
The macOS code has been written specfically to allow us to extend these new conventions to buttons containing styled text and graphics, to add greater control to the naming of the disabled button, and more.