A J program can use the Window Driver wd
to access some aspects of the Session Manager, such as the Tools menu document windows. The names of Window Driver commands specific to the session manager start with the letters sm
.
Tools Menu
You can add your own menu items to the Tools menu using smsetcmd
. These also define the function keys. Your menu items can be accessed either by selecting the item directly from the Tools menu, or by pressing the corresponding function key. Function keys F2-F9 are available for this purpose.
The form is:
wd 'smsetcmd num type name sentence;'
where:
num
corresponds to the function key being defined.
type
is one of :name
is the text that appears on the Tools menu
sentence
is the sentence that will be run when the menu item is invoked.
For example, the following will assign the sentence load 'laserjet'
to the function key F2 and corresponding menu item LaserJet. The sentence will display when invoked:
wd 'smsetcmd 2 1 "LaserJet" "load ''laserjet''";'
When you next select the Tools menu, you will see the new menu item LaserJet. It is a good idea to define a "HotKey" letter and include the number of the corresponding function key in the menu item. If you do this, you can also right-justify the function key name by preceding it with a TAB
. Thus, the above command could have been entered as:
wd 'smsetcmd 2 1 "&LaserJet',TAB,'F2" "load ''laserjet''";'
The menu item will now appear as:
LaserJet F2
To remove this definition, enter:
wd 'smsetcmd 2 0;'
Document Windows
There are several Window Driver commands to access the document windows. In most cases, you must first select the window that is to be the target of subsequent commands (this need not be the active window). To select a window, you actually select its filename:
qsmact | file name of selected window |
qsmall | file names of all windows |
qsmcsize | size of current execution window |
qsmout | file name of current execution window |
qsmsize | size of selected window (pixels) |
qsmwh | size of MDI client area (pixels) |
smappend | appends text to selected window |
smcascade | cascade windows |
smclose | close selected window |
smfocus | activates selected window |
smmove xywh | move and size selected window (pixels) |
smopen | opens selected filename, if not already open |
smread | reads data from selected window |
smsave | saves selected window (if modified) |
smscroll n | scrolls selected window |
smsetselect | set selected text |
smsel | selects window, by its filename |
smshow param | shows selected window, with parameters from the set: |
sw_hide sw_maximize sw_minimize sw_restore sw_show sw_showmaximized sw_showminimized sw_showminnoactive sw_showna sw_shownoactivate sw_shownormal | |
smssetcmd n t name sentence | modifies Tools menu |
smtile | tile windows down |
smtilea | tile windows across |
smwrite | writes text to selected window |
For example, the following will open file user\mywork.ijs for editing and make it the active window:
wd 'smsel "user\mywork.ijs";smopen;smfocus'
Having opened the window, you could write some text (e.g. in the noun TXT
) to it as follows:
wd 'smwrite *',TXT