DDGLCBOX ;SFISC/MKO-COMBO BOX ;2:09 PM 26 Apr 1996 ;;22.0;VA FileMan;;Mar 30, 1999 ;Per VHA Directive 10-93-142, this routine should not be modified. ; CBOX(DDGLGLO,DDGLOUT,DDGLROW,DDGLCOL,DDGLHT,DDGLWD,DDGLSEL,DDGLFLG) ; Q:$G(DDGLGLO)="" ; N DDGLCBOX,DDGLSEL,DDGLI,DDGLNC,DDGLEMAP,DDGLTERM,DDGLDONE ; ;Create list box and set up defaults D INIT ; ;Save the # columns and selected text S DDGLI=DDGLCBOX(DDGLCBOX,"SV") S DDGLNC=$P(DDGLI,U,5) S DDGLSEL=DDGLCBOX(DDGLCBOX,"ITEM",$P(DDGLI,U,6)) K DDGLI ; ;Write the brackets for the edit field S DY=DDGLROW,DX=DDGLCOL X IOXY W "["_$J("",DDGLNC)_"]" ; ;Read for the edit box S DDGLEMAP(1)="EKDN^DDGLCBOX;KEYDOWN" S DDGLEMAP(2)="EQUIT^DDGLCBOX;$C(27,27)" S DDGLEMAP(3)="EQUIT^DDGLCBOX;F1_""Q""" S DDGLEMAP(4)="EQUIT^DDGLCBOX;F1_""C""" S DDGLEMAP(5)="EEXIT^DDGLCBOX;F1_""E""" ; F D Q:$G(DDGLDONE) . D EN^DIR0(DDGLROW,DDGLCOL+1,DDGLNC,1,DDGLSEL,245,0,.DDGLEMAP,"KTW",.DDGLSEL,.DDGLTERM) . I $P(DDGLTERM,U)="N" S DDGLDONE=1 Q . I $P(DDGLTERM,U)="QUIT" S DDGLDONE=1 Q . I $P(DDGLTERM,U)="TO" S DDGLDONE=1 Q . ; . D READ^DDGLBXA(.DDGLCBOX,.DDGLOUT) . I DDGLOUT("C")'="TAB" S DDGLDONE=1 Q . S DDGLSEL=DDGLOUT(0) ; ;Clear edit field and destroy list box S DY=DDGLROW,DX=DDGLCOL X IOXY W $J("",DDGLNC+2) D DESTROY^DDGLBXA(DDGLCBOX,$G(DDGLFLG)) Q ; EKDN ; Q:"^UP^DOWN^RIGHT^LEFT^TAB^"[(U_Y_U) ; D E1^DIR01 S DIR0CH="" Q:DIR0A="" ; N DDGLDX,DDGLDY W $P(DDGLVID,DDGLDEL,10) S DDGLDX=DX,DDGLDY=DY ; D UPDATE^DDGLBXA(.DDGLCBOX,DIR0A) ; W $P(DDGLVID,DDGLDEL,6) S DX=DDGLDX,DY=DDGLDY Q EQUIT ; S DIR0QT="1^QUIT" Q EEXIT ; S DIR0QT="1^N" Q LTAB ; K DDGLOUT S DDGLOUT=$O(@DDGLGLO@(DDGLSEL,"")),DDGLOUT(0)=DDGLSEL S DDGLOUT("C")="TAB" S DDGLQT=1 Q ; LKDN ; N DY,DX S DY=DDGLROW-1,DX=DDGLCOL X IOXY W DDGLSEL_$J("",DDGLNC-$L(DDGLSEL)) Q ; INIT ;Set defaults and create list box ;Returns: DDGLCBOX array ; D INIT^DDGLIB0() ; ;Set defaults for row and column N DDGLMAP I $G(DDGLROW,-1)<0 S DDGLROW=5 E I DDGLROW+4>IOSL S DDGLROW=IOSL-4 I $G(DDGLCOL,-1)<0 S DDGLCOL=5 E I DDGLCOL+6>IOM S DDGLCOL=IOM-6 ; ;Check DDGLHT and DDGLWD S DDGLHT=$S($D(DDGLHT)[0:7,DDGLHT<3:3,1:DDGLHT) S:DDGLROW+DDGLHT+2>IOSL DDGLHT=IOSL-DDGLROW ; S DDGLWD=$S($D(DDGLWD)[0:14,DDGLWD<5:5,1:DDGLWD) S:DDGLCOL+DDGLWD+2>IOM DDGLWD=IOM-DDGLCOL ; S DDGLMAP(1)="LTAB^DDGLCBOX;$C(9)" S DDGLMAP(2)="LKDN^DDGLCBOX;KEYDOWN" ; D CREATE^DDGLBXA(DDGLGLO,.DDGLCBOX,DDGLROW+1,DDGLCOL+1,DDGLHT,DDGLWD,$G(DDGLSEL),.DDGLMAP) Q ;