QAB User Interface Enhancements - E4000046 - 20 October 2004

This download includes a number of minor DP4 changes which improve the user interface for QAB programs. The DP4 terminal manager and C interface allow you to change the state of controls in a map to indicate whether the user can change the value shown by the control. Up until now this functionality has not been available in QAB, except that unavailable menu options are greyed out. This enhancement partially addresses this issue.

Changes Included

mapedit.exe,maped09.dll

It is now possible to set a "disabled" property for edit controls,checkboxes and buttons (but currently not radio buttons). If the disabled property is set the control is displayed with a disabled apperance (usually by showing the control with "embossed" colors). However, if a program calls an input function on the field the control is automatically enabled.

In fact the flag that is set for this property (512) is partially supported for all control types. However, for the other control types the initial state of the flag is ignored and you can only set the flag at run time, either by calling field_color(mapnr,fieldnr,-C_OBSCURE) or by calling show_special(mapnr,fieldnr,SHOW_NA,show_flags).

QAB components

A new global variable named q_show_disabled is available. This is a type I, not a type Y value. If this variable is set to a non zero value, then in dialogs any input fields that have the "prevent change" flag set, or for which an input/output condition is false will be displayed disabled.

dp4clibt.dll

Includes a fix that affects greying out of options on the top of a menu bar.

Limitations

Currently, the disabled color may not become apparent until the user tries to navigate to the field. Also, if the state of the field changes (for example because a change elsewhere in the dialog means that a field should be enabled or disabled) the color is not updated unless the user tries to navigate to the field. To fully support "live update" of every controls availablity, your program would have to make use of the "data change notifations" introduced into MAPEDIT for 4.620. In addition QAB would need to re-evaulate all input/output conditions whenever such a message was received, which will be supported in a later release. If you desire this future behaviour set q_show_disabled to 2, but be aware that this behaviour might have unexpected side effects (for example if your conditions call a C exit function). Set q_show_disabled to 1 if you are happy with the enhancement as it currently stands.

DP4 Version Compatibility

4.621

Downloads

QAB Enhancements for 4.621 Windows 9x/NT

621a.zip on the FTP site includes the executable files for this and all other 4.621 compatible enhancements.