| 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
 | 
|---|