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

DIR02.m

Go to the documentation of this file.
  1. DIR02 ;SFISC/MKO-MULTILINE FIELD EDITOR ;25MAY2004
  1. ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
  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. EN ;
  1. N DIR0FL,DIR0LN,DIR0NC,DIR0QU
  1. X DDGLZOSF("EOFF"),DDGLZOSF("TRMON")
  1. W $S('$D(DDGLVAN):$P(DDGLVID,DDGLDEL,6),1:"")
  1. S DIR0QU=0
  1. ;
  1. S:$D(DIR0C)#2 DIR0C=DIR0C+1
  1. D INIT,^DIR03
  1. W $P(DDGLVID,DDGLDEL,7)
  1. Q
  1. ;
  1. SM ;ScreenMan's entry point, called from ^DIR01
  1. N DIR0DN,DIR0FL,DIR0LN,DIR0NC,DIR0NL
  1. S DIR0R=IOSL-6,DIR0S=0,DIR0L=IOM-1,DIR0NL=4
  1. ;
  1. D INIT,^DIR03
  1. ;
  1. S:$D(DTOUT) DIR0A=DIR0D
  1. ;
  1. ;Restore command area
  1. S DY=DIR0R,DX=DIR0S X IOXY
  1. W $P(DDGLVID,DDGLDEL,10)_$P(DDGLCLR,DDGLDEL,3) F DY=DY:1:IOSL-1 K DDSMOUSE(DY)
  1. ;
  1. BOT D BOT^DDSCOM
  1. ;Restore variables
  1. S (DY,DIR0R)=$P(DIR0,U),(DX,DIR0S)=$P(DIR0,U,2),DIR0L=$P(DIR0,U,3)
  1. S DIR0F=DIR0S+DIR0L
  1. S DIR0SP=$J("",DIR0L) S:$G(DDGLVAN) DIR0SP=$TR(DIR0SP," ","_")
  1. I DIR0A]"","^?"[$E(DIR0A) S DIR0QT=1
  1. ;
  1. ;Repaint answer
  1. X IOXY
  1. W:'$D(DDGLVAN) $P(DDGLVID,DDGLDEL,6)
  1. I DIR0C>DIR0L D
  1. . W $E(DIR0A,DIR0C-DIR0L+1,DIR0C)_$E(DIR0SP,DIR0C>$L(DIR0A))
  1. . S DX=DIR0F-1
  1. E D
  1. . W $E(DIR0A,1,DIR0L)_$E(DIR0SP,$L(DIR0A)+1,999)
  1. . S DX=DIR0S+DIR0C-1
  1. X IOXY
  1. K DTOUT
  1. Q
  1. ;
  1. ;
  1. ;
  1. INIT ;Setup
  1. K DTOUT
  1. S:DIR0M<$L(DIR0A) DIR0M=$L(DIR0A)
  1. S DIR0SP=$J("",DIR0L) S:$G(DDSVAN) DIR0SP=$TR(DIR0SP," ","_")
  1. ;
  1. F DIR0LN=1:1:DIR0NL D
  1. . S DY=DIR0R+DIR0LN-1,DX=DIR0S X IOXY
  1. . S X=$E(DIR0A,DIR0LN-1*DIR0L+1,DIR0LN*DIR0L)
  1. . W X_$E(DIR0SP,$L(X)+1,999)
  1. ;
  1. S:DIR0NL*DIR0L-1<DIR0M DIR0M=DIR0NL*DIR0L-1
  1. S DIR0NL=DIR0M\DIR0L+1,DIR0NC=DIR0M#DIR0L
  1. S DIR0F=DIR0S+DIR0L-1,DIR0FL=DIR0S+DIR0NC-1
  1. S DIR0SV=$G(DIR0("L")),DIR0DN=0
  1. ;
  1. S DIR0C=$S($G(DIR0C)<1:1,1:DIR0C)
  1. S:DIR0C-1>DIR0M DIR0C=DIR0M+1
  1. S DIR0LN=DIR0C\DIR0L+1
  1. S DY=DIR0R+DIR0LN-1,DX=DIR0S+(DIR0C#DIR0L)-1
  1. X IOXY
  1. Q
  1. ;
  1. KILL ;Cleanup all variables
  1. D KILL^DDGLIB0()
  1. Q