Progress
Programming
Handbook


General Characteristics

Before you can write a program that takes advantage of direct-manipulation events, you need to know:

This information is described for each event in the following list. Additional comments are added where necessary. Note that you can override the Progress default actions by writing a trigger for the event and having that trigger return a NO–APPLY.

SELECT

Widgets: Frames and field-level widgets.

User actions: (1) The user clicks the SELECT button on a widget; (2) the user clicks the EXTEND button on an widget that is not already selected; (3) the user uses the SELECT button to draw a selection box around a widget; (4) the user uses the EXTEND button to draw a selection box around a deselected widget.

Progress default actions: Progress draws a highlight box around the widget and sets its SELECTED attribute to TRUE.

DESELECT

Widgets: Frames and field-level widgets.

User actions: (1) The user clicks the SELECT button on another unselected widget; (2) the user clicks the EXTEND button on a widget that is already selected; (3) the user clicks the SELECT button on empty space in the frame; (4) the user starts a box-selecting operation with the SELECT button.

Progress default actions: Progress erases the highlight box around the widget and sets its SELECTED attribute to FALSE.

EMPTY–SELECTION

Widgets: Frames and windows.

User actions: The user clicks the SELECT button on empty space in the frame or window (or performs a box-selecting operation that does not include any widgets).

Progress default actions: None.

Comment: If the user clicks on an empty space, Progress deselects all selected widgets before it sends the EMPTY–SELECTION event to the frame or window.

START–MOVE

Widgets: Frames and field-level widgets.

User actions: The user presses down the MOVE button to start a move operation. For frames, the user presses SHIFT plus the MOVE button.

Progress default actions: Progress selects the widget if its SELECTABLE attribute is set to TRUE; if it is not already selected, Progress draws a drag box around the widget and enters move mode. If there are selected widgets outside the frame being moved or outside of the frame containing the field-level widgets being moved, Progress also sends DESELECTION events to those widgets outside the frame. Deselection occurs on mouse down.

Comments: When the user clicks the MOVE button, Progress sends a START–MOVE event to every widget that is selected. If your application puts a trigger on START–MOVE, and the trigger returns NO–APPLY, then Progress does not enter move mode, and does not generate subsequent END–MOVE events.

END–MOVE

Widgets: Frames and field-level widgets.

User actions: The user releases the MOVE mouse button while Progress is in move mode (that is, during a move operation).

Progress default actions: Progress moves the widget to its new location, redraws it there, and exits move mode.

Comment: Progress generates an END–MOVE event for each widget that the user moves.

START–RESIZE

Widgets: Frames and field-level widgets.

User actions: The user clicks the SELECT button on a resize handle of a widget (the widget must be selected).

Progress default actions: Progress draws a drag box around the widget and enters resize mode.

END–RESIZE

Widgets: Frames and field-level widgets.

User actions: The user releases the SELECT mouse button while Progress is in resize mode (that is, during a resize operation).

Progress default actions: Progress resizes the widget to correspond to the new size and location of its drag box and exits resize mode.

START–BOX–SELECTION

Widgets: Frames only.

User actions: The user starts to move the mouse button after having pressed the SELECT mouse button.

Progress default actions: Progress draws a selection box, which initially appears quite small but expands into a recognizable box when the user moves the mouse and enters box-selecting mode.

Comment: If your application puts a trigger on START–BOX–SELECTION, and the trigger returns NO–APPLY, then Progress does not enter box-selecting mode and does not generate subsequent and END–BOX–SELECTION events.

END–BOX–SELECTION

Widgets: Frames only

User actions: The user releases the SELECT mouse button while Progress is in box-selecting mode (that is, during a box-selecting operation).

Progress default actions: Progress normally erases the selection box and then sends a SELECTION or DESELECTION event to each widget that is completely contained inside the selection box. If the user starts the box-selecting operation by pressing the SELECT mouse button, then Progress generates SELECTION events for all the widgets. If the user pressed EXTEND instead, then Progress generates SELECTION events for the unselected widgets and DESELECTION events for the selected widgets. Progress also exits box-selecting mode.


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095