From 4b13f16e05339aab626a895e64feab125c9e4e98 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Sat, 23 May 2026 01:41:39 +0200 Subject: [PATCH] gui: improved Label class (can now have a suffix to reduce FLASH usage). - e.g. light1 and light2 can now share the string but have different suffix - allow for initially empty text --- avr/modules/lcd2/gui/base/label.asm | 96 +++++++++++++++++++++++------ 1 file changed, 78 insertions(+), 18 deletions(-) diff --git a/avr/modules/lcd2/gui/base/label.asm b/avr/modules/lcd2/gui/base/label.asm index 45f8a83..76552dd 100644 --- a/avr/modules/lcd2/gui/base/label.asm +++ b/avr/modules/lcd2/gui/base/label.asm @@ -19,13 +19,17 @@ .equ LABEL_OFFS_TEXTRES_HI = LABEL_OFFS_BEGIN+1 .equ LABEL_OFFS_MINWIDTH_LO = LABEL_OFFS_BEGIN+2 .equ LABEL_OFFS_MINWIDTH_HI = LABEL_OFFS_BEGIN+3 -.equ LABEL_SIZE = LABEL_OFFS_BEGIN+4 +.equ LABEL_OFFS_IDX = LABEL_OFFS_BEGIN+4 +.equ LABEL_SIZE = LABEL_OFFS_BEGIN+5 ; values -.equ LABEL_VALUE_TEXTRES = 1 -.equ LABEL_VALUE_MINWIDTH = 2 +.equ LABEL_VALUE_TEXTRES = WIDGET_VALUE_NEXTFREE+0 +.equ LABEL_VALUE_IDX = WIDGET_VALUE_NEXTFREE+1 +.equ LABEL_VALUE_MINWIDTH = WIDGET_VALUE_NEXTFREE+2 +.equ LABEL_VALUE_NEXTFREE = WIDGET_VALUE_NEXTFREE+3 +.equ LABEL_IDX_SPACING = 8 @@ -97,6 +101,7 @@ Label_Init: +#if 0 ; --------------------------------------------------------------------------- ; @routine Label_SetTextRessourceId @global ; @@ -104,7 +109,7 @@ Label_Init: ; @param X id of text ressource ; @clobbers r16, r17, r18, r19 -Label_SetTextRessourceId: +xLabel_SetTextRessourceId: std Y+LABEL_OFFS_TEXTRES_LO, xl std Y+LABEL_OFFS_TEXTRES_HI, xh ldd r16, Y+OBJECT_OFFS_FLAGS @@ -115,7 +120,7 @@ Label_SetTextRessourceId: bigcall OBJ_AddFlagsUp ; (r17, r18, r19) ret ; @end - +#endif @@ -211,15 +216,8 @@ Label_OnGetDefaultHeight: Label_OnSetValueTextRes: std Y+LABEL_OFFS_TEXTRES_LO, xl std Y+LABEL_OFFS_TEXTRES_HI, xh + rcall labelSetDirtyAndLayoutFlags - ; set dirty flag - ldd r16, Y+OBJECT_OFFS_FLAGS - ori r16, (1<