gui: added dialog signals DIALOG_SIGNAL_MKCONTENT and DIALOG_SIGNAL_RMCONTENT.
This commit is contained in:
@@ -25,7 +25,9 @@
|
|||||||
; signals
|
; signals
|
||||||
.equ DIALOG_SIGNAL_TOGUI = WIDGET_SIGNAL_NEXTFREE+0
|
.equ DIALOG_SIGNAL_TOGUI = WIDGET_SIGNAL_NEXTFREE+0
|
||||||
.equ DIALOG_SIGNAL_FROMGUI = WIDGET_SIGNAL_NEXTFREE+1
|
.equ DIALOG_SIGNAL_FROMGUI = WIDGET_SIGNAL_NEXTFREE+1
|
||||||
.equ DIALOG_SIGNAL_NEXT = WIDGET_SIGNAL_NEXTFREE+2
|
.equ DIALOG_SIGNAL_MKCONTENT = WIDGET_SIGNAL_NEXTFREE+2
|
||||||
|
.equ DIALOG_SIGNAL_RMCONTENT = WIDGET_SIGNAL_NEXTFREE+3
|
||||||
|
.equ DIALOG_SIGNAL_NEXT = WIDGET_SIGNAL_NEXTFREE+4
|
||||||
|
|
||||||
; selectors
|
; selectors
|
||||||
.equ DIALOG_SEL_OKBUTTON = 1
|
.equ DIALOG_SEL_OKBUTTON = 1
|
||||||
@@ -127,6 +129,34 @@ Dialog_fromGui:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine Dialog_MkContent @global
|
||||||
|
;
|
||||||
|
; @param Y pointer to dialog
|
||||||
|
; @clobbers any, !Y
|
||||||
|
|
||||||
|
Dialog_MkContent:
|
||||||
|
ldi r16, DIALOG_SIGNAL_MKCONTENT
|
||||||
|
clr r17
|
||||||
|
bigjmp OBJ_HandleSignal
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine Dialog_RmContent @global
|
||||||
|
;
|
||||||
|
; @param Y pointer to dialog
|
||||||
|
; @clobbers any, !Y
|
||||||
|
|
||||||
|
Dialog_RmContent:
|
||||||
|
ldi r16, DIALOG_SIGNAL_RMCONTENT
|
||||||
|
clr r17
|
||||||
|
bigjmp OBJ_HandleSignal
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ***************************************************************************
|
; ***************************************************************************
|
||||||
@@ -181,15 +211,13 @@ Dialog_OnShow:
|
|||||||
bigcall MainWindow_CreateContentWidget
|
bigcall MainWindow_CreateContentWidget
|
||||||
brcc Dialog_OnShow_ret
|
brcc Dialog_OnShow_ret
|
||||||
|
|
||||||
bigcall CDialog_CreateContent
|
rcall Dialog_MkContent
|
||||||
brcc Dialog_OnShow_ret
|
|
||||||
|
|
||||||
ldd r16, Y+OBJECT_OFFS_OPTS
|
ldd r16, Y+OBJECT_OFFS_OPTS
|
||||||
sbrs r16, DIALOG_OPTS_STDBTNS_BIT
|
sbrs r16, DIALOG_OPTS_STDBTNS_BIT
|
||||||
rjmp Dialog_OnShow_toGui
|
rjmp Dialog_OnShow_toGui
|
||||||
bigcall Dialog_AddDefaultButtons ; (any, !Y)
|
bigcall Dialog_AddDefaultButtons ; (any, !Y)
|
||||||
brcc Dialog_OnShow_ret
|
brcc Dialog_OnShow_ret
|
||||||
|
|
||||||
Dialog_OnShow_toGui:
|
Dialog_OnShow_toGui:
|
||||||
rcall Dialog_toGui
|
rcall Dialog_toGui
|
||||||
|
|
||||||
@@ -218,19 +246,8 @@ Dialog_OnHide:
|
|||||||
|
|
||||||
; read data into settings struct
|
; read data into settings struct
|
||||||
rcall Dialog_fromGui
|
rcall Dialog_fromGui
|
||||||
|
|
||||||
; prepare destruction of content
|
; prepare destruction of content
|
||||||
bigcall MainWindow_GetContentWidget
|
rcall Dialog_RmContent
|
||||||
brcc Dialog_OnHide_ret
|
|
||||||
push yl
|
|
||||||
push yh
|
|
||||||
mov yl, r18
|
|
||||||
mov yh, r19
|
|
||||||
ldd r16, Y+OBJECT_OFFS_FLAGS
|
|
||||||
sbr r16, (1<<OBJECT_FLAGS_DESTROY_BIT)
|
|
||||||
std Y+OBJECT_OFFS_FLAGS, r16
|
|
||||||
pop yh
|
|
||||||
pop yl
|
|
||||||
|
|
||||||
; clr VISIBLE flag
|
; clr VISIBLE flag
|
||||||
ldd r16, Y+OBJECT_OFFS_FLAGS
|
ldd r16, Y+OBJECT_OFFS_FLAGS
|
||||||
@@ -270,6 +287,32 @@ Dialog_OnToGui:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine Dialog_OnRmContent @global
|
||||||
|
;
|
||||||
|
; @param Y pointer to dialog
|
||||||
|
; @clobbers any, !Y
|
||||||
|
|
||||||
|
Dialog_OnRmContent:
|
||||||
|
; prepare destruction of content
|
||||||
|
bigcall MainWindow_GetContentWidget
|
||||||
|
brcc Dialog_OnHide_ret
|
||||||
|
push yl
|
||||||
|
push yh
|
||||||
|
mov yl, r18
|
||||||
|
mov yh, r19
|
||||||
|
ldd r16, Y+OBJECT_OFFS_FLAGS
|
||||||
|
sbr r16, (1<<OBJECT_FLAGS_DESTROY_BIT)
|
||||||
|
std Y+OBJECT_OFFS_FLAGS, r16
|
||||||
|
pop yh
|
||||||
|
pop yl
|
||||||
|
sec
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ***************************************************************************
|
; ***************************************************************************
|
||||||
; data in FLASH
|
; data in FLASH
|
||||||
|
|
||||||
@@ -344,6 +387,7 @@ Dialog_DefaultSignalmap:
|
|||||||
.db 0, WIDGET_SIGNAL_HIDE, LOW(Dialog_OnHide), HIGH(Dialog_OnHide)
|
.db 0, WIDGET_SIGNAL_HIDE, LOW(Dialog_OnHide), HIGH(Dialog_OnHide)
|
||||||
.db 0, DIALOG_SIGNAL_FROMGUI, LOW(Dialog_OnFromGui), HIGH(Dialog_OnFromGui)
|
.db 0, DIALOG_SIGNAL_FROMGUI, LOW(Dialog_OnFromGui), HIGH(Dialog_OnFromGui)
|
||||||
.db 0, DIALOG_SIGNAL_TOGUI, LOW(Dialog_OnToGui), HIGH(Dialog_OnToGui)
|
.db 0, DIALOG_SIGNAL_TOGUI, LOW(Dialog_OnToGui), HIGH(Dialog_OnToGui)
|
||||||
|
.db 0, DIALOG_SIGNAL_RMCONTENT, LOW(Dialog_OnRmContent), HIGH(Dialog_OnRmContent)
|
||||||
; end of table
|
; end of table
|
||||||
.db 0, 0, 0, 0
|
.db 0, 0, 0, 0
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user