NEW AUTO 3,1 *-------------------------------------- * NewBut(HWND, bFlags, wW, pICON, pTEXT, bKEYMOD, bKEY, wID, wX, wY) *-------------------------------------- BUT.New lda #S.OBJ.T.BUT jsr OBJ.New * bcs .9 phx hOBJ jsr OBJ.PullY1X1 ldy #S.BUT.ID jsr OBJ.PullWordAtY ldy #S.BUT.KEYMOD jsr OBJ.PullWordAtY ldy #S.BUT.pTEXT jsr OBJ.PullWordAtY ldy #S.BUT.pICON jsr OBJ.PullWordAtY ldy #S.OBJ.W jsr OBJ.PullWordAtY ldy #S.OBJ.F jsr OBJ.PullByteAtY jsr OBJ.PullHWND ldy #S.OBJ.W jsr OBJ.GetPropAtY bcc .5 W in !NULL, static size stz DX stz DX+1 ldy #S.BUT.pICON jsr OBJ.GetPropAtY bcs .1 no icon lda #16 IconW sta DX .1 ldy #S.BUT.pTEXT jsr OBJ.GetPropAtY bcs .3 no text ldx hSYSFON jsr FON.GetTextSize ldy #S.OBJ.F lda (ZPObjPtr),y and #S.BUT.F.NOSPACE bne .2 lda DX beq .2 clc adc PREFS.XSeparator sta DX .2 clc lda CB.CACHE+S.CB.SrcW adc DX sta DX lda CB.CACHE+S.CB.SrcW+1 adc DX+1 sta DX+1 .3 lda PREFS.XSeparator asl * clc adc DX ldy #S.OBJ.W sta (ZPObjPtr),y lda #0 adc DX+1 iny sta (ZPObjPtr),y .5 lda SYSFON.Hp2 ldy #S.OBJ.H sta (ZPObjPtr),y >LDYA ZPObjPtr jsr OBJ.SetX2Y2 .8 jsr WND.AddChild.I pla hOBJ clc rts .9 >POP 16 rts *-------------------------------------- BUT.Enter ldy #S.OBJ.S lda (ZPObjPtr),y bpl BUT.Paint .8 clc rts *-------------------------------------- BUT.Leave ldy #S.OBJ.S lda (ZPObjPtr),y bpl .8 bit #S.BUT.F.NOLEAVE beq BUT.Paint .8 clc rts *-------------------------------------- BUT.Close clc rts *-------------------------------------- BUT.Paint eor #S.BUT.S.SELECTED sta (ZPObjPtr),y jsr WND.GetInnerInClip BUT.fPaint jsr CB.GetBuf bcs .9 ldx #1 jsr DRAW.BordersAtX ldx #C.WHITE ldy #S.OBJ.S lda (ZPObjPtr),y bpl .1 * and #S.BUT.S.SELECTED * beq .1 ldx #C.BLACK .1 txa jsr CB.FillRectMonoA jsr CB.GetObjX1Y1X2Y2 jsr CB.Cache2CBBufG ldy #S.BUT.pTEXT jsr OBJ.GetPropAtY ldx hSYSFON jsr FON.GetTextSize jsr CB.SrcWCenterH jsr CB.IncY1 ldy #S.BUT.pTEXT jsr OBJ.GetPropAtY ldx hSYSFON jsr DRAW.YAText .8 jmp CB.FlushBuf .9 rts *-------------------------------------- MAN SAVE usr/src/lib/libgui.s.but LOAD usr/src/lib/libgui.s ASM