Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: VALM10

VALM10.m

Go to the documentation of this file.
  1. VALM10 ;MJK;09:29 PM 17 Jan 1993;
  1. ;;1;List Manager;;Aug 13, 1993
  1. ;
  1. CNTRL(LINE,COL,WIDTH,ON,OFF,SAVE) ; -- set video control chars
  1. ; input: LINE := line number
  1. ; COL := column to start control
  1. ; WIDTH := how many characters should contrl be in effect
  1. ; ON := beginninng control code (ex. the value of IOINHI)
  1. ; OFF := ending control code (ex. the value of IOINORM)
  1. ; SAVE := 1 to save control code for later use
  1. ; otherwise 0 [optional]
  1. ;
  1. S X="VALM VIDEO"_$S($G(SAVE):" SAVE",1:"")
  1. S ^TMP(X,$J,VALMEVL,LINE,COL,WIDTH)=ON
  1. S ^TMP(X,$J,VALMEVL,LINE,COL+WIDTH,0)=OFF
  1. Q
  1. ;
  1. KILL(LINE) ; -- kill off video cntrls for a line
  1. ; input: LINE := line number
  1. ;
  1. K:'$D(LINE) ^TMP("VALM VIDEO",$J,VALMEVL),^TMP("VALM VIDEO SAVE",$J,VALMEVL)
  1. K:$D(LINE) ^TMP("VALM VIDEO",$J,VALMEVL,LINE),^TMP("VALM VIDEO SAVE",$J,VALMEVL,LINE)
  1. Q
  1. ;
  1. SAVE(LINE) ; -- save video cntrls for a line
  1. ; input: LINE := line number
  1. ;
  1. D SWAP("^TMP(""VALM VIDEO"",$J,VALMEVL,LINE)","^TMP(""VALM VIDEO SAVE"",$J,VALMEVL,LINE)")
  1. Q
  1. ;
  1. RESTORE(LINE) ; -- restore video cntrls for a line
  1. ; input: LINE := line number
  1. ;
  1. D SWAP("^TMP(""VALM VIDEO SAVE"",$J,VALMEVL,LINE)","^TMP(""VALM VIDEO"",$J,VALMEVL,LINE)")
  1. Q
  1. ;
  1. SWAP(FR,TO,SAVE) ; -- swap video cntrl arrays
  1. ; [not a supported call]
  1. ;
  1. K @TO
  1. S COL=0
  1. F S COL=$O(@FR@(COL)) Q:'COL D
  1. .N WIDTH S WIDTH=""
  1. .F S WIDTH=$O(@FR@(COL,WIDTH)) Q:WIDTH="" S @TO@(COL,WIDTH)=@FR@(COL,WIDTH)
  1. K:'$G(SAVE) @FR
  1. Q
  1. ;
  1. SELECT(LINE,MODE) ; -- highlight/unhighlight a line
  1. ; input: LINE := line number
  1. ; MODE := 1 to highlight line
  1. ; 0 to unhighlight and restore to original state
  1. ;
  1. I MODE D
  1. .D SAVE(.LINE)
  1. .D CNTRL(.LINE,1,VALM("RM"),.IOINHI,.IOINORM)
  1. I 'MODE D RESTORE(.LINE)
  1. D WRITE(.LINE)
  1. Q
  1. ;
  1. WRITE(LINE) ; -- re-write line to screen
  1. ; input: LINE := line number
  1. ;
  1. N DY
  1. W IOSC
  1. S DY=LINE-VALMBG+VALM("TM")-1 D IOXY^VALM4(0,.DY)
  1. D WRITE^VALM4(.LINE,0,1,.DY)
  1. W IORC
  1. Q
  1. ;
  1. FLDTEXT(LINE,FLD,TEXT) ; -- set text for field in line
  1. ; input: LINE := line number
  1. ; FLD := caption field name
  1. ; TEXT := text to insert for field
  1. ;
  1. S @VALMAR@(LINE,0)=$$SETFLD^VALM1(.TEXT,@VALMAR@(LINE,0),.FLD)
  1. Q
  1. ;
  1. FLDCTRL(LINE,FLD,ON,OFF,SAVE) ; -- set default video ctrls for line
  1. ; or just 1 field
  1. ; input: LINE := line number
  1. ; FLD := caption field name [optional]
  1. ; ON := beginninng control code (ex. the value of IOINHI)
  1. ; OFF := ending control code (ex. the value of IOINORM)
  1. ; SAVE := 1 to save control code for later use
  1. ; otherwise 0 [optional]
  1. ;
  1. I $G(FLD)="" D SWAP("^TMP(""VALM VIDEO SAVE"",$J,VALMEVL,0)","^TMP(""VALM VIDEO"",$J,VALMEVL,LINE)",1) G FLDCTRLQ
  1. ; -- just a fld
  1. N COL,WIDTH,X I '$D(ON) N ON,OFF
  1. S X=VALMDDF(FLD),COL=$P(X,U,2),WIDTH=$P(X,U,3)
  1. I '$D(ON) D
  1. .S (ON,OFF)=""
  1. .D ATRFLD^VALM00(.FLD,.ON,.OFF)
  1. D:ON]"" CNTRL(LINE,COL,WIDTH,.ON,.OFF,$G(SAVE))
  1. FLDCTRLQ Q
  1. ;
  1. SET(LINE,TEXT,ENTRY) ; -- set text in array
  1. ; input: LINE := line number
  1. ; TEXT := text for line
  1. ; ENTRY := entry number assoicated with line [optional]
  1. ; >> if defined, then line will also be indexed
  1. ;
  1. S @VALMAR@(LINE,0)=TEXT
  1. S:$G(ENTRY) @VALMAR@("IDX",LINE,ENTRY)=""
  1. Q
  1. ;
  1. CLEAN ; -- kill off lines and video cntrls
  1. K @VALMAR
  1. K ^TMP("VALM VIDEO",$J,VALMEVL)
  1. Q
  1. ;
  1. MSG(VALMSG) ; -- post message immediately
  1. 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
  1. D LBAR^VALM
  1. MSGQ Q