Annotation of freem_fileman/USER/DDGLIB0.m, revision 1.1
1.1 ! snw 1: DDGLIB0 ;SFISC/MKO-SETUP AND CLEANUP FOR WINDOWS ;09:37 AM 30 Nov 1994
! 2: ;;21.0;VA FileMan;;Dec 28, 1994
! 3: ;Per VHA Directive 10-93-142, this routine should not be modified.
! 4: INIT() ;Setup required variables
! 5: ;Set margin to 0
! 6: ;Turn autowrap off
! 7: ;Turn type-ahead on
! 8: ;Variables set:
! 9: ; DDGLDEL = delimiter for other DDGL variables
! 10: ; DDGLVID = codes that turn on/off video attributes
! 11: ; DDGLED = codes for editing
! 12: ; DDGLCLR = codes to erase characters
! 13: ; DDGLGRA = codes for graphics characters
! 14: ; DDGLZOSF = array of code from %ZOSF
! 15: ; DDGLREF = global where window image is stored
! 16: ; DDGLKEY = codes for non-alphanumeric keys
! 17: ; DDGLSCR = array containing list of visible windows on screen
! 18: ;
! 19: N X
! 20: I $D(DDGLDEL)[0 D SET Q:$G(DIERR)
! 21: S X=0 X ^%ZOSF("RM"),^("TYPE-AHEAD")
! 22: W $P(DDGLVID,DDGLDEL,8)
! 23: Q
! 24: ;
! 25: SET ;Setup screen handling variables
! 26: K DIERR,DDGLSCR
! 27: S U="^",DDGLDEL=$C(127)
! 28: ;
! 29: F X="EOFF","EON","TRMOFF","TRMON","TRMRD" D G:$G(DIERR) ABT
! 30: . I $D(^%ZOSF(X))#2 S DDGLZOSF(X)=^(X) Q
! 31: . D BLD^DIALOG(810)
! 32: ;
! 33: S IOP="HOME" D ^%ZIS I POP D BLD^DIALOG(845) G ABT
! 34: I $D(^%ZIS(2)),'$O(^%ZIS(2,+$G(IOST(0)),0)) D BLD^DIALOG(840,"#"_+$G(IOST(0))) G ABT
! 35: ;
! 36: D:$G(IOXY)="" TRMERR("Cursor positioning (XY CRT)")
! 37: ;
! 38: 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"
! 39: N @$TR(X,";",",")
! 40: N IOBLC,IOBRC,IOBT,IOG1,IOG0,IOHL,IOLT,IOMT,IORT,IOTLC,IOTRC,IOTT,IOVL
! 41: D ENDR^%ZISS,GSET^%ZISS
! 42: I $G(IOPREVSC)="","^C-VT220^C-VT320^"[(U_IOST_U) D
! 43: . S IOPREVSC=$C(27)_"[5~"
! 44: . S IONEXTSC=$C(27)_"[6~"
! 45: ;
! 46: S DDGLVID=IOINHI_DDGLDEL_IOINLOW_DDGLDEL_IOINORM_DDGLDEL_IOUON_DDGLDEL_IOUOFF_DDGLDEL_IORVON_DDGLDEL_IORVOFF_DDGLDEL_IOAWM0_DDGLDEL_IOAWM1_DDGLDEL_IOSGR0
! 47: S DDGLED=$G(IORI)_DDGLDEL_$G(IOSTBM)_DDGLDEL_$G(IOIL)_DDGLDEL_$G(IODL)_DDGLDEL_$G(IOICH)_DDGLDEL_$G(IODCH)
! 48: S DDGLCLR=IOELEOL_DDGLDEL_IOEDALL_DDGLDEL_IOEDEOP_DDGLDEL_$G(IOELALL)
! 49: 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
! 50: S DDGLGRA=IOG1_DDGLDEL_IOG0_DDGLDEL_IOHL_DDGLDEL_IOVL_DDGLDEL_IOTLC_DDGLDEL_IOTRC_DDGLDEL_IOBLC_DDGLDEL_IOBRC
! 51: S:DDGLDEL_$P(DDGLGRA,DDGLDEL,3,999)_DDGLDEL[(DDGLDEL_DDGLDEL) DDGLGRA=DDGLDEL_DDGLDEL_"-"_DDGLDEL_"|"_DDGLDEL_"+"_DDGLDEL_"+"_DDGLDEL_"+"_DDGLDEL_"+"
! 52: ;
! 53: D:$P(DDGLKEY,U,1,5)_U[(U_U) TRMERR("Cursor keys")
! 54: D:U_$P(DDGLKEY,U,6,9)_U[(U_U) TRMERR("PF keys")
! 55: D:IOELEOL="" TRMERR("Erase to End of Line")
! 56: D:IOEDALL="" TRMERR("Erase Entire Page")
! 57: D:IOEDEOP="" TRMERR("Erase to End of Page")
! 58: G:$G(DIERR) ABT
! 59: ;
! 60: S DDGLREF="^TMP(""DDGL"",$J,""W"")" K @DDGLREF
! 61: ;
! 62: I "^C-QUME^C-QVT102^C-WYSE75^"[(U_$TR(IOST," ","")_U) D
! 63: . S DDGLVAN=1
! 64: . 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)
! 65: . S $P(DDGLVID,DDGLDEL,10)=IOINORM
! 66: ;
! 67: D:'$D(^%ZTSK)!($D(^%ZOSF("MGR"))[0) KILL^%ZISS
! 68: Q
! 69: ;
! 70: TRMERR(DDGLCH) ;Terminal type errors
! 71: N P
! 72: S P(1)=DDGLCH,P(2)=IOST
! 73: D BLD^DIALOG(842,.P)
! 74: Q
! 75: ;
! 76: KILL(DDGLPARM) ;Cleanup variables
! 77: ;Set margin to IOM
! 78: ;Turn off type-ahead if New Person file so indicates
! 79: ;Turn autowrap on
! 80: ;Reset character attributes
! 81: ;Turn echo on
! 82: ;Turn terminators off
! 83: N X
! 84: I $G(DDGLPARM)'["W" D
! 85: . S X=$S($D(IOM)#2:IOM,1:80) X $G(^%ZOSF("RM"))
! 86: . I $D(DUZ)#2,$D(^VA(200,DUZ,0))#2,$P($G(^(200)),U,9)'="Y" D
! 87: .. I '$G(DUZ("BUF"),1) X $G(^%ZOSF("NO-TYPE-AHEAD"))
! 88: . W $P($G(DDGLVID),$G(DDGLDEL),9),$P($G(DDGLVID),$G(DDGLDEL),10)
! 89: ;
! 90: I $G(DDGLPARM)'["T" D
! 91: . X $G(DDGLZOSF("EON")),$G(DDGLZOSF("TRMOFF"))
! 92: E X $G(DDGLZOSF("EOFF")),$G(DDGLZOSF("TRMON"))
! 93: ;
! 94: ABT K DX,DY,POP
! 95: I '$G(DIERR),$G(DDGLPARM)["K" Q
! 96: K:$G(DDGLREF)]"" @DDGLREF
! 97: D:'$D(^%ZTSK)!($D(^%ZOSF("MGR"))[0) KILL^%ZISS
! 98: ;
! 99: K DDGLDEL,DDGLVID,DDGLED,DDGLCLR,DDGLGRA,DDGLZOSF,DDGLREF
! 100: K DDGLKEY,DDGLSCR,DDGLVAN,DDGLH
! 101: ;
! 102: K DIR0
! 103: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>