diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 2d7f4052..5cbf9027 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index 130b7d49..69d508be 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -33,13 +33,14 @@ C16.YELLOW .EQ 14 C.WHITE .EQ 255 *-------------------------------------- CUR.T.ARROW .EQ 0 -CUR.T.RESIZEX .EQ 2 -CUR.T.RESIZEY .EQ 4 -CUR.T.RESIZEXY1 .EQ 6 -CUR.T.RESIZEXY2 .EQ 8 -CUR.T.CROSS .EQ 10 -CUR.T.TEXT .EQ 12 -CUR.T.WAIT .EQ 14 +CUR.T.MOVE .EQ 2 +CUR.T.RESIZEX .EQ 4 +CUR.T.RESIZEY .EQ 6 +CUR.T.RESIZEXY1 .EQ 8 +CUR.T.RESIZEXY2 .EQ 10 +CUR.T.CROSS .EQ 12 +CUR.T.TEXT .EQ 14 +CUR.T.WAIT .EQ 16 *-------------------------------------- S.MOUSE.X1 .EQ 0 S.MOUSE.Y1 .EQ 2 @@ -138,13 +139,18 @@ S.WND.fPaint .EQ S.OBJ+40 * S.WND .EQ S.OBJ+42 *-------------------------------------- -S.MBAR.NEXT .EQ 0 -S.MBAR.S .EQ 1 -S.MBAR.X1 .EQ 2 -S.MBAR.XT .EQ 4 -S.MBAR.X2 .EQ 6 -S.MBAR.MENU .EQ 8 -S.MBAR.TEXT .EQ 10 +S.MBAR.MBITEMS .EQ S.OBJ +S.MBAR.Selected .EQ S.OBJ+2 +* +S.MBAR .EQ S.OBJ+4 +*-------------------------------------- +S.MBITEM.NEXT .EQ 0 +S.MBITEM.S .EQ 1 +S.MBITEM.X1 .EQ 2 +S.MBITEM.XT .EQ 4 +S.MBITEM.X2 .EQ 6 +S.MBITEM.MENU .EQ 8 +S.MBITEM.TEXT .EQ 10 *-------------------------------------- S.MENU.MITEMS .EQ S.OBJ S.MENU.hSAVEBUF .EQ S.OBJ+2 diff --git a/LIB/LIBGUI.G.CUR.txt b/LIB/LIBGUI.G.CUR.txt index d3b7c448..cfad155a 100644 --- a/LIB/LIBGUI.G.CUR.txt +++ b/LIB/LIBGUI.G.CUR.txt @@ -53,6 +53,35 @@ CUR.Arrow.MASK .DA %111.11111100 .DA %110.00000000 .DA %110.00001111 *-------------------------------------- +CUR.Move .DA #S.BM.F.BBP1 + .DA #2 RowBytes + .DA 11 W + .DA 11 H + .DA CUR.Move.MASK-CUR.Move + .DA %000.00100000 + .DA %000.01010000 + .DA %000.10001000 + .DA %001.00000100 + .DA %010.00000010 + .DA %100.00000001 + .DA %010.00000010 + .DA %001.00000100 + .DA %000.10001000 + .DA %000.01010000 + .DA %000.00100000 +CUR.Move.MASK + .DA %111.11111111 + .DA %111.11111111 + .DA %111.11111111 + .DA %111.11111111 + .DA %111.11111111 + .DA %111.11111111 + .DA %111.11111111 + .DA %111.11111111 + .DA %111.11111111 + .DA %111.11111111 + .DA %111.11111111 +*-------------------------------------- CUR.ResizeX .DA #S.BM.F.BBP1 .DA #2 RowBytes .DA 14 W diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index 92a67f03..d3bc2b77 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -417,7 +417,6 @@ DRAW.GetInnerW ldy #S.OBJ.X1 >LDYA L.OBJ.Cache jmp OBJ.SetX2Y2 - *-------------------------------------- DrawCBPtrToYA1 pha diff --git a/LIB/LIBGUI.S.MBAR.txt b/LIB/LIBGUI.S.MBAR.txt new file mode 100644 index 00000000..96599772 --- /dev/null +++ b/LIB/LIBGUI.S.MBAR.txt @@ -0,0 +1,95 @@ +NEW + AUTO 3,1 +*-------------------------------------- +MBAR.Init >STYA ZPMENUPtr + >STYA ZPPtr1 + + ldy #S.MBITEM.S + lda (ZPPtr1),y + bmi .80 + + stz DX + stz DX+1 + +.1 lda (ZPPtr1) + beq .8 + + lda #S.MBITEM.TEXT + clc + adc ZPPtr1 + tay + lda ZPPtr1+1 + adc #0 + + ldx hSYSFONB + jsr FON.GetTextSize + + ldy #S.MBITEM.X1 + + lda DX + sta (ZPPtr1),y + + iny + + lda DX+1 + sta (ZPPtr1),y + + iny #S.MBITEM.XT + + lda DX + clc + adc PREFS.MBARXMARGIN + sta DX + sta (ZPPtr1),y + + iny + + lda DX+1 + adc #0 + sta DX+1 + sta (ZPPtr1),y + + lda DX + clc + adc CB.CACHE+S.CB.SrcW + sta DX + + lda DX+1 + adc CB.CACHE+S.CB.SrcW+1 + sta DX+1 + + iny #S.MBITEM.X2 + + lda DX + clc + adc PREFS.MBARXMARGIN + sta DX + sta (ZPPtr1),y + + iny + + lda DX+1 + adc #0 + sta DX+1 + sta (ZPPtr1),y + + lda (ZPPtr1) + clc + adc ZPPtr1 + sta ZPPtr1 + bcc .1 + inc ZPPtr1+1 + bra .1 + +.8 lda #$80 + + ldy #S.MBITEM.S + sta (ZPMENUPtr),y + +.80 clc + rts +*-------------------------------------- +MAN +SAVE usr/src/lib/libgui.s.mbar +LOAD usr/src/lib/libgui.s +ASM diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index 2a668fe8..fad05c1f 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -1,94 +1,6 @@ NEW AUTO 3,1 *-------------------------------------- -MENU.MBarInit >STYA ZPMENUPtr - >STYA ZPPtr1 - - ldy #S.MBAR.S - lda (ZPPtr1),y - bmi .80 - - stz DX - stz DX+1 - -.1 lda (ZPPtr1) - beq .8 - - lda #S.MBAR.TEXT - clc - adc ZPPtr1 - tay - lda ZPPtr1+1 - adc #0 - - ldx hSYSFONB - jsr FON.GetTextSize - - ldy #S.MBAR.X1 - - lda DX - sta (ZPPtr1),y - - iny - - lda DX+1 - sta (ZPPtr1),y - - iny #S.MBAR.XT - - lda DX - clc - adc PREFS.MBARXMARGIN - sta DX - sta (ZPPtr1),y - - iny - - lda DX+1 - adc #0 - sta DX+1 - sta (ZPPtr1),y - - lda DX - clc - adc CB.CACHE+S.CB.SrcW - sta DX - - lda DX+1 - adc CB.CACHE+S.CB.SrcW+1 - sta DX+1 - - iny #S.MBAR.X2 - - lda DX - clc - adc PREFS.MBARXMARGIN - sta DX - sta (ZPPtr1),y - - iny - - lda DX+1 - adc #0 - sta DX+1 - sta (ZPPtr1),y - - lda (ZPPtr1) - clc - adc ZPPtr1 - sta ZPPtr1 - bcc .1 - inc ZPPtr1+1 - bra .1 - -.8 lda #$80 - - ldy #S.MBAR.S - sta (ZPMENUPtr),y - -.80 clc - rts -*-------------------------------------- * MENU.New(int X, int Y, *S.RECT parent *S.MITEM mitems) *-------------------------------------- MENU.New ldy MENU.Stack.Top @@ -174,34 +86,19 @@ MENU.New.RTS rts * hMENU8, ItemID8, Prop8, Value16 *-------------------------------------- MENU.SetMItemProp - ldy #4 - lda (pStack),y hMENU + ldy #4 hMENU + lda (pStack),y >SYSCALL2 GetMemPtr >STYA ZPMENUPtr - - bra .7 - - jsr MENU.GetMItems -.1 lda (ZPPtr1) - beq .8 - - ldy #S.MITEM.F - lda (ZPPtr1),y - cmp #S.MITEM.F.SEP - beq .2 - - ldy #S.MITEM.ID - lda (ZPPtr1),y - ldy #3 ID8 - cmp (pStack),y - beq .7 - -.2 jsr MENU.NextMItem - bra .1 + lda (pStack),y + tax -.7 ldy #2 Prop8 + jsr MENU.FindMItemByID + bcs .9 + + ldy #2 Prop8 lda (pStack),y tay @@ -213,7 +110,10 @@ MENU.SetMItemProp >PULLA sta (ZPPtr1),y -.8 >RET 3 +* clc + +.8 >POP 3 +.9 rts *-------------------------------------- MENU.Show >SYSCALL2 GetMemPtr >STYA ZPMENUPtr @@ -314,10 +214,7 @@ MENU.Enter jsr MENU.GetDX >LDYA L.WND.Screen jsr DrawCBPtrToYA1 - - - - rts + jmp MENU.NewSubMenu .8 ldy #S.MENU.Selected nothing to select.... lda (ZPMENUPtr),y @@ -338,6 +235,34 @@ MENU.Enter jsr MENU.GetDX .9 rts *-------------------------------------- +MENU.NewSubMenu ldy #S.MENU.Selected + lda (ZPMENUPtr),y + tax + + jsr MENU.FindMItemByID + jsr MENU.GetDX + + lda DX + clc + adc Counter + tay + lda DX+1 + adc Counter+1 + + >PUSHYA X1 + >PUSHW DY Y1 + >PUSHWI DX Parent RECT + + ldy #S.MITEM.pMENU+1 + lda (ZPPtr1),y + >PUSHA + dey + lda (ZPPtr1),y + >PUSHA + + jsr MENU.New + jmp MENU.Show +*-------------------------------------- MENU.SetMenuSizePos stz IY Icon Margin W diff --git a/LIB/LIBGUI.S.MOU.txt b/LIB/LIBGUI.S.MOU.txt index 4a18403c..e3faf9c7 100644 --- a/LIB/LIBGUI.S.MOU.txt +++ b/LIB/LIBGUI.S.MOU.txt @@ -153,7 +153,9 @@ MOU.CheckOverWND ldx WND.Stack.Top beq .9 -.1 lda WND.Stack-1,x +.1 stx WND.Stack.Idx + + lda WND.Stack-1,x >SYSCALL GetMemPtr >STYA ZPWNDPtr @@ -174,16 +176,48 @@ MOU.CheckOverWND adc #0 jsr MOU.InRectYA - bcs .3 + bcs .7 + + ldy #S.WND.TBarY2 + lda (ZPWNDPtr),y + cmp MouseData+S.MOUSE.Y1 + iny + lda (ZPWNDPtr),y + sbc MouseData+S.MOUSE.Y1+1 + bcc .3 - lda #CUR.T.WAIT - jmp SetCursor + lda #CUR.T.MOVE + jsr SetCursor + clc + rts + +.3 iny #S.WND.MBarY2 -.3 lda #CUR.T.ARROW - jmp SetCursor + lda (ZPWNDPtr),y + cmp MouseData+S.MOUSE.Y1 + iny + lda (ZPWNDPtr),y + sbc MouseData+S.MOUSE.Y1+1 + bcc .6 + + lda #CUR.T.CROSS + jsr SetCursor + clc + rts -.8 +.6 lda #CUR.T.WAIT + jsr SetCursor + clc + rts + +.7 ldx WND.Stack.Idx + + dex + bne .1 + + lda #CUR.T.ARROW + jsr SetCursor .9 sec .99 rts @@ -217,7 +251,7 @@ MOU.ChkWNDBorders iny lda (ZPWNDPtr),y sbc #0 - lda MouseData+S.MOUSE.Y1+1 + eor MouseData+S.MOUSE.Y1+1 bne .3 lda IY diff --git a/LIB/LIBGUI.S.SYSBAR.txt b/LIB/LIBGUI.S.SYSBAR.txt index d15a627c..866c1a69 100644 --- a/LIB/LIBGUI.S.SYSBAR.txt +++ b/LIB/LIBGUI.S.SYSBAR.txt @@ -1,20 +1,11 @@ NEW AUTO 3,1 *-------------------------------------- -SYSBUT.Enter ldy #S.MOUSE.X1 - lda (ZPPtr1),y - cmp RECT.SysBut+S.RECT.X2 - iny - - lda (ZPPtr1),y - sbc RECT.SysBut+S.RECT.X2+1 - bcs .8 - - sec +SYSBUT.Enter sec ror WND.SYSBAR.bSysBut jsr GetCBBuf - bcs .9 + bcs .99 jsr SYSBAR.ShowSysBut @@ -26,11 +17,17 @@ SYSBUT.Enter ldy #S.MOUSE.X1 >PUSHW L.RECT.SysBut Parent RECT >PUSHW L.MENU.Sys jsr MENU.New - bcs .9 +.99 bcs .9 sta hSysMenu >PUSHA hSysMenu + >PUSHBI 4 + >PUSHBI S.MITEM.pMENU + >PUSHW L.MENU.Sys.Programs + jsr MENU.SetMItemProp + + >PUSHB hSysMenu >PUSHBI 6 >PUSHBI S.MITEM.pMENU >PUSHW L.MENU.Sys.Settings diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index 9e88aa83..77445029 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -910,7 +910,7 @@ WND.PaintMBar jsr CB.ClearCache lda (ZPWNDPtr),y ply - jsr MENU.MBarInit + jsr MBAR.Init .1 lda (ZPMENUPtr) beq .8 @@ -929,14 +929,14 @@ WND.PaintMBar jsr CB.ClearCache lda hSYSFONB sta CB.CACHE+S.CB.hFont - ldy #S.MBAR.XT + ldy #S.MBITEM.XT lda (ZPMENUPtr),y clc ldy #S.OBJ.X1 adc (ZPWNDPtr),y sta CB.CACHE+S.CB.X1 - ldy #S.MBAR.XT+1 + ldy #S.MBITEM.XT+1 lda (ZPMENUPtr),y ldy #S.OBJ.X1+1 adc (ZPWNDPtr),y @@ -952,7 +952,7 @@ WND.PaintMBar jsr CB.ClearCache adc #0 sta CB.CACHE+S.CB.Y1+1 - lda #S.MBAR.TEXT + lda #S.MBITEM.TEXT clc adc ZPMENUPtr sta CB.CACHE+S.CB.TxtPtr diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index fc8c44ec..c15ddd79 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -155,6 +155,7 @@ L.RECT.SysBut .DA RECT.SysBut L.RECT.SysWNDs .DA RECT.SysWNDs L.RECT.SysClk .DA RECT.SysClk L.MENU.Sys .DA MENU.Sys +L.MENU.Sys.Programs .DA MENU.Sys.Programs L.MENU.Sys.Settings .DA MENU.Sys.Settings *-------------------------------------- L.BMs .EQ *-2 @@ -169,6 +170,7 @@ L.BM.Down .DA BM.Down *-------------------------------------- L.CUR.SaveBuf .DA CUR.SaveBuf L.Cursors .DA CUR.Arrow + .DA CUR.Move .DA CUR.ResizeX .DA CUR.ResizeY .DA CUR.ResizeXY1 @@ -362,6 +364,7 @@ OBJ.SetX2Y2 >STYA ZPPtr1 .INB usr/src/lib/libgui.s.cur .INB usr/src/lib/libgui.s.draw .INB usr/src/lib/libgui.s.fon + .INB usr/src/lib/libgui.s.mbar .INB usr/src/lib/libgui.s.menu .INB usr/src/lib/libgui.s.mou .INB usr/src/lib/libgui.s.pat @@ -422,6 +425,7 @@ OBJ.Cache .BS S.OBJ MENU.Stack.Top .BS 1 MENU.Stack .BS MENU.MAX *-------------------------------------- +WND.Stack.Idx .BS 1 WND.Stack.Top .BS 1 WND.Stack .BS WND.MAX *-------------------------------------- @@ -503,6 +507,29 @@ MENU.Sys .77 .AZ "Ctrl-R" .8 .DA #0 *-------------------------------------- +MENU.Sys.Programs +.1 .DA #.2-* next + .DA #S.MITEM.F.ITEM F + .DA #0 S + .DA #42 ID + .DA BM.ID.APPLE pICON + .DA #0 + .DA #0 + .DA #0 KEYSTR + .AZ "GUITest1" + +.2 .DA #.3-* next + .DA #S.MITEM.F.ITEM F + .DA #0 S + .DA #44 ID + .DA BM.ID.APPLE pICON + .DA #0 + .DA #0 + .DA #0 KEYSTR + .AZ "GUITest2" + +.3 .DA #0 +*-------------------------------------- MENU.Sys.Settings .1 .DA #.2-* next .DA #S.MITEM.F.ITEM F