LIBGUI:more bugfix

This commit is contained in:
burniouf 2022-10-19 17:23:41 +02:00
parent 97593445bd
commit 5fa429c326
5 changed files with 102 additions and 125 deletions

Binary file not shown.

View File

@ -298,18 +298,13 @@ DrawBitMap lda #S.CB.CMD.BITBLT
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
DRAW.xBM >LDYA L.BMs,x
DRAW.yaBM >STYA ZPBMPtr
bra DRAW.BM
DRAW.xBMAtDXDY >LDYA L.BMs,x DRAW.xBMAtDXDY >LDYA L.BMs,x
DRAW.yaBMAtDXDY >STYA ZPBMPtr Src BM DRAW.yaBMAtDXDY >STYA ZPBMPtr Src BM
lda #S.CB.CMD.BITBLT
jsr CB.InitCacheA
lda #S.CB.OP.MASK+S.CB.OP.ORA+S.CB.OP.COLOR
sta CB.Cache+S.CB.OP
lda #S.CB.M.C16
sta CB.Cache+S.CB.M
ldx #3 ldx #3
.1 lda DX,x .1 lda DX,x
@ -317,6 +312,15 @@ DRAW.yaBMAtDXDY >STYA ZPBMPtr Src BM
dex dex
bpl .1 bpl .1
DRAW.BM lda #S.CB.CMD.BITBLT
sta CB.Cache+S.CB.CMD
lda #S.CB.OP.MASK+S.CB.OP.ORA+S.CB.OP.COLOR
sta CB.Cache+S.CB.OP
lda #S.CB.M.C16
sta CB.Cache+S.CB.M
ldx #3 ldx #3
ldy #S.BM.W+3 ldy #S.BM.W+3
@ -356,6 +360,10 @@ DrawText lda #S.CB.CMD.DRAWTEXT2
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
DRAW.YAText >STYA CB.Cache+S.CB.TxtPtr
stx CB.Cache+S.CB.hFont
bra DRAW.Text
*--------------------------------------
DRAW.YATextAtDXDY DRAW.YATextAtDXDY
phx phx
jsr CB.ClearCache jsr CB.ClearCache
@ -363,11 +371,18 @@ DRAW.YATextAtDXDY
plx plx
stx CB.Cache+S.CB.hFont stx CB.Cache+S.CB.hFont
lda #S.CB.CMD.DRAWTEXT2 ldx #3
.1 lda DX,x DX,DY -> S.CB.X1,S.CB.Y1
sta CB.Cache+S.CB.X1,x
dex
bpl .1
DRAW.Text lda #S.CB.CMD.DRAWTEXT2
sta CB.Cache+S.CB.CMD sta CB.Cache+S.CB.CMD
lda #0 lda #0
ror ror CS = inverse
eor #S.CB.OP.INVERSE eor #S.CB.OP.INVERSE
ora #S.CB.OP.SET ora #S.CB.OP.SET
@ -377,13 +392,6 @@ DRAW.YATextAtDXDY
lda #S.CB.M.MONO lda #S.CB.M.MONO
sta CB.Cache+S.CB.M sta CB.Cache+S.CB.M
ldx #3
.1 lda DX,x DX,DY -> S.CB.X1,S.CB.Y1
sta CB.Cache+S.CB.X1,x
dex
bpl .1
jmp CB.Cache2CBBuf jmp CB.Cache2CBBuf
*-------------------------------------- *--------------------------------------
DRAW.PullY2X2Y1X1 DRAW.PullY2X2Y1X1
@ -485,7 +493,8 @@ DRAW.AddP1YtoCBX
sta CB.Cache+1,x sta CB.Cache+1,x
rts rts
*-------------------------------------- *--------------------------------------
DrawCBBufToYA ldx hCBBuf DRAW.FlushBufToYA
ldx hCBBuf
beq .80 beq .80
pha pha

View File

