|
Why not put it in the Title Bar? Here's a command procedure
that works under VMS 5.3/DECwindows V2. I just @ the command
procedure passing a value for P1 and optionally for P2. This
also allows you to change the Icon name.
mike
SET_VT220.COM
-------------------------------------------------------------------
$ OSC[0,8] = 157
$ ST[0,8] = 156
$ Echo = "Write Sys$Output "
$!
$ If P1 .eqs. "ICON" then Echo OSC,"2L;",P2,ST
$ If P1 .eqs. "ICON1" then Echo OSC,"2L;",F$GetSYI("NodeName"),ST
$ If P1 .eqs. "BANNER" then Echo OSC,"21;",P2,ST
$ If P1 .eqs. "BANNER2" then Echo OSC,"21;Node: ", F$GetSYI("NodeName")," �",F$GetJPI("","PRCNAM"),"� (",F$GetJPI("","PID"),")",ST
$ If P1 .eqs. "BANNER3" then Echo OSC,"21;",F$GetSYI("NodeName"),"::",F$ENVIROMENT("DEFAULT"),""," (",F$GetJPI("","PRCNAM"),")",ST
$ If P1 .eqs. "BANNER4" then Echo OSC,"21;",F$GetSYI("NodeName"),"::",F$ENVIROMENT("DEFAULT"),"",ST
$!
$!---------------------------VWS Only-----------------------------------------
$!
$ If P1 .eqs. "SHRINKX" then Echo OSC,"22;",P2,";",P3,ST
$ If P1 .eqs. "SHRINK" then Echo OSC,"22;",P2,";",P3,ST
$ If P1 .eqs. "EXPAND" then Echo OSC,"23;",P2,";",P3,ST
$ If P1 .eqs. "MOVE_TERM" then Echo OSC,"24;",P2,ST
$ If P1 .eqs. "MOVE_ICON" then Echo OSC,"25;",P2,ST
$ If P1 .eqs. "PUSH" then Echo OSC,"29",ST
$ If P1 .eqs. "POP" then Echo OSC,"2A",ST
$ If P1 .eqs. "FONT" then Echo OSC,"2f;",P2,";",P3,";",P4,ST
$!----------------------------------------------------------------------------
$ Exit
|
| Re: .6
>>> $ write sys$output "''esc'[2$~''esc'[1$}''p1'''esc'[$}"
>
>This sequence seems to just add to the status line; What's the
>sequence to clear it? Or let me overwrite what's already there?
Maybe I should explain the sequences I used. The <esc>[2$~ enables
the host-writable status line, and <esc>[1$} selects the status line as
the active display, i.e. it moves the cursor into the status line.
Once the cursor is in the status line it acts more or less as if it were in a
separate window, so you can use escape sequence to clear to end of line,
cursor positioning, set or resets modes and graphic renditions, etc, and
the cursor will still be in the status line. <esc>[$} puts the cursor
back in the main display.
To erase the status line and then write your text you could send
a carriage return and a line feed before your text; this will put the
cursor at the start of the status line and then scroll it (which will
erase it, since the status line display is only 1 line high).
$ esc[0,8] = 27
$ cr[0,8] = 13
$ lf[0,8] = 10
$ write sys$output "''esc'[2$~''esc'[1$}''cr'''lf'''p1'''esc'[$}"
You could also rely on the terminal driver to send the carriage return and
line feed for you, by writing this as two lines of output instead of one:
$ esc[0,8] = 27
$ write sys$output "''esc'[2$~''esc'[1$}"
$ write sys$output "''p1'''esc'[$}"
-- Bob
|