From fe8681292fd9b29fa73369b0f7d41bb47b34bdf2 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Wed, 4 Mar 2026 00:08:10 +0100 Subject: [PATCH] added Widget_OnDraw and Widget_OnDrawNop --- avr/modules/lcd2/gui2/base/widget.asm | 57 +++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/avr/modules/lcd2/gui2/base/widget.asm b/avr/modules/lcd2/gui2/base/widget.asm index 8eed11d..ff957d0 100644 --- a/avr/modules/lcd2/gui2/base/widget.asm +++ b/avr/modules/lcd2/gui2/base/widget.asm @@ -146,10 +146,65 @@ Widget_Fini: +; --------------------------------------------------------------------------- +; @routine Widget_OnDraw @global +; +; @param Y address of widget +; @param xl param1 +; @param xh param2 +; @return CFLAG set if signal handled +; @clobbers any, !Y + +Widget_OnDraw: + ldd r17, Y+OBJECT_OFFS_FLAGS + + ; check whether widget is visible + sbrs r17, WIDGET_FLAGS_VISIBLE_BIT + rjmp Widget_OnDraw_ret + + ; check whether widget is dirty + sbrs r17, WIDGET_FLAGS_DIRTY_BIT + rjmp Widget_OnDraw_ret + + ; clear dirty bit + cbr r17, (1<