LIBTUI:Improved LBOX

This commit is contained in:
burniouf 2024-01-26 15:05:51 +01:00
parent f0adfc775d
commit 02e4c892c8
4 changed files with 43 additions and 14 deletions

Binary file not shown.

View File

@ -10,8 +10,11 @@ NEW
.INB inc/libtui.i .INB inc/libtui.i
*-------------------------------------- *--------------------------------------
EV.SAVE .EQ $C0 EV.SAVE .EQ $C0
EV.CHECKBOX .EQ $C1 EV.QUIT .EQ $C1
EV.RADIO .EQ $C2 EV.CHECKBOX .EQ $C2
EV.RADIO .EQ $C3
EV.LBOX1.CHANGED .EQ $C4
EV.LBOX1.PRESSED .EQ $C5
EV.OK .EQ $CE EV.OK .EQ $CE
EV.CANCEL .EQ $CF EV.CANCEL .EQ $CF
*-------------------------------------- *--------------------------------------
@ -146,10 +149,10 @@ CS.RUN.LOOP lda hSCRN
rts rts
.3 cmp #EV.RADIO .3 cmp #EV.LBOX1.CHANGED
bne .8 bne .8
* Do something when RADIO got a new value * Do something
bra CS.RUN.LOOP bra CS.RUN.LOOP
@ -227,6 +230,8 @@ CS.LBOX1.Init >PUSHB hSCRN hParent
>PUSHBI 1 Y1 >PUSHBI 1 Y1
>PUSHBI 20 W >PUSHBI 20 W
>PUSHBI 9 H >PUSHBI 9 H
>PUSHBI EV.LBOX1.CHANGED
>PUSHBI EV.LBOX1.PRESSED
>PUSHW L.LBOX1.List >PUSHW L.LBOX1.List
>PUSHEA.G LBOX1.Var >PUSHEA.G LBOX1.Var
>PUSHBI S.OBJ.F.bHBorder+S.OBJ.F.bVBorder >PUSHBI S.OBJ.F.bHBorder+S.OBJ.F.bVBorder

View File

@ -115,10 +115,12 @@ S.TBOX.BufCnt .EQ S.OBJ+14
* *
S.TBOX .EQ S.OBJ+16 S.TBOX .EQ S.OBJ+16
*-------------------------------------- *--------------------------------------
S.LBOX.Idx .EQ S.OBJ+0 S.LBOX.EV.CHANGED .EQ S.OBJ+0
S.LBOX.VScroll .EQ S.OBJ+2 S.LBOX.EV.PRESSED .EQ S.OBJ+1
S.LBOX.Idx .EQ S.OBJ+2
S.LBOX.VScroll .EQ S.OBJ+4
* *
S.LBOX .EQ S.OBJ+4 S.LBOX .EQ S.OBJ+6
*-------------------------------------- *--------------------------------------
S.CBOX.HotKey .EQ S.OBJ+0 S.CBOX.HotKey .EQ S.OBJ+0
S.CBOX.EV .EQ S.OBJ+1 S.CBOX.EV .EQ S.OBJ+1
@ -139,7 +141,6 @@ S.RADIO.Idx .EQ S.OBJ+2
S.RADIO .EQ S.OBJ+4 S.RADIO .EQ S.OBJ+4
*-------------------------------------- *--------------------------------------
EV.RESIZE .EQ $80 EV.RESIZE .EQ $80
EV.QUIT .EQ $81
EV.HL.SELECTED .EQ $82 EV.HL.SELECTED .EQ $82
EV.HL.PRESSED .EQ $83 EV.HL.PRESSED .EQ $83
*-------------------------------------- *--------------------------------------

View File

@ -2,7 +2,7 @@ NEW
AUTO 3,1 AUTO 3,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
* LBOX.New hParent,X1,Y1,W,H,pList,pVar,F 10 * LBOX.New hParent,X1,Y1,W,H,EV.CHANGED,EV.PRESSED,pList,pVar,F 12
*-------------------------------------- *--------------------------------------
LBOX.New lda #S.OBJ.T.LBOX LBOX.New lda #S.OBJ.T.LBOX
jsr OBJ.Create jsr OBJ.Create
@ -17,7 +17,15 @@ LBOX.New lda #S.OBJ.T.LBOX
ldy #S.OBJ.pBuf ldy #S.OBJ.pBuf
jsr OBJ.PullWordY jsr OBJ.PullWordY
>PULLA
ldy #S.LBOX.EV.PRESSED
sta (ZPObjPtr),y
>PULLA
ldy #S.LBOX.EV.CHANGED
sta (ZPObjPtr),y
jsr OBJ.PullHW jsr OBJ.PullHW
jsr OBJ.PullY1X1hParent jsr OBJ.PullY1X1hParent
@ -29,7 +37,7 @@ LBOX.New lda #S.OBJ.T.LBOX
* clc * clc
rts rts
.9 >POP 10 .9 >POP 12
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
@ -69,7 +77,7 @@ LBOX.Run ldy #S.OBJ.S
bra .7 bra .7
.2 cmp #C.VT .2 cmp #C.VT
bne .9 bne .3
ldy #S.LBOX.Idx ldy #S.LBOX.Idx
lda (ZPObjPtr),y lda (ZPObjPtr),y
@ -92,16 +100,31 @@ LBOX.Run ldy #S.OBJ.S
>PUSHA >PUSHA
jsr OBJ.Draw.Body jsr OBJ.Draw.Body
inc pStack inc pStack
bcs .99
ldy #S.LBOX.EV.CHANGED
lda (ZPObjPtr),y
* clc
rts
.3 cmp #C.SPACE
bne .9
ldy #S.LBOX.EV.PRESSED
lda (ZPObjPtr),y
clc
rts rts
.8 clc .8 lda #0
clc
rts rts
.9 lda #0 .9 lda #0
sec sec
rts .99 rts
*-------------------------------------- *--------------------------------------
LBOX.Draw ldy #S.LBOX.VScroll LBOX.Draw ldy #S.LBOX.VScroll
lda (ZPObjPtr),y lda (ZPObjPtr),y