A2osX/LIB/LIBGUI.S.WND.txt

253 lines
4.2 KiB
Plaintext
Raw Normal View History

NEW
2019-07-30 08:57:25 +00:00
AUTO 3,1
*--------------------------------------
2019-01-08 16:29:26 +00:00
WND.Init >PUSHBI 0
>LDYA L.DEVNAME.GFX
2019-05-05 17:15:37 +00:00
>SYSCALL2 open
2018-05-16 06:02:57 +00:00
bcs .9
2020-09-02 15:47:23 +00:00
2020-09-06 12:24:04 +00:00
sta WND.Screen+S.OBJ.hPARENT
2020-09-02 15:47:23 +00:00
2019-01-09 16:42:20 +00:00
>LDYA L.DCB.GFX
>STYA IOCTL+S.IOCTL.BUFPTR
lda #S.IOCTL.STATCODE.GETDCB
sta IOCTL+S.IOCTL.STATCODE
2020-09-02 15:47:23 +00:00
2020-09-06 12:24:04 +00:00
>PUSHB WND.Screen+S.OBJ.hPARENT
2019-01-09 16:42:20 +00:00
>PUSHBI IOCTL.STATUS
2020-09-02 15:47:23 +00:00
>PUSHW L.IOCTL
2019-05-05 17:15:37 +00:00
>SYSCALL2 IOCTL
2020-09-06 12:24:04 +00:00
2019-10-03 06:25:27 +00:00
.9 rts
2019-01-10 16:26:58 +00:00
*--------------------------------------
WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W
2020-09-06 12:24:04 +00:00
>STYA WND.Screen+S.OBJ.W
2019-01-10 16:26:58 +00:00
>STYA WND.Desktop+S.OBJ.W
>STYA WND.SysBar+S.OBJ.W
2020-09-06 12:24:04 +00:00
2019-01-08 16:29:26 +00:00
lda SYSFON.H
2018-05-16 06:02:57 +00:00
clc
2019-01-14 07:11:50 +00:00
adc #6
2019-01-10 16:26:58 +00:00
sta WND.SysBar+S.OBJ.H
2020-09-06 12:24:04 +00:00
2019-01-09 06:58:19 +00:00
lda DCB.GFX+S.DCB.GFX.H
2020-09-06 12:24:04 +00:00
sta WND.Screen+S.OBJ.H
2018-05-16 06:02:57 +00:00
sec
2019-01-10 16:26:58 +00:00
sbc WND.SysBar+S.OBJ.H
sta WND.Desktop+S.OBJ.H
sta WND.SysBar+S.OBJ.X1
2020-09-06 12:24:04 +00:00
2019-01-10 16:26:58 +00:00
lda DCB.GFX+S.DCB.GFX.H+1
sta WND.SysBar+S.OBJ.H+1
2018-05-16 06:02:57 +00:00
sbc #0
2019-01-10 16:26:58 +00:00
sta WND.Desktop+S.OBJ.H+1
sta WND.SysBar+S.OBJ.X1+1
2020-09-02 15:47:23 +00:00
2020-09-06 12:24:04 +00:00
>LDYA L.WND.Screen
2019-01-10 16:26:58 +00:00
jsr OBJ.SetX2Y2
2020-09-02 15:47:23 +00:00
2019-01-10 16:26:58 +00:00
>LDYA L.WND.Desktop
2020-09-06 12:24:04 +00:00
>STYA WND.Screen.Childs
2019-01-10 16:26:58 +00:00
jsr OBJ.SetX2Y2
2020-09-02 15:47:23 +00:00
2019-01-10 16:26:58 +00:00
>LDYA L.WND.SysBar
2020-09-06 12:24:04 +00:00
>STYA WND.Screen.Childs+2
2020-09-05 13:38:04 +00:00
jsr OBJ.SetX2Y2
2020-09-02 15:47:23 +00:00
2018-05-16 06:02:57 +00:00
lda #CUR.T.ARROW
2019-01-10 16:26:58 +00:00
sta WND.Desktop+S.WND.hCUR
sta WND.SysBar+S.WND.hCUR
2020-09-02 15:47:23 +00:00
2019-01-10 16:26:58 +00:00
rts
2018-05-16 06:02:57 +00:00
*--------------------------------------
2020-09-06 12:24:04 +00:00
WND.Quit lda WND.Screen+S.OBJ.hPARENT
2019-01-08 16:29:26 +00:00
beq .8
2020-09-06 12:24:04 +00:00
2019-01-08 16:29:26 +00:00
pha
>PUSHBI IOCTL.CLOSE
2019-06-07 15:02:51 +00:00
>PUSHWZ
2019-01-08 16:29:26 +00:00
pla
2019-05-05 17:15:37 +00:00
>SYSCALL2 IOCTL
2019-01-08 16:29:26 +00:00
2019-10-03 06:25:27 +00:00
.8 clc
rts
*--------------------------------------
2020-09-08 15:31:41 +00:00
* F8, X116, Y116, W16, H16
*--------------------------------------
WND.Create >LDYAI S.WND
2019-05-05 17:15:37 +00:00
>SYSCALL2 getmem
2018-05-16 06:02:57 +00:00
bcs .9
2020-09-06 12:24:04 +00:00
2020-09-08 15:31:41 +00:00
>STYA ZPPtr1
lda #S.OBJ.T.WND
sta (ZPPtr1) S.OBJ.T
2020-09-06 12:24:04 +00:00
2018-05-16 06:02:57 +00:00
ldy #S.WND-1
2020-09-08 15:31:41 +00:00
lda #0
2020-09-06 12:24:04 +00:00
2020-09-08 15:31:41 +00:00
.1 sta (ZPPtr1),y
2018-05-16 06:02:57 +00:00
dey
2020-09-08 15:31:41 +00:00
bne .1
>PULLA
ldy #S.OBJ.H
sta (ZPPtr1),y
>PULLA
iny
sta (ZPPtr1),y
>PULLA
ldy #S.OBJ.W
sta (ZPPtr1),y
>PULLA
iny
sta (ZPPtr1),y
>PULLA
ldy #S.OBJ.Y1
sta (ZPPtr1),y
>PULLA
iny
sta (ZPPtr1),y
>PULLA
ldy #S.OBJ.X1
sta (ZPPtr1),y
>PULLA
iny
sta (ZPPtr1),y
>PULLA
ldy #S.OBJ.F
sta (ZPPtr1),y
ldy #S.PS.PID
lda (pPs),y
ldy #S.OBJ.hOWNER
sta (ZPPtr1),y
txa ID
* clc
rts
.9 >RET 9
*--------------------------------------
* hWND8, Prop8, Value16
*--------------------------------------
WND.SetProp ldy #3
lda (pStack),y hWND
>SYSCALL2 GetMemPtr
>STYA ZPPtr1
ldy #2
lda (pStack),y
tay
>PULLA
sta (ZPPtr1),y
iny
>PULLA
sta (ZPPtr1),y
>RET 2
*--------------------------------------
* hWND8, Prop8
*--------------------------------------
WND.GetProp >PULLA
pha
>PULLA
>SYSCALL2 GetMemPtr
>STYA ZPPtr1
ply
lda (ZPPtr1),y
pha
iny
lda (ZPPtr1),y
ply
rts
*--------------------------------------
* A = hWND
*--------------------------------------
WND.Show >SYSCALL2 GetMemPtr
>STYA ZPPtr1
jsr OBJ.SetX2Y2
jsr GetCBBuf
bcs .9
stz Counter X
stz Counter+1 Y
ldy #S.OBJ.F
lda (ZPPtr1),y
and #S.WND.F.RESIZE+S.WND.F.BORDER
beq .10
inc Counter 1 pixel L
inc Counter 1 pixel R
inc Counter+1 1 top
inc Counter+1 1 bottom
lda #S.CB.CMD.HLINE
jsr PutCBBuf
lda #S.CB.OP.SET
jsr PutCBBuf
lda #S.CB.M.MONO
jsr PutCBBuf
lda PREFS.BORDERCOLOR
jsr PutCBBuf
ldy #S.OBJ.X1
.1 lda (ZPPtr1),y
jsr PutCBBuf
iny
cpy #S.OBJ.Y2+2
bne .1
.10
2020-09-06 12:24:04 +00:00
2020-09-08 15:31:41 +00:00
lda #0
jsr PutCBBuf
>LDYA L.WND.Screen
jsr DrawToYA
lda hCBBuf
>SYSCALL FreeMem
clc
2019-10-03 06:25:27 +00:00
.9 rts
2018-05-16 06:02:57 +00:00
*--------------------------------------
2020-09-08 15:31:41 +00:00
WND.New clc
rts
*--------------------------------------
2018-05-16 06:02:57 +00:00
WND.Paint >STYA ZPPtr1
2018-05-16 06:02:57 +00:00
clc
rts
*--------------------------------------
2019-01-10 16:26:58 +00:00
WND.Close clc
rts
*--------------------------------------
MAN
2020-06-30 15:32:23 +00:00
SAVE usr/src/lib/libgui.s.wnd
LOAD usr/src/lib/libgui.s
ASM