From b927bfdab6041a7800a213c5590d28d208c5dd07 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Mon, 11 May 2026 11:52:23 +0200 Subject: [PATCH] gui: added dialog signals DIALOG_SIGNAL_MKCONTENT and DIALOG_SIGNAL_RMCONTENT. --- avr/modules/lcd2/gui/base/dialog.asm | 92 ++++++++++++++++++++-------- 1 file changed, 68 insertions(+), 24 deletions(-) diff --git a/avr/modules/lcd2/gui/base/dialog.asm b/avr/modules/lcd2/gui/base/dialog.asm index 0254673..da8269b 100644 --- a/avr/modules/lcd2/gui/base/dialog.asm +++ b/avr/modules/lcd2/gui/base/dialog.asm @@ -23,9 +23,11 @@ ; 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_TOGUI = WIDGET_SIGNAL_NEXTFREE+0 +.equ DIALOG_SIGNAL_FROMGUI = WIDGET_SIGNAL_NEXTFREE+1 +.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<