From c7de06f812876ecc72f9668c0ac2213494ee1da2 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Wed, 6 May 2026 17:14:48 +0200 Subject: [PATCH] gui: added textButton --- avr/modules/lcd2/gui/base/0BUILD | 1 + avr/modules/lcd2/gui/base/textbutton.asm | 78 ++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 avr/modules/lcd2/gui/base/textbutton.asm diff --git a/avr/modules/lcd2/gui/base/0BUILD b/avr/modules/lcd2/gui/base/0BUILD index 0995f99..98dbb20 100644 --- a/avr/modules/lcd2/gui/base/0BUILD +++ b/avr/modules/lcd2/gui/base/0BUILD @@ -13,6 +13,7 @@ mclayout.asm object.asm rootwindow.asm + textbutton.asm valuelabel.asm vlayout.asm widget.asm diff --git a/avr/modules/lcd2/gui/base/textbutton.asm b/avr/modules/lcd2/gui/base/textbutton.asm new file mode 100644 index 0000000..edaf9cc --- /dev/null +++ b/avr/modules/lcd2/gui/base/textbutton.asm @@ -0,0 +1,78 @@ +; *************************************************************************** +; copyright : (C) 2026 by Martin Preuss +; email : martin@libchipcard.de +; +; *************************************************************************** +; * This file is part of the project "AqHome". * +; * Please see toplevel file COPYING of that project for license details. * +; *************************************************************************** + +#ifndef AQH_AVR_GUI2_TEXTBUTTON_ASM +#define AQH_AVR_GUI2_TEXTBUTTON_ASM + + +; *************************************************************************** +; code + +.cseg + + + +; --------------------------------------------------------------------------- +; @routine TextButton_new +; +; @param X parent +; @param r16 value for OBJECT_OFFS_OPTS +; @param r17 value for WIDGET_OFFS_PACK +; @param r21:r20 text ressource +; @param r22 selector (target will be parent, can be overridden later) +; @param r23 button mode +; @return CFLAG set if new object created, cleared on error +; @return Y button created +; @clobbers any, !X + +TextButton_new: + push xl + push xh + push r20 + push r21 + push r22 + mov r20, r23 + push r16 ; opts + bigcall Button_new + pop r16 + pop r22 + pop r21 + pop r20 + brcc TextButton_new_done + mov xl, yl + mov xh, yh + push xl ; Button + push xh + push r22 +; use opts from button ldi r16, 0 + ldi r17, (WIDGET_PACK_BEGIN<