Chapter Contents |
Previous |
Next |
Work Area: _popUp |
Syntax | |
Details | |
Example |
Syntax |
CALLSUPER(_SELF_, '_popUp', fill-list, sel); |
Argument | Type | Description |
---|---|---|
fill-list |
N | specifies the identifier of an SCL list containing the pop-up menu items |
sel |
N | returns the selected pop-up menu item |
Details |
The _popUp method runs when the user causes the WPOPUP event (usually with a mouse button). The method has the opportunity to modify the list of pop-up menu items passed in and then pass the fill-list on up the class hierarchy to be handled by the WIDGET class. After the CALL SUPER, sel is set to the index of the selected item from the pop-up menu. If that selection belongs to this method, the selection should be handled, the fill-list cleaned up and sel set to 0 before returning. It is important that the fill-list and sel returned from this method be consistent with the fill-list that was passed into the method.
By default, _popUp for the work area adds the following items to the menu:
Add Item | |
Modify Resource | |
Turn Growing On/Off | |
Auto Arrange | |
Adjust Arrangement |
These items are described in Work Area Run-time Menus.
Example |
This example adds three items to the pop-up menu. These items allow you to edit work area attributes, copy the work area, or remove it. It also passes the request on up for the Widget class to handle.
/* Override the _popup method. */ POPUP: Method plist 8 sel 8; /* Insert items on the front of the */ /* pop-up menu list */ rc = insertc(plist, "Edit", 1); rc = insertc(plist, "Copy", 2); rc = insertc(plist, "Remove", 3); call super(_self_, "_popup", plist, sel); /* Clean up the list so items are */ /* not passed */ /* to the child subclasses */ rc = delitem(plist, 1); rc = delitem(plist, 1); rc = delitem(plist, 1); /* Test the value of SEL to see if */ /* it is one of the 3 new items*/ if (sel > 0) then do; if (sel <= 3) then do; /* If so, perform the requested */ /* action and reset to 0 */ if (sel = 1) then call send(_self_, '_attributes_dialog_'); else if (sel = 2) then call send (_self_, '_copy_region_'); else if (sel = 3) then call send (_self_, '_delete_object_'); sel = 0; end; else /* Otherwise, since 3 items were */ /* added to the front */ /* of the list, subtract 3 from */ /* the selection. */ sel = sel-3; end; endmethod;
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.