gui2: basic start works!
This commit is contained in:
@@ -199,8 +199,8 @@ onSystemStart:
|
|||||||
; Called on every message received
|
; Called on every message received
|
||||||
|
|
||||||
onMessageReceived:
|
onMessageReceived:
|
||||||
; ldi zl, LOW(appC03*2)
|
; lds yl, guiApp
|
||||||
; ldi zh, HIGH(appC03*2)
|
; lds yh, guiApp+1
|
||||||
; bigcall GuiApp_MsgReceived
|
; bigcall GuiApp_MsgReceived
|
||||||
clc
|
clc
|
||||||
ret
|
ret
|
||||||
@@ -214,9 +214,9 @@ onMessageReceived:
|
|||||||
; Called every 100ms. Add your routine calls here. No arguments, no results.
|
; Called every 100ms. Add your routine calls here. No arguments, no results.
|
||||||
|
|
||||||
onEvery100ms:
|
onEvery100ms:
|
||||||
; ldi zl, LOW(appC03*2)
|
lds yl, guiApp
|
||||||
; ldi zh, HIGH(appC03*2)
|
lds yh, guiApp+1
|
||||||
; bigcall GuiApp_Every100ms
|
bigcall GuiApp_Every100ms
|
||||||
ret
|
ret
|
||||||
|
|
||||||
onEveryMinute:
|
onEveryMinute:
|
||||||
@@ -243,10 +243,19 @@ onEveryLoop:
|
|||||||
|
|
||||||
|
|
||||||
test:
|
test:
|
||||||
; ldi zl, LOW(appC03*2)
|
clr r16
|
||||||
; ldi zh, HIGH(appC03*2)
|
sts guiApp, r16
|
||||||
; bigcall GuiApp_Init
|
sts guiApp+1, r16
|
||||||
|
|
||||||
|
ldi r16, 0
|
||||||
|
ldi r17, 0
|
||||||
|
bigcall GuiApp_new
|
||||||
|
brcs test_ok
|
||||||
|
bigjmp DEBUG1
|
||||||
|
|
||||||
|
test_ok:
|
||||||
|
sts guiApp, yl
|
||||||
|
sts guiApp+1, yh
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
@@ -311,9 +320,12 @@ test:
|
|||||||
|
|
||||||
.dseg
|
.dseg
|
||||||
|
|
||||||
|
guiApp: .byte 2
|
||||||
|
|
||||||
|
|
||||||
heapStart:
|
heapStart:
|
||||||
|
|
||||||
.equ HEAP_START = heapStart
|
.equ HEAP_START = heapStart
|
||||||
.equ HEAP_SIZE = (SRAM_SIZE-STACK_SIZE)-HEAP_START
|
.equ HEAP_SIZE = (SRAM_SIZE-STACK_SIZE)-HEAP_START
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -106,6 +106,12 @@ GuiApp_Init:
|
|||||||
ldi r16, 0 ; opts_lo
|
ldi r16, 0 ; opts_lo
|
||||||
ldi r17, 0 ; opts_hi
|
ldi r17, 0 ; opts_hi
|
||||||
bigcall RootWindow_new
|
bigcall RootWindow_new
|
||||||
|
|
||||||
|
; always visible
|
||||||
|
ldd r16, Y+OBJECT_OFFS_FLAGS
|
||||||
|
sbr r16, (1<<WIDGET_FLAGS_VISIBLE_BIT)
|
||||||
|
std Y+OBJECT_OFFS_FLAGS, r16
|
||||||
|
|
||||||
mov xl, yl
|
mov xl, yl
|
||||||
mov xh, yh
|
mov xh, yh
|
||||||
pop yh
|
pop yh
|
||||||
@@ -115,6 +121,10 @@ GuiApp_Init:
|
|||||||
std Y+GUIAPP_OFFS_ROOTWINDOW_LO, xl
|
std Y+GUIAPP_OFFS_ROOTWINDOW_LO, xl
|
||||||
std Y+GUIAPP_OFFS_ROOTWINDOW_HI, xh
|
std Y+GUIAPP_OFFS_ROOTWINDOW_HI, xh
|
||||||
|
|
||||||
|
; debug
|
||||||
|
std Y+GUIAPP_OFFS_CURRENTWINDOW_LO, xl
|
||||||
|
std Y+GUIAPP_OFFS_CURRENTWINDOW_HI, xh
|
||||||
|
|
||||||
ldi r16, GUIAPP_GUITIMER
|
ldi r16, GUIAPP_GUITIMER
|
||||||
std Y+GUIAPP_OFFS_GUITIMER, r16
|
std Y+GUIAPP_OFFS_GUITIMER, r16
|
||||||
|
|
||||||
@@ -235,6 +245,7 @@ GuiApp_UngrabTouchEvents_ret:
|
|||||||
;
|
;
|
||||||
; @param Y address of object in SDRAM
|
; @param Y address of object in SDRAM
|
||||||
; @param CFLAG set if response is not a NULL pointer
|
; @param CFLAG set if response is not a NULL pointer
|
||||||
|
; @clobbers none
|
||||||
|
|
||||||
GuiApp_GetRootWindow:
|
GuiApp_GetRootWindow:
|
||||||
ldd r18, Y+GUIAPP_OFFS_ROOTWINDOW_LO
|
ldd r18, Y+GUIAPP_OFFS_ROOTWINDOW_LO
|
||||||
@@ -430,11 +441,8 @@ guiAppSendTimerEvents:
|
|||||||
guiAppCheckSendGuiEvents:
|
guiAppCheckSendGuiEvents:
|
||||||
push yl
|
push yl
|
||||||
push yh
|
push yh
|
||||||
ldd r16, Y+GUIAPP_OFFS_CURRENTWINDOW_LO
|
rcall GuiApp_GetCurrentWindow
|
||||||
ldd yh, Y+GUIAPP_OFFS_CURRENTWINDOW_HI
|
brcc guiAppCheckSendGuiEvents_done
|
||||||
mov yl, r16
|
|
||||||
or yl, yh
|
|
||||||
breq guiAppCheckSendGuiEvents_done
|
|
||||||
|
|
||||||
ldd r16, Y+GUIAPP_OFFS_GUITIMER
|
ldd r16, Y+GUIAPP_OFFS_GUITIMER
|
||||||
tst r16
|
tst r16
|
||||||
@@ -444,19 +452,23 @@ guiAppCheckSendGuiEvents:
|
|||||||
brne guiAppCheckSendGuiEvents_done
|
brne guiAppCheckSendGuiEvents_done
|
||||||
|
|
||||||
; timer elapsed, send layout events, draw events
|
; timer elapsed, send layout events, draw events
|
||||||
ldi r16, WIDGET_SIGNAL_LAYOUT
|
push yl
|
||||||
clr r17
|
push yh
|
||||||
ldi r20, (1<<WIDGET_FLAGS_VISIBLE_BIT) | (1<<WIDGET_FLAGS_LAYOUT_BIT)
|
mov yl, r18
|
||||||
bigcall OBJ_TreeHandleSignalIfFlagsSet ; (any, !Y)
|
mov yh, r19
|
||||||
|
ldi r16, WIDGET_SIGNAL_LAYOUT
|
||||||
ldi r16, WIDGET_SIGNAL_DRAW
|
clr r17
|
||||||
clr r17
|
ldi r20, (1<<WIDGET_FLAGS_VISIBLE_BIT) | (1<<WIDGET_FLAGS_LAYOUT_BIT)
|
||||||
ldi r20, (1<<WIDGET_FLAGS_VISIBLE_BIT) | (1<<WIDGET_FLAGS_DIRTY_BIT)
|
bigcall OBJ_TreeHandleSignalIfFlagsSet ; (any, !Y)
|
||||||
bigcall OBJ_TreeHandleSignalIfFlagsSet ; (any, !Y)
|
|
||||||
|
ldi r16, WIDGET_SIGNAL_DRAW
|
||||||
|
clr r17
|
||||||
|
ldi r20, (1<<WIDGET_FLAGS_VISIBLE_BIT) | (1<<WIDGET_FLAGS_DIRTY_BIT)
|
||||||
|
bigcall OBJ_TreeHandleSignalIfFlagsSet ; (any, !Y)
|
||||||
|
pop yh
|
||||||
|
pop yl
|
||||||
ldi r16, GUIAPP_GUITIMER
|
ldi r16, GUIAPP_GUITIMER
|
||||||
std Y+GUIAPP_OFFS_GUITIMER, r16
|
std Y+GUIAPP_OFFS_GUITIMER, r16
|
||||||
|
|
||||||
guiAppCheckSendGuiEvents_done:
|
guiAppCheckSendGuiEvents_done:
|
||||||
pop yh
|
pop yh
|
||||||
pop yl
|
pop yl
|
||||||
@@ -488,11 +500,8 @@ guiAppSendTouchEvents:
|
|||||||
bigcall OBJ_HandleSignal
|
bigcall OBJ_HandleSignal
|
||||||
rjmp guiAppSendTouchEvents_done
|
rjmp guiAppSendTouchEvents_done
|
||||||
guiAppSendTouchEvents_sendToAll:
|
guiAppSendTouchEvents_sendToAll:
|
||||||
ldd r18, Y+GUIAPP_OFFS_CURRENTWINDOW_LO
|
rcall GuiApp_GetCurrentWindow ; r19:r18=current window (none)
|
||||||
ldd r19, Y+GUIAPP_OFFS_CURRENTWINDOW_HI
|
brcc guiAppSendTouchEvents_done
|
||||||
mov r16, r18
|
|
||||||
or r16, r19
|
|
||||||
breq guiAppSendTouchEvents_done
|
|
||||||
; send touch signal
|
; send touch signal
|
||||||
mov yl, r18
|
mov yl, r18
|
||||||
mov yh, r19
|
mov yh, r19
|
||||||
@@ -550,12 +559,9 @@ guiAppSendRootMsgEvents:
|
|||||||
guiAppSendRootEventsIfOptsLo:
|
guiAppSendRootEventsIfOptsLo:
|
||||||
push yl
|
push yl
|
||||||
push yh
|
push yh
|
||||||
ldd r18, Y+GUIAPP_OFFS_ROOTWINDOW_LO
|
rcall GuiApp_GetRootWindow ; r19:r18=root window (none)
|
||||||
ldd r19, Y+GUIAPP_OFFS_ROOTWINDOW_HI
|
brcc guiAppSendRootEventsIfOptsLo_done
|
||||||
mov r22, r18
|
; send signal to root window and all below
|
||||||
or r22, r21
|
|
||||||
breq guiAppSendRootEventsIfOptsLo_done
|
|
||||||
; send touch signal
|
|
||||||
mov yl, r18
|
mov yl, r18
|
||||||
mov yh, r19
|
mov yh, r19
|
||||||
bigcall OBJ_TreeHandleSignalIfMatchingOptsLo
|
bigcall OBJ_TreeHandleSignalIfMatchingOptsLo
|
||||||
@@ -605,6 +611,7 @@ GuiApp_DefaultSignalmap:
|
|||||||
; header
|
; header
|
||||||
.dw Object_DefaultSignalmap ; next table to use
|
.dw Object_DefaultSignalmap ; next table to use
|
||||||
; entries
|
; entries
|
||||||
|
.db 0, OBJECT_SIGNAL_TIMER, LOW(GuiApp_OnTimer), HIGH(GuiApp_OnTimer)
|
||||||
.db 0, OBJECT_SIGNAL_DESTROY, LOW(GuiApp_OnDestroy), HIGH(GuiApp_OnDestroy)
|
.db 0, OBJECT_SIGNAL_DESTROY, LOW(GuiApp_OnDestroy), HIGH(GuiApp_OnDestroy)
|
||||||
.db 0, 0, 0, 0 ; end of table
|
.db 0, 0, 0, 0 ; end of table
|
||||||
|
|
||||||
|
|||||||
@@ -162,14 +162,16 @@ RootWindow_DefaultSignalmap:
|
|||||||
; header
|
; header
|
||||||
.dw Widget_DefaultSignalmap ; next table to use
|
.dw Widget_DefaultSignalmap ; next table to use
|
||||||
; entries
|
; entries
|
||||||
.db 0, WIDGET_SIGNAL_DRAW, LOW(Widget_OnDrawNop), HIGH(Widget_OnDrawNop)
|
; .db 0, WIDGET_SIGNAL_DRAW, LOW(Widget_OnDrawNop), HIGH(Widget_OnDrawNop)
|
||||||
|
.db 0, WIDGET_SIGNAL_DRAW, LOW(Widget_OnDraw), HIGH(Widget_OnDraw)
|
||||||
.db 0, WIDGET_SIGNAL_LAYOUT, LOW(RootWindow_OnLayout), HIGH(RootWindow_OnLayout)
|
.db 0, WIDGET_SIGNAL_LAYOUT, LOW(RootWindow_OnLayout), HIGH(RootWindow_OnLayout)
|
||||||
.db 0, 0, 0, 0 ; end of table
|
.db 0, 0, 0, 0 ; end of table
|
||||||
|
|
||||||
|
|
||||||
RootWindow_DefaultStyle:
|
RootWindow_DefaultStyle:
|
||||||
.dw DISPLAY_COLOR_BLACK ; frontCol_norm
|
.dw DISPLAY_COLOR_BLACK ; frontCol_norm
|
||||||
.dw DISPLAY_COLOR_LIGHTGREY ; backCol_norm
|
; .dw DISPLAY_COLOR_LIGHTGREY ; backCol_norm
|
||||||
|
.dw DISPLAY_COLOR_YELLOW ; backCol_norm
|
||||||
.dw DISPLAY_COLOR_BLACK ; borderCol_norm
|
.dw DISPLAY_COLOR_BLACK ; borderCol_norm
|
||||||
.dw DISPLAY_COLOR_WHITE ; shadowCol_norm
|
.dw DISPLAY_COLOR_WHITE ; shadowCol_norm
|
||||||
|
|
||||||
|
|||||||
@@ -33,20 +33,20 @@
|
|||||||
|
|
||||||
; widget style object
|
; widget style object
|
||||||
.equ WIDGET_STYLE_OFFS_FRONTCOL_NORM = 0
|
.equ WIDGET_STYLE_OFFS_FRONTCOL_NORM = 0
|
||||||
.equ WIDGET_STYLE_OFFS_BACKCOL_NORM = 1
|
.equ WIDGET_STYLE_OFFS_BACKCOL_NORM = 2
|
||||||
.equ WIDGET_STYLE_OFFS_BORDERCOL_NORM = 2
|
.equ WIDGET_STYLE_OFFS_BORDERCOL_NORM = 4
|
||||||
.equ WIDGET_STYLE_OFFS_SHADOWCOL_NORM = 3
|
.equ WIDGET_STYLE_OFFS_SHADOWCOL_NORM = 6
|
||||||
.equ WIDGET_STYLE_OFFS_FRONTCOL_ACTIVATED = 4
|
.equ WIDGET_STYLE_OFFS_FRONTCOL_ACTIVATED = 8
|
||||||
.equ WIDGET_STYLE_OFFS_BACKCOL_ACTIVATED = 5
|
.equ WIDGET_STYLE_OFFS_BACKCOL_ACTIVATED = 10
|
||||||
.equ WIDGET_STYLE_OFFS_BORDERCOL_ACTIVATED = 6
|
.equ WIDGET_STYLE_OFFS_BORDERCOL_ACTIVATED = 12
|
||||||
.equ WIDGET_STYLE_OFFS_SHADOWCOL_ACTIVATED = 7
|
.equ WIDGET_STYLE_OFFS_SHADOWCOL_ACTIVATED = 14
|
||||||
.equ WIDGET_STYLE_OFFS_OUTERBORDERSIZE = 8
|
.equ WIDGET_STYLE_OFFS_OUTERBORDERSIZE = 16
|
||||||
.equ WIDGET_STYLE_OFFS_SPACING = 9
|
.equ WIDGET_STYLE_OFFS_SPACING = 17
|
||||||
.equ WIDGET_STYLE_OFFS_FONT_LO = 10
|
.equ WIDGET_STYLE_OFFS_FONT_LO = 18
|
||||||
.equ WIDGET_STYLE_OFFS_FONT_HI = 11
|
.equ WIDGET_STYLE_OFFS_FONT_HI = 19
|
||||||
.equ WIDGET_STYLE_OFFS_CHARWIDTH = 12
|
.equ WIDGET_STYLE_OFFS_CHARWIDTH = 20
|
||||||
.equ WIDGET_STYLE_OFFS_CHARHEIGHT = 13
|
.equ WIDGET_STYLE_OFFS_CHARHEIGHT = 21
|
||||||
.equ WIDGET_STYLE_SIZE = 14
|
.equ WIDGET_STYLE_SIZE = 22
|
||||||
|
|
||||||
; widget opts_lo (bits 7 and 6 used by OBJECT_OPTSLO)
|
; widget opts_lo (bits 7 and 6 used by OBJECT_OPTSLO)
|
||||||
.equ WIDGET_OPTSLO_INPUT_BIT = 5 ; TOUCH, KEY
|
.equ WIDGET_OPTSLO_INPUT_BIT = 5 ; TOUCH, KEY
|
||||||
|
|||||||
Reference in New Issue
Block a user