; *************************************************************************** ; 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_GUI_BASE_CDIALOG_ASM #define AQH_AVR_GUI_BASE_CDIALOG_ASM ; *************************************************************************** ; defines ; CDIALOG data .equ CDIALOG_OFFS_BEGIN = MAINWINDOW_SIZE .equ CDIALOG_OFFS_CONFIG_LO = CDIALOG_OFFS_BEGIN+0 .equ CDIALOG_OFFS_CONFIG_HI = CDIALOG_OFFS_BEGIN+1 .equ CDIALOG_SIZE = CDIALOG_OFFS_BEGIN+2 ; CDIALOG dialog configuration .equ CDIALOGCFG_MAINWIDGET_TYPE_HLAYOUT = 1 .equ CDIALOGCFG_MAINWIDGET_TYPE_VLAYOUT = 2 .equ CDIALOGCFG_MAINWIDGET_TYPE_MLAYOUT = 3 .equ CDIALOGCFG_MAINWIDGET_TYPE_NEXT = 4 .equ CDIALOGCFG_WIDGET_TYPE_LABEL = 1 .equ CDIALOGCFG_WIDGET_TYPE_VALUELABEL = 2 .equ CDIALOGCFG_WIDGET_TYPE_IMAGEVIEW = 3 .equ CDIALOGCFG_WIDGET_TYPE_HSPINNER = 4 .equ CDIALOGCFG_WIDGET_TYPE_TEXTBUTTON = 5 .equ CDIALOGCFG_WIDGET_TYPE_IMAGEBUTTON = 6 .equ CDIALOGCFG_WIDGET_TYPE_NEXT = 7 .equ CDIALOGCFG_WIDGET_FLAGS_MINMAXVALUES_BIT = 0 .equ CDIALOGCFG_OFFS_HEADER_TYPE = 0 ; HLAYOUT, VLAYOUT, MLAYOUT .equ CDIALOGCFG_OFFS_HEADER_FLAGS = 1 .equ CDIALOGCFG_OFFS_HEADER_PARAM1 = 2 ; R20 .equ CDIALOGCFG_OFFS_HEADER_PARAM2 = 3 ; R21 .equ CDIALOGCFG_HEADER_SIZE = 4 .equ CDIALOGCFG_OFFS_WIDGET_TYPE = 0 ; 0=end .equ CDIALOGCFG_OFFS_WIDGET_FLAGS = 1 .equ CDIALOGCFG_OFFS_WIDGET_SELECTOR = 2 .equ CDIALOGCFG_OFFS_WIDGET_RESERVED = 3 .equ CDIALOGCFG_OFFS_WIDGET_OPTS = 4 .equ CDIALOGCFG_OFFS_WIDGET_PACK = 5 .equ CDIALOGCFG_OFFS_WIDGET_STYLE_LO = 6 .equ CDIALOGCFG_OFFS_WIDGET_STYLE_HI = 7 .equ CDIALOGCFG_OFFS_WIDGET_PARAM1 = 8 ; R20 .equ CDIALOGCFG_OFFS_WIDGET_PARAM2 = 9 ; R21 .equ CDIALOGCFG_OFFS_WIDGET_PARAM3 = 10 ; R22 .equ CDIALOGCFG_OFFS_WIDGET_PARAM4 = 11 ; R23 .equ CDIALOGCFG_OFFS_WIDGET_MINVALUE_LO = 12 .equ CDIALOGCFG_OFFS_WIDGET_MINVALUE_HI = 13 .equ CDIALOGCFG_OFFS_WIDGET_MAXVALUE_LO = 14 .equ CDIALOGCFG_OFFS_WIDGET_MAXVALUE_HI = 15 .equ CDIALOGCFG_WIDGET_SIZE = 16 ; *************************************************************************** ; code .cseg ; --------------------------------------------------------------------------- ; @routine CDialog__Init @global ; ; @param Y pointer to MainWindow ; @param X pointer to root window ; @param R21:R20 title ressource ; @param r23:r22 pointer to settings (byte addr for LPM!) ; @return CFLAG set of okay, cleared otherwise ; @clobbers any, !Y CDialog_Init: push r22 push r23 ldi r16, 0 ; OPTS ldi r17, (WIDGET_PACK_FILLED<