From c746abcc0f83bafeca83ba7f9eb6b5ad82499274 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Fri, 8 May 2026 10:03:51 +0200 Subject: [PATCH] gui: added value WIDGET_VALUE_STYLE --- avr/modules/lcd2/gui/base/widget.asm | 54 +++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/avr/modules/lcd2/gui/base/widget.asm b/avr/modules/lcd2/gui/base/widget.asm index 322bd68..d9fa1ce 100644 --- a/avr/modules/lcd2/gui/base/widget.asm +++ b/avr/modules/lcd2/gui/base/widget.asm @@ -105,10 +105,11 @@ ; values for signals WIDGET_SIGNAL_SETVALUE and WIDGET_SIGNAL_GETVALUE .equ WIDGET_VALUE_DEFAULT_WIDTH = 1 .equ WIDGET_VALUE_DEFAULT_HEIGHT = 2 -.equ WIDGET_VALUE_CURRENTVALUE = 3 -.equ WIDGET_VALUE_MINVALUE = 4 -.equ WIDGET_VALUE_MAXVALUE = 5 -.equ WIDGET_VALUE_NEXTFREE = 6 +.equ WIDGET_VALUE_STYLE = 3 +.equ WIDGET_VALUE_CURRENTVALUE = 4 +.equ WIDGET_VALUE_MINVALUE = 5 +.equ WIDGET_VALUE_MAXVALUE = 6 +.equ WIDGET_VALUE_NEXTFREE = 7 @@ -467,6 +468,22 @@ Widget_GetMaxValue: +; --------------------------------------------------------------------------- +; @routine Widget_SetStyle @global +; +; @param Y address of widget +; @param X value to set +; @return CFLAG set if value set, cleared on error +; @clobbers any, !Y + +Widget_SetStyle: + ldi r16, WIDGET_SIGNAL_SETVALUE + ldi r17, WIDGET_VALUE_STYLE + bigjmp OBJ_HandleSignal +; @end + + + ; --------------------------------------------------------------------------- ; @routine widgetGetValueOrZero @global ; @@ -808,6 +825,24 @@ Widget_OnGetValue_ret: +; --------------------------------------------------------------------------- +; @routine Widget_OnSetValueStyle @global +; +; @param Y address of widget +; @param r17 value requested +; @param X style +; @return CFLAG set if signal handled +; @clobbers any, !Y + +Widget_OnSetValueStyle: + std Y+WIDGET_OFFS_STYLE_LO, xl + std Y+WIDGET_OFFS_STYLE_HI, xh + sec + ret +; @end + + + ; --------------------------------------------------------------------------- ; @routine Widget_OnTouch @global ; @@ -1763,11 +1798,12 @@ Widget_DefaultSignalmap: ; header .dw Object_DefaultSignalmap*2 ; next table to use ; entries - .db 0, WIDGET_SIGNAL_DRAW, LOW(Widget_OnDraw), HIGH(Widget_OnDraw) - .db 0, WIDGET_SIGNAL_LAYOUT, LOW(Widget_OnLayout), HIGH(Widget_OnLayout) - .db 0, WIDGET_SIGNAL_GETVALUE, LOW(Widget_OnGetValue), HIGH(Widget_OnGetValue) ; handle any value here - .db 0, WIDGET_SIGNAL_SHOW, LOW(Widget_OnShow), HIGH(Widget_OnShow) - .db 0, WIDGET_SIGNAL_HIDE, LOW(Widget_OnHide), HIGH(Widget_OnHide) + .db 0, WIDGET_SIGNAL_DRAW, LOW(Widget_OnDraw), HIGH(Widget_OnDraw) + .db 0, WIDGET_SIGNAL_LAYOUT, LOW(Widget_OnLayout), HIGH(Widget_OnLayout) + .db 0, WIDGET_SIGNAL_GETVALUE, LOW(Widget_OnGetValue), HIGH(Widget_OnGetValue) ; handle any value here + .db WIDGET_VALUE_STYLE, WIDGET_SIGNAL_SETVALUE, LOW(Widget_OnSetValueStyle), HIGH(Widget_OnSetValueStyle) + .db 0, WIDGET_SIGNAL_SHOW, LOW(Widget_OnShow), HIGH(Widget_OnShow) + .db 0, WIDGET_SIGNAL_HIDE, LOW(Widget_OnHide), HIGH(Widget_OnHide) .db 0, 0, 0, 0 ; end of table