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

DDGLIB0.m

Go to the documentation of this file.
  1. DDGLIB0 ;SFISC/MKO - SETUP AND CLEANUP FOR WINDOWS ;14JUN2016
  1. ;;22.2;VA FileMan;**3**;Jan 05, 2016;Build 17
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
  1. ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
  1. ;;Licensed under the terms of the Apache License, Version 2.0.
  1. ;
  1. INIT(DDGLBROW) ;Setup required variables
  1. ;Set margin to 0
  1. ;Turn autowrap off
  1. ;Turn type-ahead on
  1. ;Variables set:
  1. ; DDGLDEL = delimiter for other DDGL variables
  1. ; DDGLVID = codes that turn on/off video attributes
  1. ; DDGLED = codes for editing
  1. ; DDGLCLR = codes to erase characters
  1. ; DDGLGRA = codes for graphics characters
  1. ; DDGLZOSF = array of code from %ZOSF (as of V22.2 - array comes from OS file)
  1. ; DDGLREF = global where window image is stored
  1. ; DDGLKEY = codes for non-alphanumeric keys
  1. ; DDGLSCR = array containing list of visible windows on screen
  1. ;
  1. N X
  1. I $D(DDGLDEL)[0 D SET Q:$G(DIERR)
  1. S X=0 X DDGLZOSF("RM"),DDGLZOSF("TYPE-AHEAD")
  1. W $P(DDGLVID,DDGLDEL,8)
  1. Q
  1. ;
  1. SET ;Setup screen handling variables
  1. K DIERR,DDGLSCR
  1. S U="^",DDGLDEL=$C(127)
  1. ;
  1. ; VEN/SMH - remove reliance on %ZOSF node -- next 3 lines changed v 22.2
  1. D:'$D(DISYS) OS^DII ; garb OS from %ZOSF or Fileman in this sequence
  1. F X="EOFF","EON","TRMOFF","TRMON","TRMRD","RM","TYPE-AHEAD","NO-TYPE-AHEAD" D G:$G(DIERR) ABT
  1. . S DDGLZOSF(X)=$G(^DD("OS",DISYS,X))
  1. ;
  1. ZIS N %ZIS,IOP S IOP="HOME" D ^%ZIS I POP D BLD^DIALOG(845) G ABT
  1. I $D(^%ZIS(2)),'$O(^%ZIS(2,+$G(IOST(0)),0)) D BLD^DIALOG(840,"#"_+$G(IOST(0))) G ABT
  1. ;
  1. D:$G(IOXY)="" TRMERR("Cursor positioning (XY CRT)")
  1. ;
  1. S X="IORVON;IORVOFF;IOELEOL;IOEDEOP;IOUON;IOUOFF;IOSGR0;IOINHI;IOINLOW;IOINORM;IOCUU;IOCUD;IOCUF;IOCUB;IODL;IOIL;IODCH;IOICH;IOEDALL;IOELALL;IORI;IOAWM1;IOAWM0;IOSTBM;IOPF1;IOPF2;IOPF3;IOPF4;IOFIND;IOSELECT;IOINSERT;IOREMOVE;IOPREVSC;IONEXTSC"
  1. N @$TR(X,";",",")
  1. N IOBLC,IOBRC,IOBT,IOG1,IOG0,IOHL,IOLT,IOMT,IORT,IOTLC,IOTRC,IOTT,IOVL
  1. D ENDR^%ZISS,GSET^%ZISS
  1. I $G(IOPREVSC)="" D ;"^C-VT220^C-VT320^"[(U_IOST_U) D IOST MIGHT BE VT-100
  1. . S IOPREVSC=$C(27)_"[5~"
  1. . S IONEXTSC=$C(27)_"[6~"
  1. ;
  1. ATT ;GET COLOR ATTRIBUTES FOR SCREENMAN...
  1. N A,B I '$D(DDGLBROW) D ;...BUT NOT FOR THE BROWSER (see INIT+1^DDBR)
  1. .S A(1)=$C(27,91)_"40m",A(2)=$C(27,91)_"41m",A(3)=$C(27,91)_"45m" ;Defaults
  1. .I $G(^XTV(8989.5,0))?1"PARAM".E F X=1,2,3 S A=$$GET^XPAR("ALL","DI SCREENMAN COLORS",X),B=$$GET^XPAR("ALL","DI SCREENMAN COLORS",X+3) S:B]"" A(X)=$C(27,91)_(10+B)_"m" S:A]"" A(X)=A(X)_$C(27,91)_+A_"m"
  1. .S IOUON=IOINHI_A(1) ;REQ CAPTION BACKGROUND (BLACK)
  1. .S IOINHI=IOINHI_A(2) ;DATA BACKGROUND (RED)
  1. .S IORVON=IOINHI_A(3) ;CLICKABLE BACKGROUND (MAGENTA)
  1. .S (IORVOFF,IOUOFF)=IOINORM
  1. S DDGLVID=IOINHI_DDGLDEL_IOINLOW_DDGLDEL_IOINORM_DDGLDEL_IOUON_DDGLDEL_IOUOFF_DDGLDEL_IORVON_DDGLDEL_IORVOFF_DDGLDEL_IOAWM0_DDGLDEL_IOAWM1_DDGLDEL_$G(IOSGR0)
  1. S DDGLED=$G(IORI)_DDGLDEL_$G(IOSTBM)_DDGLDEL_$G(IOIL)_DDGLDEL_$G(IODL)_DDGLDEL_$G(IOICH)_DDGLDEL_$G(IODCH)
  1. S DDGLCLR=IOELEOL_DDGLDEL_IOEDALL_DDGLDEL_IOEDEOP_DDGLDEL_$G(IOELALL)
  1. S DDGLKEY=U_IOCUU_U_IOCUD_U_IOCUF_U_IOCUB_U_IOPF1_U_IOPF2_U_IOPF3_U_IOPF4_U_$G(IOFIND)_U_$G(IOSELECT)_U_$G(IOINSERT)_U_$G(IOREMOVE)_U_$G(IOPREVSC)_U_$G(IONEXTSC)_U
  1. S DDGLGRA=IOG1_DDGLDEL_IOG0_DDGLDEL_IOHL_DDGLDEL_IOVL_DDGLDEL_IOTLC_DDGLDEL_IOTRC_DDGLDEL_IOBLC_DDGLDEL_IOBRC
  1. S:DDGLDEL_$P(DDGLGRA,DDGLDEL,3,999)_DDGLDEL[(DDGLDEL_DDGLDEL) DDGLGRA=DDGLDEL_DDGLDEL_"-"_DDGLDEL_"|"_DDGLDEL_"+"_DDGLDEL_"+"_DDGLDEL_"+"_DDGLDEL_"+"
  1. ;
  1. D:$P(DDGLKEY,U,1,5)_U[(U_U) TRMERR("Cursor keys")
  1. D:U_$P(DDGLKEY,U,6,9)_U[(U_U) TRMERR("PF keys")
  1. D:IOELEOL="" TRMERR("Erase to End of Line")
  1. D:IOEDALL="" TRMERR("Erase Entire Page")
  1. D:IOEDEOP="" TRMERR("Erase to End of Page")
  1. G:$G(DIERR) ABT
  1. ;
  1. S DDGLREF="^TMP(""DDGL"",$J,""W"")" K @DDGLREF
  1. ;
  1. I "^C-QUME^C-QVT102^C-WYSE75^"[(U_$TR(IOST," ","")_U) D
  1. . S DDGLVAN=1
  1. . S $P(DDGLVID,DDGLDEL,4,7)=$S($TR(IOST," ","")="C-WYSE75":IOINHI_DDGLDEL_IOINLOW_DDGLDEL_IOINHI_DDGLDEL_IOINLOW,1:IOINLOW_DDGLDEL_IOINHI_DDGLDEL_IOINLOW_DDGLDEL_IOINHI)
  1. . S $P(DDGLVID,DDGLDEL,10)=IOINORM
  1. ;
  1. D:'$D(^%ZTSK)!($D(^%ZOSF("MGR"))[0) KILL^%ZISS
  1. MOUSEON ;I $G(DDS)>0 W *27,"[?1000h" NOW DONE IN DDS0
  1. Q
  1. ;
  1. ;
  1. ASKIOSL ; not used
  1. ;N X
  1. ;X ^%ZOSF("EOFF")
  1. R X:0 S XX=""
  1. W $C(27)_7_$C(27)_"[r"_$C(27)_"[999;999H"_$C(27)_"[6n" R X ; R *X:1 R:$T XX S X=$C(X)_XX
  1. ;S X=+$E(X,3,5) I X S IOSL=X
  1. Q
  1. ;
  1. ;
  1. ;
  1. TRMERR(DDGLCH) ;Terminal type errors
  1. N P
  1. S P(1)=DDGLCH,P(2)=IOST
  1. D BLD^DIALOG(842,.P)
  1. Q
  1. ;
  1. ;
  1. ;
  1. KILL(DDGLPARM) ;Cleanup variables
  1. ;Set margin to IOM
  1. ;Turn off type-ahead if New Person file so indicates
  1. ;Turn autowrap on
  1. ;Reset character attributes
  1. ;Turn echo on
  1. ;Turn terminators off
  1. N X
  1. D:'$D(DISYS) OS^DII ; garb OS from %ZOSF or Fileman in this sequence
  1. I $G(DDGLPARM)'["W" D
  1. . S X=$S($D(IOM)#2:IOM,1:80) X $G(DDGLZOSF("RM"))
  1. . I $D(DUZ)#2,$D(^VA(200,DUZ,0))#2,$P($G(^(200)),U,9)'="Y" D
  1. .. I '$G(DUZ("BUF"),1) X $G(DDGLZOSF("NO-TYPE-AHEAD"))
  1. . W $P($G(DDGLVID),$G(DDGLDEL),9),$P($G(DDGLVID),$G(DDGLDEL),10)
  1. ;
  1. I $G(DDGLPARM)'["T" D
  1. . X $G(DDGLZOSF("EON")),$G(DDGLZOSF("TRMOFF"))
  1. E X $G(DDGLZOSF("EOFF")),$G(DDGLZOSF("TRMON"))
  1. ;
  1. MOUSEOFF ;W *27,"[?1000l" NOW DONE IN DDS0
  1. ABT K DX,DY,POP
  1. I '$G(DIERR),$G(DDGLPARM)["K" Q
  1. K:$G(DDGLREF)]"" @DDGLREF
  1. D:'$D(^%ZTSK)!($D(^%ZOSF("MGR"))[0) KILL^%ZISS
  1. ;
  1. K DDGLDEL,DDGLVID,DDGLED,DDGLCLR,DDGLGRA,DDGLZOSF,DDGLREF
  1. K DDGLKEY,DDGLSCR,DDGLVAN,DDGLH
  1. ;
  1. K DIR0