diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 3bbc1cda..c6659d5f 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 d0ca3952..56a39f78 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -146,25 +146,25 @@ S.MBAR.X2 .EQ 6 S.MBAR.MENU .EQ 8 S.MBAR.TEXT .EQ 10 *-------------------------------------- -S.MENU.DEFS .EQ S.OBJ +S.MENU.MITEMS .EQ S.OBJ S.MENU.hSAVEBUF .EQ S.OBJ+2 * S.MENU .EQ S.OBJ+4 *-------------------------------------- S.MITEM.NEXT .EQ 0 S.MITEM.F .EQ 1 -S.MITEM.F.SEP .EQ 1 -S.MITEM.F.ITEM .EQ 2 -S.MITEM.F.SUBMENU .EQ 3 +S.MITEM.F.SEP .EQ 2 +S.MITEM.F.ITEM .EQ 4 +S.MITEM.F.SUBMENU .EQ 6 S.MITEM.S .EQ 2 S.MITEM.S.CHECKED .EQ %01000000 S.MITEM.S.DISABLED .EQ %10000000 S.MITEM.pICON .EQ 3 S.MITEM.pMENU .EQ 5 S.MITEM.KEYMOD .EQ 7 -S.MITEM.KEYMOD.CTRL .EQ %10000000 -S.MITEM.KEYMOD.OA .EQ %01000000 -S.MITEM.KEYMOD.CA .EQ %00100000 +S.MITEM.KEYMOD.CA .EQ 2 +S.MITEM.KEYMOD.OA .EQ 4 +S.MITEM.KEYMOD.CTRL .EQ 8 S.MITEM.KEY .EQ 8 S.MITEM.ID .EQ 9 diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index 01b9f2d1..f6c25eac 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -96,7 +96,6 @@ MENU.New >LDYAI S.MENU bcs .9 >STYA ZPMENUPtr -* stx lda #S.OBJ.T.MENU sta (ZPMENUPtr) S.OBJ.T @@ -110,13 +109,11 @@ MENU.New >LDYAI S.MENU bne .1 >PULLA - ldy #S.OBJ.S.MENU.DEFS + ldy #S.MENU.MITEMS sta (ZPMENUPtr),y - sta ZPPtr1 >PULLA iny sta (ZPMENUPtr),y - sta ZPPtr1+1 >PULLA ldy #S.OBJ.Y1 @@ -127,30 +124,292 @@ MENU.New >LDYAI S.MENU >PULLA ldy #S.OBJ.X1 - and PREFS.BESTVIEWEDX sta (ZPMENUPtr),y >PULLA iny sta (ZPMENUPtr),y - lda #2 1px Border - sta DX - sta DY - stz DX+1 - stz DY+1 + txa hMenu -.2 lda (ZPPtr1) - - -.8 clc +* clc rts .9 >POP 6 - rts +MENU.New.RTS rts *-------------------------------------- -MENU.Paint -MENU.Close +MENU.Show >SYSCALL2 GetMemPtr + >STYA ZPMENUPtr + + jsr GetCBBuf + bcs MENU.New.RTS + >DEBUG + ldy #S.MENU.MITEMS + lda (ZPMENUPtr),y + sta ZPPtr1 + iny + lda (ZPMENUPtr),y + sta ZPPtr1+1 + +* |Icon ChkMrk "Menu Item" KEYMOD1-KEYMOD2-KEY > | + + stz IY Icon Margin W + + stz IE Max Text W + stz IE+1 + + stz INE Max Mod-Key W + + lda #12 2px Borders+5 LMARGIN (Checked) +5 RMARGIN (SubMenu) + sta DX + stz DX+1 + + lda #2 2px Borders + sta DY Menu H + stz DY+1 + +.1 lda (ZPPtr1) + beq .3 + + jsr MENU.Show.GetW + + lda DY + clc + adc SYSFON.H + sta DY + bcc .2 + inc DY+1 + +.2 lda (ZPPtr1) + clc + adc ZPPtr1 + sta ZPPtr1 + bcc .1 + inc ZPPtr1+1 + bra .1 + +.3 lda DX + clc + adc IE Text W + sta DX + + lda DX+1 + adc IE+1 + sta DX+1 + + lda DX + clc + adc INE Mod-Key W + sta DX + bcc .4 + + inc DX+1 + +.4 ldy #S.OBJ.Y1 + lda (ZPMENUPtr),y + clc + adc DY + tax + + iny + lda (ZPMENUPtr),y + adc DY+1 + cpx WND.Screen+S.OBJ.H + sbc WND.Screen+S.OBJ.H+1 + bcc .5 + + dey + + lda (ZPMENUPtr),y +* sec + sbc DY + sta (ZPMENUPtr),y + + iny + + lda (ZPMENUPtr),y + sbc DY+1 + sta (ZPMENUPtr),y + +.5 jsr MENU.Show.Borders + +.8 >LDYA L.WND.Screen + jmp DrawCBPtrToYA1 + +MENU.Show.RTS rts +*-------------------------------------- +MENU.Show.GetW ldy #S.MITEM.F + lda (ZPPtr1),y + cmp #S.MITEM.F.SEP + beq MENU.Show.RTS + + ldy #S.MITEM.pICON + lda (ZPPtr1),y + iny + ora (ZPPtr1),y + beq .1 + + lda #16 + sta DX + +.1 lda #S.MITEM.TEXT + clc + adc ZPPtr1 + tay + lda ZPPtr1+1 + adc #0 + + ldx hSYSFON + jsr FON.GetTextSize + + lda CB.Cache+S.CB.SrcW + cmp IE + lda CB.Cache+S.CB.SrcW+1 + sbc IE+1 + bcc .2 + + lda CB.Cache+S.CB.SrcW + sta IE + lda CB.Cache+S.CB.SrcW+1 + sta IE+1 + +.2 ldx #0 + + ldy #S.MITEM.KEYMOD + lda (ZPPtr1),y + beq .6 + + bit #S.MITEM.KEYMOD.CTRL + beq .4 + +.3 lda KEY.Ctrl,x + sta KEYSTRING,x + inx + cpx #6 + bne .3 + + lda (ZPPtr1),y + +.4 bit #S.MITEM.KEYMOD.OA + beq .5 + + lda #1 + sta KEYSTRING,x + inx + lda #"-" + sta KEYSTRING,x + inx + + lda (ZPPtr1),y + +.5 bit #S.MITEM.KEYMOD.CA + beq .6 + + lda #2 + sta KEYSTRING,x + inx + lda #"-" + sta KEYSTRING,x + inx + +.6 iny + lda (ZPPtr1),y + beq .8 + + sta KEYSTRING,x + inx + stz KEYSTRING,x + + >LDYA L.KEYSTRING + ldx hSYSFON + jsr FON.GetTextSize + cpy INE + bcs .8 + + sty INE + +.8 rts +*-------------------------------------- +MENU.Show.Borders + lda #S.CB.CMD.HLINE TOP + jsr MENU.Show.Borders.H + + ldy #S.OBJ.X1 + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.Y1 + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.X2 + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.Y1 + jsr MENU.Show.Borders.Y + + lda #S.CB.CMD.VLINE LEFT + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.X1 + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.Y1 + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.X1 + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.Y2 + jsr MENU.Show.Borders.Y + + lda #S.CB.CMD.VLINE RIGHT + jsr MENU.Show.Borders.H + + ldy #S.OBJ.X2 + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.Y1 + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.X2 + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.Y2 + jsr MENU.Show.Borders.Y + + lda #S.CB.CMD.HLINE BOTTOM + jsr MENU.Show.Borders.H + + ldy #S.OBJ.X1 + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.Y2 + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.X2 + jsr MENU.Show.Borders.Y + + ldy #S.OBJ.Y2 + jsr MENU.Show.Borders.Y + + rts + +MENU.Show.Borders.H + jsr PutA2CBBuf + lda #S.CB.OP.SET + jsr PutA2CBBuf + lda #S.CB.M.MONO + jsr PutA2CBBuf + lda PREFS.BORDERCOLOR + jmp PutA2CBBuf + +MENU.Show.Borders.Y + lda (ZPMENUPtr),y + jsr PutA2CBBuf + iny + lda (ZPMENUPtr),y + jmp PutA2CBBuf +*-------------------------------------- +MENU.Destroy *-------------------------------------- MAN SAVE usr/src/lib/libgui.s.menu diff --git a/LIB/LIBGUI.S.SYSBAR.txt b/LIB/LIBGUI.S.SYSBAR.txt index 0f663986..69affab4 100644 --- a/LIB/LIBGUI.S.SYSBAR.txt +++ b/LIB/LIBGUI.S.SYSBAR.txt @@ -17,21 +17,17 @@ SYSBAR.Enter ldy #S.MOUSE.X1 bcs .9 jsr SYSBAR.Show.A2osX - - stz DX - stz DX+1 - - lda WND.SysBar+S.OBJ.Y1 - sta DY - lda WND.SysBar+S.OBJ.Y1+1 - sta DY+1 - -* >LDYA L.MENU.Sys -* jsr DRAW.YAMenuAtDXDY -* bcs .9 >LDYA L.WND.SysBar - jmp DrawCBPtrToYA1 + jsr DrawCBPtrToYA1 + + >PUSHW WND.SysBar+S.OBJ.X1 + >PUSHW WND.SysBar+S.OBJ.Y1 + >PUSHW L.MENU.Sys + jsr MENU.New + bcs .9 + + jsr MENU.Show .8 clc .9 rts @@ -298,25 +294,6 @@ DRAW.YATextAtDXDY rts *-------------------------------------- -DRAW.YAMenuAtDXDY - >STYA ZPPtr1 Src Menu - - stz IE popup W - stz IE+1 - stz D popup H - stz D+1 - -.1 stz INE item W - stz INE+1 - - lda (ZPPtr1) - beq .8 - - - -.8 clc - rts -*-------------------------------------- MAN SAVE usr/src/lib/libgui.s.sysbar LOAD usr/src/lib/libgui.s diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index d0a5b6af..dbfbaec1 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -348,9 +348,6 @@ WND.Show >SYSCALL2 GetMemPtr lda (ZPWNDPtr),y sbc #0 sta (ZPWNDPtr),y - - lda #0 - jsr PutA2CBBuf >LDYA L.WND.Desktop diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index 24590a06..2aa0b8c5 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -134,6 +134,7 @@ L.SYSX7 .DA SYSX7 L.SYSX7B .DA SYSX7B L.IOCTL .DA IOCTL L.DCB.GFX .DA DCB.GFX +L.KEYSTRING .DA KEYSTRING L.MouseClamp .DA MouseClamp L.CB.PTR .DA CB.PTR L.CB.Buf .DA CB.Buf @@ -388,6 +389,7 @@ IOCTL .BS S.IOCTL DCB.GFX .BS S.DCB.GFX MOUSEDATA .BS S.MOUSE *-------------------------------------- +KEYSTRING .BS 11 Ctrl-O-C-K\0 (11 max) MouseClamp .BS 8 *-------------------------------------- CB.PTR .DA #S.CB.CMD.BITBLT @@ -418,12 +420,14 @@ WND.SysBar.Time.X1 .BS 2 WND.SysBar.bA2osX .BS 1 WND.SysBar.2osX .AZ "2osX" *-------------------------------------- +KEY.Ctrl .AZ "Ctrl-" +*-------------------------------------- MENU.Sys .DA #.1-* next .DA #S.MITEM.F.ITEM F .DA #0 S .DA 0 pICON - .DA #0 KEYMOD - .DA #0 KEY + .DA #S.MITEM.KEYMOD.CA+S.MITEM.KEYMOD.OA+S.MITEM.KEYMOD.CTRL + .DA #"A" .DA #2 ID .AZ "About..." @@ -437,7 +441,7 @@ MENU.Sys .DA #.1-* next .DA 0 pMENU .AZ "Settings" -.9 .DA #0 +.3 .DA #0 *-------------------------------------- PREFS.BESTVIEWEDX .DA #$FC PREFS.SYSBARCOLOR .DA #C.WHITE