@ -418,8 +418,7 @@ MENU.FindMItemByID
.9 sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------
MENU.Enter jsr MENU.GetDXWIE X1,W,X2 MENU.Enter jsr MENU.GETX1X2WDY
jsr MENU.GetDY Y1
jsr MENU.GetMItems jsr MENU.GetMItems
@ -430,6 +429,8 @@ MENU.Enter jsr MENU.GetDXWIE X1,W,X2
cmp #S.MITEM.T.SEP cmp #S.MITEM.T.SEP
beq .2 beq .2
jsr MENU.ResetDX
lda DY Y1 lda DY Y1
sec sec
adc SYSFON.H adc SYSFON.H
@ -474,7 +475,7 @@ MENU.Enter jsr MENU.GetDXWIE X1,W,X2
bne .1 bne .1
>LDYA L.WND.Screen >LDYA L.WND.Screen
jsr DrawCBBufToYA jsr DRAW.FlushBufToYA
jsr MENU.NewSubMenu jsr MENU.NewSubMenu
bcs .9 bcs .9
@ -482,7 +483,7 @@ MENU.Enter jsr MENU.GetDXWIE X1,W,X2
bra .1 bra .1
.4 >LDYA L.WND.Screen .4 >LDYA L.WND.Screen
jmp DrawCBBufToYA jmp DRAW.FlushBufToYA
lda MSG+S.MSG.S lda MSG+S.MSG.S
bit #S.MSG.S.CLK bit #S.MSG.S.CLK
@ -545,20 +546,20 @@ MENU.Draw >SYSCALL2 GetMemPtr
jsr MENU.DrawBorders jsr MENU.DrawBorders
jsr MENU.GetDXWIE jsr MENU.GETX1X2WDY
jsr MENU.GetDY
jsr MENU.GetMItems jsr MENU.GetMItems
.1 lda (ZPPtr1) .1 lda (ZPPtr1)
beq .8 beq .8
jsr MENU.ResetDX
jsr MENU.DrawMItem jsr MENU.DrawMItem
jsr MENU.NextMItemDY jsr MENU.NextMItemDY
bra .1 bra .1
.8 >LDYA L.WND.Screen .8 >LDYA L.WND.Screen
jsr DrawCBBufToYA jsr DRAW.FlushBufToYA
>DEBUG >DEBUG
@ -630,41 +631,24 @@ MENU.DrawBorders
jmp CB.Cache2CBBuf jmp CB.Cache2CBBuf
*-------------------------------------- *--------------------------------------
MENU.DrawMItem jsr MENU.GetDX MENU.DrawMItem lda (ZPPtr1)
lda (ZPPtr1)
cmp #S.MITEM.T.SEP cmp #S.MITEM.T.SEP
bne MENU.DrawMItem1 bne MENU.DrawMItem1
lda #S.CB.CMD.HLINE lda #S.CB.CMD.HLINE
jsr CB.InitCacheA sta CB.Cache+S.CB.CMD
lda #S.CB.OP.SET lda #S.CB.OP.SET
sta CB.Cache+S.CB.OP sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO lda #S.CB.M.MONO
sta CB.Cache+S.CB.M sta CB.Cache+S.CB.M
lda PREFS.BORDERCOLOR lda PREFS.BORDERCOLOR
sta CB.Cache+S.CB.COLOR sta CB.Cache+S.CB.COLOR
ldx #3
.1 lda DX,x
sta CB.Cache+S.CB.X1,x
dex
bpl .1
lda DX
clc
adc Counter
sta CB.Cache+S.CB.X2
lda DX+1
adc Counter+1
sta CB.Cache+S.CB.X2+1
jmp CB.Cache2CBBuf jmp CB.Cache2CBBuf
*-------------------------------------- *--------------------------------------
MENU.DrawMItem1 lda #S.CB.CMD.FILLRECT MENU.DrawMItem1 lda #S.CB.CMD.FILLRECT
jsr CB.InitCacheA sta CB.Cache+S.CB.CMD
lda #S.CB.OP.SET lda #S.CB.OP.SET
sta CB.Cache+S.CB.OP sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO lda #S.CB.M.MONO
@ -680,109 +664,91 @@ MENU.DrawMItem1 lda #S.CB.CMD.FILLRECT
.15 stx CB.Cache+S.CB.COLOR .15 stx CB.Cache+S.CB.COLOR
ldx #3
.10 lda DX,x
sta CB.Cache+S.CB.X1,x
dex
bpl .10
lda DX
clc
adc Counter
sta CB.Cache+S.CB.X2
lda DX+1
adc Counter+1
sta CB.Cache+S.CB.X2+1
lda DY lda DY
sta CB.Cache+S.CB.Y1
sec sec
adc SYSFON.H adc SYSFON.H
sta CB.Cache+S.CB.Y2 sta CB.Cache+S.CB.Y2
lda DY+1 lda DY+1
sta CB.Cache+S.CB.Y1+1
adc #0 adc #0
sta CB.Cache+S.CB.Y2+1 sta CB.Cache+S.CB.Y2+1
jsr CB.Cache2CBBuf jsr CB.Cache2CBBuf
*--------------------------------------
inc DY inc CB.Cache+S.CB.Y1 Y1:1px margin
bne .12 bne .12
inc DY+1 inc CB.Cache+S.CB.Y1+1
.12 lda DX
.12 lda CB.Cache+S.CB.X1
clc clc
adc #MENU.LMargin TODO : Checked adc #MENU.LMargin TODO : Checked
sta DX sta CB.Cache+S.CB.X1
bcc .11 bcc .11
sta DX+1
inc CB.Cache+S.CB.X1+1
.11 jsr MENU.GetIcon .11 jsr MENU.GetIcon
beq .2 beq .2
jsr DRAW.yaBMAtDXDY jsr DRAW.yaBM
.2 lda DX .2 lda CB.Cache+S.CB.X1
clc clc
ldy #S.MENU.iW ldy #S.MENU.iW
adc (ZPMENUPtr),y adc (ZPMENUPtr),y
sta DX sta CB.Cache+S.CB.X1
bcc .21 bcc .21
inc DX+1 inc CB.Cache+S.CB.X1+1
.21 jsr MENU.GetText .21 jsr MENU.GetText
jsr MENU.IsSelected jsr MENU.IsSelected
ldx hSYSFON ldx hSYSFON
jsr DRAW.YATextAtDXDY jsr DRAW.YAText
lda DX lda CB.Cache+S.CB.X1
sec sec
ldy #S.MENU.tW ldy #S.MENU.tW
adc (ZPMENUPtr),y adc (ZPMENUPtr),y
sta DX sta CB.Cache+S.CB.X1
lda DX+1 lda CB.Cache+S.CB.X1+1
iny iny
adc (ZPMENUPtr),y adc (ZPMENUPtr),y
sta DX+1 sta CB.Cache+S.CB.X1+1
lda (ZPPtr1)
cmp #S.MITEM.T.ITEM
bne .3
jsr MENU.GetKeyString jsr MENU.GetKeyString
bcs .3 bcs .3
jsr MENU.IsSelected jsr MENU.IsSelected
ldx hSYSFON ldx hSYSFON
jsr DRAW.YATextAtDXDY jsr DRAW.YAText
.3 lda (ZPPtr1) .3 lda (ZPPtr1)
cmp #S.MITEM.T.SUBMENU cmp #S.MITEM.T.SUBMENU
bne .8 bne .8
lda DX lda CB.Cache+S.CB.X1
sec sec
ldy #S.MENU.kW ldy #S.MENU.kW
adc (ZPMENUPtr),y adc (ZPMENUPtr),y
sta DX sta CB.Cache+S.CB.X1
lda DX+1 lda CB.Cache+S.CB.X1+1
iny iny
adc (ZPMENUPtr),y adc (ZPMENUPtr),y
sta DX+1 sta CB.Cache+S.CB.X1+1
ldx #BM.ID.RIGHT ldx #BM.ID.RIGHT
jsr DRAW.xBMAtDXDY jmp DRAW.xBM
.8 .8 clc
* lda DY
* bne .80
* dec DY+1
*.80 dec DY
clc
rts rts
*-------------------------------------- *--------------------------------------
MENU.GetIcon ldy #S.MITEM.pICON+1 MENU.GetIcon ldy #S.MITEM.pICON+1
@ -944,9 +910,7 @@ MENU.Destroy clc
jsr PTR.Hide.I jsr PTR.Hide.I
.1 jsr CB.ClearCache .1 lda #S.CB.CMD.BITBLT
lda #S.CB.CMD.BITBLT
jsr CB.InitCacheA jsr CB.InitCacheA
lda #S.CB.OP.RESTORE lda #S.CB.OP.RESTORE
@ -1008,26 +972,7 @@ MENU.Destroy clc
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
MENU.GetDXWIE ldy #S.OBJ.W MENU.GETX1X2WDY ldy #S.OBJ.X1
lda (ZPMENUPtr),y
sec
sbc #3 2Px border + correction from W
sta Counter
iny
lda (ZPMENUPtr),y
sbc #0
sta Counter+1
lda Counter W
clc
adc DX
sta IE IE = X2
lda Counter+1
adc DX+1
sta IE+1
MENU.GetDX ldy #S.OBJ.X1
lda (ZPMENUPtr),y lda (ZPMENUPtr),y
clc clc
adc #1 adc #1
@ -1037,9 +982,25 @@ MENU.GetDX ldy #S.OBJ.X1
adc #0 adc #0
sta DX+1 sta DX+1
rts ldy #S.OBJ.W
*-------------------------------------- lda (ZPMENUPtr),y
MENU.GetDY ldy #S.OBJ.Y1 sec
sbc #3 2Px border + correction from W
sta Counter W
iny
lda (ZPMENUPtr),y
sbc #0
sta Counter+1
lda DX
clc
adc Counter
sta CB.Cache+S.CB.X2
lda DX+1
adc Counter+1
sta CB.Cache+S.CB.X2+1
ldy #S.OBJ.Y1
lda (ZPMENUPtr),y lda (ZPMENUPtr),y
clc clc
adc #1 adc #1
@ -1051,6 +1012,13 @@ MENU.GetDY ldy #S.OBJ.Y1
rts rts
*-------------------------------------- *--------------------------------------
MENU.ResetDX lda DX
sta CB.Cache+S.CB.X1
lda DX+1
sta CB.Cache+S.CB.X1+1
rts
*--------------------------------------
MENU.FindSelected MENU.FindSelected
>LDYA ZPPtr1 >LDYA ZPPtr1
>STYA D >STYA D

