[613] | 1 | DDBRS ;SFISC/DCL-SET UP SPLIT SCREEN ;NOV 04, 1996@13:55
|
---|
| 2 | ;;22.0;VA FileMan;;Mar 30, 1999
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | TB(IOTM,IOBM,TA) ;Set Top and Bottom Margins in Target Array
|
---|
| 5 | ;pass IOTM, IOBM and TA all by reference **
|
---|
| 6 | N I,X
|
---|
| 7 | I (((IOBM-IOTM)+1)#2) S IOBM=IOBM-1
|
---|
| 8 | S TA(0,"IOTM")=IOTM
|
---|
| 9 | S TA(0,"IOBM")=IOBM
|
---|
| 10 | ETA S X=((IOBM+1)-(IOTM-1)\2)-2
|
---|
| 11 | S TA(1,"IOTM")=IOTM
|
---|
| 12 | S TA(1,"IOBM")=IOTM+X
|
---|
| 13 | S TA(2,"IOBM")=IOBM
|
---|
| 14 | S TA(2,"IOTM")=IOBM-X
|
---|
| 15 | ETB D
|
---|
| 16 | .N IOTM,IOBM
|
---|
| 17 | .F I=+$G(I):1:2 S IOTM=TA(I,"IOTM"),IOBM=TA(I,"IOBM") D
|
---|
| 18 | ..S TA(I,"DDBSY")=(IOTM-2)_";"_(IOTM-1)_";"_(IOBM-1)_";"_(IOBM)
|
---|
| 19 | ..S TA(I,"DDBSRL")=(IOBM-IOTM)+1
|
---|
| 20 | ..Q
|
---|
| 21 | .Q
|
---|
| 22 | Q
|
---|
| 23 | ;
|
---|
| 24 | ENTB(TA,DDBLD) ;called to reset DDBSY and DDBSRL for resizing split screen
|
---|
| 25 | ;TA PASSED BY REFERENCE
|
---|
| 26 | N I
|
---|
| 27 | S I=1
|
---|
| 28 | D ETB
|
---|
| 29 | F I=1,2 S TA(I,"DDBTPG")=TA(I,"DDBTL")\TA(I,"DDBSRL")+(TA(I,"DDBTL")#TA(I,"DDBSRL")'<1)
|
---|
| 30 | F I="DDBTPG","DDBSY","DDBSRL" S @I=TA(TA,I)
|
---|
| 31 | I DDBLD<0 S TA(1,"DDBL")=TA(1,"DDBL")-$S(TA(1,"DDBL")>0:1,1:0) Q
|
---|
| 32 | S TA(1,"DDBL")=TA(1,"DDBL")+$S(TA(1,"DDBL")<TA(1,"DDBTL"):1,1:0) Q
|
---|
| 33 | Q
|
---|
| 34 | ;
|
---|
| 35 | INIT(SUB,TA) ;Finish saving variables for TA pass TA by reference **
|
---|
| 36 | N I G:$G(SUB)]"" SUB
|
---|
| 37 | F SUB=1,2 D SUB
|
---|
| 38 | Q
|
---|
| 39 | SUB F I="DDBSRL","DDBHDR","DDBHDRC","DDBTL","DDBSA","DDBSF","DDBST","DDBZN","DDBDM","DDBC","DDBPSA","DDBRPE","DDBPMSG","DDBTPG" S TA(SUB,I)=@I
|
---|
| 40 | S TA(SUB,"DDBL")=+$G(DDBL)
|
---|
| 41 | Q
|
---|
| 42 | ;
|
---|
| 43 | SR(X,Y,ARRAY) ;Save, Restore, Array - Pass Array by reference **
|
---|
| 44 | D INIT(X,.ARRAY)
|
---|
| 45 | S X=""
|
---|
| 46 | F S X=$O(ARRAY(Y,X)) Q:X="" S @X=ARRAY(Y,X)
|
---|
| 47 | S ARRAY=Y ;* * active array * *
|
---|
| 48 | Q
|
---|
| 49 | ;
|
---|
| 50 | FULL(TA) ;Full Screen
|
---|
| 51 | ;TA passed by reference
|
---|
| 52 | I TA=1 S DDBL=DDBL+(DDBSRL+2)
|
---|
| 53 | N I,X
|
---|
| 54 | F I="IOBM","IOTM","DDBSY","DDBSRL" S @I=TA(0,I)
|
---|
| 55 | S DDBTPG=DDBTL\DDBSRL+(DDBTL#DDBSRL'<1)
|
---|
| 56 | S I=1 D ETA
|
---|
| 57 | W @IOSTBM
|
---|
| 58 | S TA=0 ;* * active array * *
|
---|
| 59 | S DDBL=$G(DDBL,0) S:DDBL<0 DDBL=0 S:DDBL>DDBTL DDBL=DDBTL
|
---|
| 60 | D PSR^DDBR0(1)
|
---|
| 61 | Q
|
---|
| 62 | ;
|
---|
| 63 | SPLIT ;Split Screen
|
---|
| 64 | N I
|
---|
| 65 | F I="IOBM","IOTM","DDBSY","DDBSRL" S @I=DDBRSA(2,I)
|
---|
| 66 | S DDBTPG=DDBTL\DDBSRL+(DDBTL#DDBSRL'<1)
|
---|
| 67 | S I=1
|
---|
| 68 | D INIT("",.DDBRSA)
|
---|
| 69 | W @IOSTBM
|
---|
| 70 | S DDBL=$G(DDBL,0) S:DDBL<0 DDBL=0 S:DDBL>DDBTL DDBL=DDBTL
|
---|
| 71 | D PSR^DDBR0(1)
|
---|
| 72 | D SR(2,1,.DDBRSA)
|
---|
| 73 | W @IOSTBM
|
---|
| 74 | S DDBL=DDBL-(DDBSRL+2),DDBRSA(1,"DDBL")=DDBL
|
---|
| 75 | S DDBL=$G(DDBL,0) S:DDBL<0 DDBL=0 S:DDBL>DDBTL DDBL=DDBTL
|
---|
| 76 | D PSR^DDBR0(1)
|
---|
| 77 | Q
|
---|
| 78 | ;
|
---|
| 79 | ;;NOTE: DDBRSA=0 - full screen
|
---|
| 80 | ;; DDBRSA=1 - top of split screen
|
---|
| 81 | ;; DDBRSA=2 - bottom of split screen
|
---|