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

View File

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

View File

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

View File

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