1 | VALM10 ;MJK;09:29 PM 17 Jan 1993;
|
---|
2 | ;;1;List Manager;;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | CNTRL(LINE,COL,WIDTH,ON,OFF,SAVE) ; -- set video control chars
|
---|
5 | ; input: LINE := line number
|
---|
6 | ; COL := column to start control
|
---|
7 | ; WIDTH := how many characters should contrl be in effect
|
---|
8 | ; ON := beginninng control code (ex. the value of IOINHI)
|
---|
9 | ; OFF := ending control code (ex. the value of IOINORM)
|
---|
10 | ; SAVE := 1 to save control code for later use
|
---|
11 | ; otherwise 0 [optional]
|
---|
12 | ;
|
---|
13 | S X="VALM VIDEO"_$S($G(SAVE):" SAVE",1:"")
|
---|
14 | S ^TMP(X,$J,VALMEVL,LINE,COL,WIDTH)=ON
|
---|
15 | S ^TMP(X,$J,VALMEVL,LINE,COL+WIDTH,0)=OFF
|
---|
16 | Q
|
---|
17 | ;
|
---|
18 | KILL(LINE) ; -- kill off video cntrls for a line
|
---|
19 | ; input: LINE := line number
|
---|
20 | ;
|
---|
21 | K:'$D(LINE) ^TMP("VALM VIDEO",$J,VALMEVL),^TMP("VALM VIDEO SAVE",$J,VALMEVL)
|
---|
22 | K:$D(LINE) ^TMP("VALM VIDEO",$J,VALMEVL,LINE),^TMP("VALM VIDEO SAVE",$J,VALMEVL,LINE)
|
---|
23 | Q
|
---|
24 | ;
|
---|
25 | SAVE(LINE) ; -- save video cntrls for a line
|
---|
26 | ; input: LINE := line number
|
---|
27 | ;
|
---|
28 | D SWAP("^TMP(""VALM VIDEO"",$J,VALMEVL,LINE)","^TMP(""VALM VIDEO SAVE"",$J,VALMEVL,LINE)")
|
---|
29 | Q
|
---|
30 | ;
|
---|
31 | RESTORE(LINE) ; -- restore video cntrls for a line
|
---|
32 | ; input: LINE := line number
|
---|
33 | ;
|
---|
34 | D SWAP("^TMP(""VALM VIDEO SAVE"",$J,VALMEVL,LINE)","^TMP(""VALM VIDEO"",$J,VALMEVL,LINE)")
|
---|
35 | Q
|
---|
36 | ;
|
---|
37 | SWAP(FR,TO,SAVE) ; -- swap video cntrl arrays
|
---|
38 | ; [not a supported call]
|
---|
39 | ;
|
---|
40 | K @TO
|
---|
41 | S COL=0
|
---|
42 | F S COL=$O(@FR@(COL)) Q:'COL D
|
---|
43 | .N WIDTH S WIDTH=""
|
---|
44 | .F S WIDTH=$O(@FR@(COL,WIDTH)) Q:WIDTH="" S @TO@(COL,WIDTH)=@FR@(COL,WIDTH)
|
---|
45 | K:'$G(SAVE) @FR
|
---|
46 | Q
|
---|
47 | ;
|
---|
48 | SELECT(LINE,MODE) ; -- highlight/unhighlight a line
|
---|
49 | ; input: LINE := line number
|
---|
50 | ; MODE := 1 to highlight line
|
---|
51 | ; 0 to unhighlight and restore to original state
|
---|
52 | ;
|
---|
53 | I MODE D
|
---|
54 | .D SAVE(.LINE)
|
---|
55 | .D CNTRL(.LINE,1,VALM("RM"),.IOINHI,.IOINORM)
|
---|
56 | I 'MODE D RESTORE(.LINE)
|
---|
57 | D WRITE(.LINE)
|
---|
58 | Q
|
---|
59 | ;
|
---|
60 | WRITE(LINE) ; -- re-write line to screen
|
---|
61 | ; input: LINE := line number
|
---|
62 | ;
|
---|
63 | N DY
|
---|
64 | W IOSC
|
---|
65 | S DY=LINE-VALMBG+VALM("TM")-1 D IOXY^VALM4(0,.DY)
|
---|
66 | D WRITE^VALM4(.LINE,0,1,.DY)
|
---|
67 | W IORC
|
---|
68 | Q
|
---|
69 | ;
|
---|
70 | FLDTEXT(LINE,FLD,TEXT) ; -- set text for field in line
|
---|
71 | ; input: LINE := line number
|
---|
72 | ; FLD := caption field name
|
---|
73 | ; TEXT := text to insert for field
|
---|
74 | ;
|
---|
75 | S @VALMAR@(LINE,0)=$$SETFLD^VALM1(.TEXT,@VALMAR@(LINE,0),.FLD)
|
---|
76 | Q
|
---|
77 | ;
|
---|
78 | FLDCTRL(LINE,FLD,ON,OFF,SAVE) ; -- set default video ctrls for line
|
---|
79 | ; or just 1 field
|
---|
80 | ; input: LINE := line number
|
---|
81 | ; FLD := caption field name [optional]
|
---|
82 | ; ON := beginninng control code (ex. the value of IOINHI)
|
---|
83 | ; OFF := ending control code (ex. the value of IOINORM)
|
---|
84 | ; SAVE := 1 to save control code for later use
|
---|
85 | ; otherwise 0 [optional]
|
---|
86 | ;
|
---|
87 | I $G(FLD)="" D SWAP("^TMP(""VALM VIDEO SAVE"",$J,VALMEVL,0)","^TMP(""VALM VIDEO"",$J,VALMEVL,LINE)",1) G FLDCTRLQ
|
---|
88 | ; -- just a fld
|
---|
89 | N COL,WIDTH,X I '$D(ON) N ON,OFF
|
---|
90 | S X=VALMDDF(FLD),COL=$P(X,U,2),WIDTH=$P(X,U,3)
|
---|
91 | I '$D(ON) D
|
---|
92 | .S (ON,OFF)=""
|
---|
93 | .D ATRFLD^VALM00(.FLD,.ON,.OFF)
|
---|
94 | D:ON]"" CNTRL(LINE,COL,WIDTH,.ON,.OFF,$G(SAVE))
|
---|
95 | FLDCTRLQ Q
|
---|
96 | ;
|
---|
97 | SET(LINE,TEXT,ENTRY) ; -- set text in array
|
---|
98 | ; input: LINE := line number
|
---|
99 | ; TEXT := text for line
|
---|
100 | ; ENTRY := entry number assoicated with line [optional]
|
---|
101 | ; >> if defined, then line will also be indexed
|
---|
102 | ;
|
---|
103 | S @VALMAR@(LINE,0)=TEXT
|
---|
104 | S:$G(ENTRY) @VALMAR@("IDX",LINE,ENTRY)=""
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | CLEAN ; -- kill off lines and video cntrls
|
---|
108 | K @VALMAR
|
---|
109 | K ^TMP("VALM VIDEO",$J,VALMEVL)
|
---|
110 | Q
|
---|
111 | ;
|
---|
112 | MSG(VALMSG) ; -- post message immediately
|
---|
113 | I VALMCC D INSTR^VALM1(IORVON_$E($S(VALMSG]"":VALMSG,1:$$MSG^VALM())_$J("",50),1,50)_IORVOFF,11,VALM("BM")+1,50,0) S VALMSG="" G MSGQ
|
---|
114 | D LBAR^VALM
|
---|
115 | MSGQ Q
|
---|