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

DDBRS.m

Go to the documentation of this file.
  1. DDBRS ;SFISC/DCL-SET UP SPLIT SCREEN ;NOV 04, 1996@13:55
  1. ;;22.0;VA FileMan;;Mar 30, 1999
  1. ;Per VHA Directive 10-93-142, this routine should not be modified.
  1. TB(IOTM,IOBM,TA) ;Set Top and Bottom Margins in Target Array
  1. ;pass IOTM, IOBM and TA all by reference **
  1. N I,X
  1. I (((IOBM-IOTM)+1)#2) S IOBM=IOBM-1
  1. S TA(0,"IOTM")=IOTM
  1. S TA(0,"IOBM")=IOBM
  1. ETA S X=((IOBM+1)-(IOTM-1)\2)-2
  1. S TA(1,"IOTM")=IOTM
  1. S TA(1,"IOBM")=IOTM+X
  1. S TA(2,"IOBM")=IOBM
  1. S TA(2,"IOTM")=IOBM-X
  1. ETB D
  1. .N IOTM,IOBM
  1. .F I=+$G(I):1:2 S IOTM=TA(I,"IOTM"),IOBM=TA(I,"IOBM") D
  1. ..S TA(I,"DDBSY")=(IOTM-2)_";"_(IOTM-1)_";"_(IOBM-1)_";"_(IOBM)
  1. ..S TA(I,"DDBSRL")=(IOBM-IOTM)+1
  1. ..Q
  1. .Q
  1. Q
  1. ;
  1. ENTB(TA,DDBLD) ;called to reset DDBSY and DDBSRL for resizing split screen
  1. ;TA PASSED BY REFERENCE
  1. N I
  1. S I=1
  1. D ETB
  1. F I=1,2 S TA(I,"DDBTPG")=TA(I,"DDBTL")\TA(I,"DDBSRL")+(TA(I,"DDBTL")#TA(I,"DDBSRL")'<1)
  1. F I="DDBTPG","DDBSY","DDBSRL" S @I=TA(TA,I)
  1. I DDBLD<0 S TA(1,"DDBL")=TA(1,"DDBL")-$S(TA(1,"DDBL")>0:1,1:0) Q
  1. S TA(1,"DDBL")=TA(1,"DDBL")+$S(TA(1,"DDBL")<TA(1,"DDBTL"):1,1:0) Q
  1. Q
  1. ;
  1. INIT(SUB,TA) ;Finish saving variables for TA pass TA by reference **
  1. N I G:$G(SUB)]"" SUB
  1. F SUB=1,2 D SUB
  1. Q
  1. SUB F I="DDBSRL","DDBHDR","DDBHDRC","DDBTL","DDBSA","DDBSF","DDBST","DDBZN","DDBDM","DDBC","DDBPSA","DDBRPE","DDBPMSG","DDBTPG" S TA(SUB,I)=@I
  1. S TA(SUB,"DDBL")=+$G(DDBL)
  1. Q
  1. ;
  1. SR(X,Y,ARRAY) ;Save, Restore, Array - Pass Array by reference **
  1. D INIT(X,.ARRAY)
  1. S X=""
  1. F S X=$O(ARRAY(Y,X)) Q:X="" S @X=ARRAY(Y,X)
  1. S ARRAY=Y ;* * active array * *
  1. Q
  1. ;
  1. FULL(TA) ;Full Screen
  1. ;TA passed by reference
  1. I TA=1 S DDBL=DDBL+(DDBSRL+2)
  1. N I,X
  1. F I="IOBM","IOTM","DDBSY","DDBSRL" S @I=TA(0,I)
  1. S DDBTPG=DDBTL\DDBSRL+(DDBTL#DDBSRL'<1)
  1. S I=1 D ETA
  1. W @IOSTBM
  1. S TA=0 ;* * active array * *
  1. S DDBL=$G(DDBL,0) S:DDBL<0 DDBL=0 S:DDBL>DDBTL DDBL=DDBTL
  1. D PSR^DDBR0(1)
  1. Q
  1. ;
  1. SPLIT ;Split Screen
  1. N I
  1. F I="IOBM","IOTM","DDBSY","DDBSRL" S @I=DDBRSA(2,I)
  1. S DDBTPG=DDBTL\DDBSRL+(DDBTL#DDBSRL'<1)
  1. S I=1
  1. D INIT("",.DDBRSA)
  1. W @IOSTBM
  1. S DDBL=$G(DDBL,0) S:DDBL<0 DDBL=0 S:DDBL>DDBTL DDBL=DDBTL
  1. D PSR^DDBR0(1)
  1. D SR(2,1,.DDBRSA)
  1. W @IOSTBM
  1. S DDBL=DDBL-(DDBSRL+2),DDBRSA(1,"DDBL")=DDBL
  1. S DDBL=$G(DDBL,0) S:DDBL<0 DDBL=0 S:DDBL>DDBTL DDBL=DDBTL
  1. D PSR^DDBR0(1)
  1. Q
  1. ;
  1. ;;NOTE: DDBRSA=0 - full screen
  1. ;; DDBRSA=1 - top of split screen
  1. ;; DDBRSA=2 - bottom of split screen