From d3f24284ca64884ec1c7e170548095f04d7cec50 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Mon, 9 Mar 2026 21:06:16 +0100 Subject: [PATCH] gui2: added widgets. --- avr/devices/c03/test/main.asm | 52 +++- avr/modules/lcd2/gui2/base/0BUILD | 21 ++ avr/modules/lcd2/gui2/base/hlayout.asm | 358 +++++++++++++++++++--- avr/modules/lcd2/gui2/base/imageview.asm | 350 +++++++++++++++++++++ avr/modules/lcd2/gui2/base/label.asm | 24 +- avr/modules/lcd2/gui2/base/rootwindow.asm | 2 +- avr/modules/lcd2/gui2/base/valuelabel.asm | 263 ++++++++++++++++ avr/modules/lcd2/gui2/base/widget.asm | 55 ++++ 8 files changed, 1043 insertions(+), 82 deletions(-) create mode 100644 avr/modules/lcd2/gui2/base/0BUILD create mode 100644 avr/modules/lcd2/gui2/base/imageview.asm create mode 100644 avr/modules/lcd2/gui2/base/valuelabel.asm diff --git a/avr/devices/c03/test/main.asm b/avr/devices/c03/test/main.asm index 271cbfd..f878a99 100644 --- a/avr/devices/c03/test/main.asm +++ b/avr/devices/c03/test/main.asm @@ -250,7 +250,6 @@ test: ldi r16, 0 ldi r17, 0 bigcall GuiApp_new - brcc DEBUG_STOP sts guiApp, yl sts guiApp+1, yh @@ -273,20 +272,43 @@ test: push xh mov xl, r18 mov xh, r19 + + push xl ; content window + push xh + ldi r16, (1< + + + + + button.asm + guiapp.asm + hlayout.asm + imageview.asm + label.asm + layout.asm + mainwindow.asm + object.asm + rootwindow.asm + valuelabel.asm + widget.asm + + + + + diff --git a/avr/modules/lcd2/gui2/base/hlayout.asm b/avr/modules/lcd2/gui2/base/hlayout.asm index 724e43d..0766658 100644 --- a/avr/modules/lcd2/gui2/base/hlayout.asm +++ b/avr/modules/lcd2/gui2/base/hlayout.asm @@ -15,8 +15,14 @@ ; defines .equ HLAYOUT_OFFS_BEGIN = WIDGET_SIZE -; no data for now -.equ HLAYOUT_SIZE = HLAYOUT_OFFS_BEGIN+0 +.equ HLAYOUT_OFFS_MODE = HLAYOUT_OFFS_BEGIN+0 +.equ HLAYOUT_SIZE = HLAYOUT_OFFS_BEGIN+1 + + +; values for HLAYOUT_OFFS_MODE +.equ HLAYOUT_MODE_EXPAND = 0 +.equ HLAYOUT_MODE_SPREAD = 1 + @@ -36,17 +42,12 @@ ; @param X parent widget ; @param r16 value for OBJECT_OFFS_OPTS ; @param r17 value for WIDGET_OFFS_PACK -; @param r21:r20 ressource id for title ; @clobbers any HLayout_new: - push r20 - push r21 - ldi r24, LOW(HLAYOUT_SIZE) - ldi r25, HIGH(HLAYOUT_SIZE) - bigcall Object_Alloc ; (!r16, !r17, !X) - pop r21 - pop r20 + ldi r24, LOW(HLAYOUT_SIZE) + ldi r25, HIGH(HLAYOUT_SIZE) + bigcall Object_Alloc ; (!r16, !r17, !X) brcc HLayout_new_ret rcall HLayout_Init ; (r16, r17, X) sec @@ -61,6 +62,8 @@ HLayout_new_ret: ; ; @param Y address of widget ; @param X parent widget (if any) +; @param r16 value for OBJECT_OFFS_OPTS +; @param r17 value for WIDGET_OFFS_PACK ; @clobbers r16, r17, X HLayout_Init: @@ -90,7 +93,7 @@ HLayout_Init: HLayout_OnLayout: rcall hLayoutHorizontally - rcall hLayoutVerticalAdjust + rcall hLayoutVertically ; force re-drawing of this widget, clear layout bit ldd r16, Y+OBJECT_OFFS_FLAGS sbr r16, (1<