NEW
  AUTO 3,1
				.LIST OFF
				.OP	65C02
				.OR	$2000
				.TF root/tuitest
*--------------------------------------
				.INB inc/macros.i
				.INB inc/a2osx.i
				.INB inc/libtui.i
*--------------------------------------
				.DUMMY
				.OR ZPBIN
ZS.START
ZPPtr1			.BS 2
hSCRN			.BS 1
hTBOX1			.BS 1
hLBOX1			.BS 1
ZS.END			.ED
*--------------------------------------
*			File Header (16 Bytes)
*--------------------------------------
CS.START		cld
				jmp (.1,x)
				.DA #$61				6502,Level 1 (65c02)
				.DA #1					BIN Layout Version 1
				.DA #0					S.PS.F.EVENT
				.DA #0
				.DA CS.END-CS.START		Code Size (without Constants)
				.DA DS.END-DS.START		Data Segment Size
				.DA #64					Stack Size
				.DA #ZS.END-ZS.START	Zero Page Size
				.DA 0
*--------------------------------------
.1				.DA CS.INIT
				.DA CS.RUN
				.DA CS.DOEVENT
				.DA	CS.QUIT
L.LIBTUI		.DA LIBTUI
*--------------------------------------
L.SCRN.Title	.DA SCRN.Title
L.SCRN.Status	.DA SCRN.Status
L.CS.SCRN.fResize	.DA CS.SCRN.fResize
L.TBOX1			.DA TBOX1
L.TBOX1.Title	.DA TBOX1.Title
L.TBOX1.Status	.DA TBOX1.Status
L.LBOX1			.DA LBOX1
L.LBOX1.L		.DA LBOX1.L
				.DA 0
*--------------------------------------
CS.INIT			>LDYA L.LIBTUI
				>SYSCALL LoadLib
				bcs CS.INIT.RTS

				sta hLIBTUI

*				clc

CS.INIT.RTS		rts
*--------------------------------------
CS.RUN			lda #S.OBJ.F.bTITLE+S.OBJ.F.bSTATUS
				>LIBCALL hLIBTUI,LIBTUI.Init
				bcs CS.INIT.RTS

				sta hSCRN
				>PUSHA
				>PUSHBI S.OBJ.pTITLE
				>PUSHEA.G SCRN.Buf
				>LIBCALL hLIBTUI,LIBTUI.SetProp

				>PUSHB hSCRN
				>PUSHBI S.OBJ.pSTATUS
				>PUSHW L.SCRN.Status
				>LIBCALL hLIBTUI,LIBTUI.SetProp

				>PUSHB hSCRN
				>PUSHBI S.OBJ.fRESIZE
				>PUSHW L.CS.SCRN.fResize
				>LIBCALL hLIBTUI,LIBTUI.SetProp

				jsr CS.TBOX1.Init
				bcs CS.RUN.RTS

				jsr CS.LBOX1.Init
				bcs CS.RUN.RTS

				jsr CS.SCRN.fResize		Will Call SCRN.Draw
				
				lda hTBOX1
				>LIBCALL hLIBTUI,LIBTUI.Activate
*--------------------------------------
CS.RUN.LOOP		>SLEEP

				lda hSCRN
				>LIBCALL hLIBTUI,LIBTUI.GetEvent
				bcs .9

				tay
				beq CS.RUN.LOOP
				
				>PUSHB hSCRN
				tya
				>PUSHA			
				>LIBCALL hLIBTUI,LIBTUI.Dispatch
				bcc CS.RUN.LOOP
				
				

.9				pha
				lda hSCRN
				>LIBCALL hLIBTUI,LIBTUI.Close
				pla
				sec
				
CS.RUN.RTS		rts
*--------------------------------------
CS.TBOX1.Init	>PUSHB hSCRN
				>PUSHW L.TBOX1
				>LIBCALL hLIBTUI,LIBTUI.New
				bcs .9

				sta hTBOX1

				>PUSHA
				>PUSHBI S.OBJ.pTITLE
				>PUSHW L.TBOX1.Title
				>LIBCALL hLIBTUI,LIBTUI.SetProp

				>PUSHB hTBOX1
				>PUSHBI S.OBJ.pSTATUS
				>PUSHW L.TBOX1.Status
				>LIBCALL hLIBTUI,LIBTUI.SetProp

.9				rts
*--------------------------------------
CS.LBOX1.Init	>PUSHB hSCRN
				>PUSHW L.LBOX1
				>LIBCALL hLIBTUI,LIBTUI.New
				bcs .9

				sta hLBOX1

				>PUSHA
				>PUSHBI S.LBOX.pL
				>PUSHW L.LBOX1.L
				>LIBCALL hLIBTUI,LIBTUI.SetProp

.9				rts
*--------------------------------------
CS.DOEVENT		sec						do not discard TIMER event
				rts
*--------------------------------------
CS.QUIT			lda hLIBTUI
				beq .8

				>SYSCALL UnloadLib

.8				clc
				rts
*--------------------------------------
CS.SCRN.fResize	lda hSCRN
				>SYSCALL GetMemPtr
				>STYA ZPPtr1

				>PUSHEA.G SCRN.Buf
				>PUSHW L.SCRN.Title

				ldy #S.OBJ.X1

.1				lda (ZPPtr1),y
				>PUSHA
				iny
				cpy #S.OBJ.InnerH+1
				bne .1

				>PUSHBI 10
				>SYSCALL sprintf

				lda hSCRN
				>LIBCALL hLIBTUI,LIBTUI.Draw
				rts
*--------------------------------------
CS.END
*--------------------------------------
LIBTUI			.AZ "libtui"
hLIBTUI			.BS 1
*--------------------------------------
SCRN.Title		.AZ "Window: X1=%d,Y1=%d, W=%d,H=%d, X2=%d,Y2=%d, iX=%d,iY=%d, iW=%d,iH=%d"
SCRN.Status		.AZ "Status bar..."
*--------------------------------------
TBOX1			.DA #S.OBJ.T.TBOX		T
				.DA #S.OBJ.F.bHBorder+S.OBJ.F.bVBorder+S.OBJ.F.bTITLE+S.OBJ.F.bSTATUS
				.BS 2
				.DA #4					X1
				.DA #4					Y1
				.DA #40					W
				.DA #15					H
TBOX1.Title		.AZ "Text Box Title"
TBOX1.Status	.AZ "Text Box Status"
*--------------------------------------
LBOX1			.DA #S.OBJ.T.LBOX		T
				.DA #S.OBJ.F.bHBorder+S.OBJ.F.bVBorder
				.BS 2
				.DA #50					X1
				.DA #4					Y1
				.DA #20					W
				.DA #10					H
LBOX1.L			.AZ "Item 1"
				.AZ "Item 2"
				.AZ "Item 3"
				.AZ "Item 4"
				.AZ "Item 5"
				.AZ "Item 6 very long line"
				.AZ "Item 7"
				.AZ "Item 8"
				.AZ "Item 9"
				.AZ "Item 10"
				.AZ "Item 11"
				.AZ "Item 12"
				.AZ "Item 13"
				.AZ "Item 14 last one"
				.DA #0
*--------------------------------------
				.DUMMY
				.OR 0
DS.START
SCRN.Buf		.BS 80
DS.END			.ED
*--------------------------------------
MAN
SAVE root/tuitest.s
ASM
