gui: added dialog signals DIALOG_SIGNAL_MKCONTENT and DIALOG_SIGNAL_RMCONTENT.
This commit is contained in:
@@ -25,7 +25,9 @@
|
||||
; signals
|
||||
.equ DIALOG_SIGNAL_TOGUI = WIDGET_SIGNAL_NEXTFREE+0
|
||||
.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
|
||||
.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
|
||||
brcc Dialog_OnShow_ret
|
||||
|
||||
bigcall CDialog_CreateContent
|
||||
brcc Dialog_OnShow_ret
|
||||
rcall Dialog_MkContent
|
||||
|
||||
ldd r16, Y+OBJECT_OFFS_OPTS
|
||||
sbrs r16, DIALOG_OPTS_STDBTNS_BIT
|
||||
rjmp Dialog_OnShow_toGui
|
||||
bigcall Dialog_AddDefaultButtons ; (any, !Y)
|
||||
brcc Dialog_OnShow_ret
|
||||
|
||||
Dialog_OnShow_toGui:
|
||||
rcall Dialog_toGui
|
||||
|
||||
@@ -218,19 +246,8 @@ Dialog_OnHide:
|
||||
|
||||
; read data into settings struct
|
||||
rcall Dialog_fromGui
|
||||
|
||||
; 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
|
||||
rcall Dialog_RmContent
|
||||
|
||||
; clr VISIBLE flag
|
||||
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
|
||||
|
||||
@@ -344,6 +387,7 @@ Dialog_DefaultSignalmap:
|
||||
.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_TOGUI, LOW(Dialog_OnToGui), HIGH(Dialog_OnToGui)
|
||||
.db 0, DIALOG_SIGNAL_RMCONTENT, LOW(Dialog_OnRmContent), HIGH(Dialog_OnRmContent)
|
||||
; end of table
|
||||
.db 0, 0, 0, 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user