Annotation of freem_fileman/USER/DDGF3.m, revision 1.1
1.1 ! snw 1: DDGF3 ;SFISC/MKO-Block Viewer Page ;02:49 PM 12 Oct 1994
! 2: ;;21.0;VA FileMan;;Dec 28, 1994
! 3: ;Per VHA Directive 10-93-142, this routine should not be modified.
! 4: ;Variables used:
! 5: ; DDGFBV = flag indicating we're on block viewer page
! 6: ; DDGFORIG(B) = original $Y^original $X for all blocks that were
! 7: ; selected, since they were potentially moved
! 8: ; DDGFEBV = flag that can be set to exit block viewer page
! 9: ; after a block has been selected
! 10: ;
! 11: N DDGFE
! 12: S DDGFE=0,DDGFBV=1 K DDGFORIG,DDGFEBV
! 13: ;
! 14: D PAINT,RC(DY,DX)
! 15: F S Y=$$READ W:$T(@Y)="" $C(7) D:$T(@Y)]"" @Y D:$D(DDGFMSG) MSG^DDGF() Q:DDGFE!$G(DDGFEBV)
! 16: D CLEANUP
! 17: Q
! 18: ;
! 19: LNU I DY>$P(DDGFLIM,U) D RC(DY-1,DX)
! 20: Q
! 21: LND I DY<$P(DDGFLIM,U,3) D RC(DY+1,DX)
! 22: Q
! 23: CHR I DX<$P(DDGFLIM,U,4) D RC(DY,DX+1)
! 24: Q
! 25: CHL I DX>$P(DDGFLIM,U,2) D RC(DY,DX-1)
! 26: Q
! 27: ELR N Y,X
! 28: S Y=DY,X=DX
! 29: F D Q:Y=""!(X]"")
! 30: . S X=$O(@DDGFREF@("BKRC",DDGFWIDB,Y,X))
! 31: . S:X="" Y=$O(@DDGFREF@("BKRC",DDGFWIDB,Y))
! 32: D:X]"" RC(Y,X)
! 33: Q
! 34: ELL N Y,X
! 35: S Y=DY,X=DX
! 36: F D Q:Y=""!(X]"")
! 37: . S X=$O(@DDGFREF@("BKRC",DDGFWIDB,Y,X),-1)
! 38: . S:X="" Y=$O(@DDGFREF@("BKRC",DDGFWIDB,Y),-1)
! 39: D:X]"" RC(Y,X)
! 40: Q
! 41: TBR I DX<$P(DDGFLIM,U,4) D
! 42: . D RC(DY,$S(DX+5'<$P(DDGFLIM,U,4):$P(DDGFLIM,U,4),1:DX+5))
! 43: E I DY<$P(DDGFLIM,U,3) D RC(DY+1,$P(DDGFLIM,U,2))
! 44: Q
! 45: TBL I DX>$P(DDGFLIM,U,2) D
! 46: . D RC(DY,$S(DX-5'>$P(DDGFLIM,U,2):$P(DDGFLIM,U,2),1:DX-5))
! 47: E I DY>$P(DDGFLIM,U) D RC(DY-1,$P(DDGFLIM,U,4))
! 48: Q
! 49: ;
! 50: SCT I DY>$P(DDGFLIM,U) D RC($P(DDGFLIM,U),DX)
! 51: Q
! 52: SCB I DY<$P(DDGFLIM,U,3) D RC($P(DDGFLIM,U,3),DX)
! 53: Q
! 54: SCR I DX<$P(DDGFLIM,U,4) D RC(DY,$P(DDGFLIM,U,4))
! 55: Q
! 56: SCL I DX>$P(DDGFLIM,U,2) D RC(DY,$P(DDGFLIM,U,2))
! 57: Q
! 58: SELECT ;
! 59: Q:'$D(@DDGFREF@("BKRC",DDGFWIDB,DY))
! 60: G SELECT^DDGFBSEL
! 61: ;
! 62: SAVE ;Save data
! 63: G SAVE^DDGFSV
! 64: ;
! 65: BKADD ;Add a new block
! 66: G ADD^DDGFBK
! 67: ;
! 68: HBKADD ;Add a header block
! 69: G ADD^DDGFHBK
! 70: ;
! 71: HELP ;Invoke help screens
! 72: D ^DDGFH,REFRESH^DDGF,RC(DY,DX)
! 73: Q
! 74: ;
! 75: TO W $C(7)
! 76: QUIT ;
! 77: EXIT ;
! 78: VIEW S DDGFE=1
! 79: Q
! 80: CLEANUP ;
! 81: S DDGFDY=DY,DDGFDX=DX
! 82: D CLOSE^DDGLIBW(DDGFWIDB,1)
! 83: I $D(DDGFORIG) D
! 84: . N A
! 85: . S A=$$AREA^DDGLIBW(DDGFWID)
! 86: . D DESTROY^DDGLIBW(DDGFWID,1)
! 87: . D CREATE^DDGLIBW(DDGFWID,A,$P(@DDGFREF@("F",DDGFPG),U,3)]"")
! 88: . D BLK^DDGFUPDB(.DDGFORIG)
! 89: E D OPEN^DDGLIBW(DDGFWID)
! 90: S DY=IOSL-6,DX=46 X IOXY W $J("",13)
! 91: S DY=IOSL-1,DX=0 X IOXY W $P(DDGLCLR,DDGLDEL)_$P(DDGLVID,DDGLDEL)_"<PF1>Q=Quit <PF1>E=Exit <PF1>S=Save <PF1>V=Block Viewer <PF1>H=Help"_$P(DDGLVID,DDGLDEL,10)
! 92: D RC(DDGFDY,DDGFDX)
! 93: K DDGFDY,DDGFDX,DDGFBV,DDGFEBV,DDGFORIG
! 94: Q
! 95: ;
! 96: PAINT ;Paint block displayer window
! 97: N B,C,S,DY,DX
! 98: D CLOSE^DDGLIBW(DDGFWID,1)
! 99: S DY=IOSL-6,DX=46 X IOXY W "BLOCK VIEWER"
! 100: S DY=IOSL-1,DX=0 X IOXY W $P(DDGLCLR,DDGLDEL)_$P(DDGLVID,DDGLDEL)_"<PF1>V=Main Screen <PF1>H=Help"_$P(DDGLVID,DDGLDEL,10)
! 101: I $$EXIST^DDGLIBW(DDGFWIDB) D FOCUS^DDGLIBW(DDGFWIDB) Q
! 102: D CREATE^DDGLIBW(DDGFWIDB,$P(DDGFLIM,U,1,2)_U_($P(DDGFLIM,U,3)-$P(DDGFLIM,U,1)+1)_U_($P(DDGFLIM,U,4)-$P(DDGFLIM,U,2)+1),$P(@DDGFREF@("F",DDGFPG),U,3)]"")
! 103: S B="" F S B=$O(@DDGFREF@("F",DDGFPG,B)) Q:B="" D
! 104: . S C=@DDGFREF@("F",DDGFPG,B)
! 105: . S S=$P(C,U,4)
! 106: . S:$P(C,U,3)'<IOM S=$E(S,1,IOM-$P(C,U,2)-1)
! 107: . D WRITE^DDGLIBW(DDGFWIDB,S,$P(C,U)-$P(DDGFLIM,U),$P(C,U,2)-$P(DDGFLIM,U,2))
! 108: Q
! 109: ;
! 110: RC(DDGFY,DDGFX) ;Update status line, reset DX and DY, move cursor
! 111: N S
! 112: I DDGFR D
! 113: . S DY=IOSL-6,DX=IOM-9,S="R"_(DDGFY+1)_",C"_(DDGFX+1)
! 114: . X IOXY W S_$J("",7-$L(S))
! 115: S DY=DDGFY,DX=DDGFX X IOXY
! 116: Q
! 117: ;
! 118: READ() N S,Y
! 119: F R *Y:DTIME D C Q:Y'=-1
! 120: Q Y
! 121: ;
! 122: C I Y<0 S Y="TO" Q
! 123: S S=""
! 124: C1 S S=S_$C(Y)
! 125: I DDGF("IN")'[(U_S) D I Y=-1 W $C(7) Q
! 126: . I $C(Y)'?1L S Y=-1 Q
! 127: . S S=$E(S,1,$L(S)-1)_$C(Y-32) S:DDGF("IN")'[(U_S_U) Y=-1
! 128: ;
! 129: I DDGF("IN")[(U_S_U),S'=$C(27) S Y=$P(DDGF("OUT"),U,$L($P(DDGF("IN"),U_S_U),U)) Q
! 130: R *Y:5 G:Y'=-1 C1 W $C(7)
! 131: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>