View File

@ -10,7 +10,7 @@ SYSBUT.Enter sec
jsr SYSBAR.ShowSysBut jsr SYSBAR.ShowSysBut
>LDYA L.WND.SysBar >LDYA L.WND.SysBar
jsr DrawCBBufToYA jsr DRAW.FlushBufToYA
>PUSHW L.MENU.Sys >PUSHW L.MENU.Sys
>PUSHW WND.SysBar+S.OBJ.X1 >PUSHW WND.SysBar+S.OBJ.X1
@ -36,7 +36,7 @@ SYSBUT.Leave bit WND.SYSBAR.bSysBut
>LDYA L.WND.SysBar >LDYA L.WND.SysBar
jmp DrawCBBufToYA jmp DRAW.FlushBufToYA
.8 clc .8 clc
.9 rts .9 rts
@ -52,7 +52,7 @@ SYSBAR.Show jsr CB.GetBuf
>LDYA L.WND.SysBar >LDYA L.WND.SysBar
jmp DrawCBBufToYA jmp DRAW.FlushBufToYA
.9 rts .9 rts
*-------------------------------------- *--------------------------------------

View File

@ -394,7 +394,7 @@ WND.Show2 jsr CB.GetBuf
>LDYA L.WND.Desktop >LDYA L.WND.Desktop
jsr DrawCBBufToYA jsr DRAW.FlushBufToYA
lda WND.hWND lda WND.hWND
pha pha
@ -505,7 +505,7 @@ WND.fPaint >SYSCALL2 GetMemPtr
jsr CB.Cache2CBBuf jsr CB.Cache2CBBuf
.8 >LDYA L.WND.Desktop .8 >LDYA L.WND.Desktop
jmp DrawCBBufToYA jmp DRAW.FlushBufToYA
*-------------------------------------- *--------------------------------------
WND.ShowBorders sta IY WND.ShowBorders sta IY