; *************************************************************************** ; 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_AQHOME_D_LIGHT_SETTINGS_ASM #define AQH_AVR_GUI2_AQHOME_D_LIGHT_SETTINGS_ASM ; *************************************************************************** ; defines .equ DLGLIGHTSETTINGS_OFFS_BEGIN = CDIALOG_SIZE .equ DLGLIGHTSETTINGS_OFFS_SETTINGS_LO = DLGLIGHTSETTINGS_OFFS_BEGIN+0 .equ DLGLIGHTSETTINGS_OFFS_SETTINGS_HI = DLGLIGHTSETTINGS_OFFS_BEGIN+1 .equ DLGLIGHTSETTINGS_SIZE = DLGLIGHTSETTINGS_OFFS_BEGIN+2 ; selectors .equ DLGLIGHTSETTINGS_SEL_DIALOG_OK = 1 .equ DLGLIGHTSETTINGS_SEL_DIALOG_ABORT = 2 .equ DLGLIGHTSETTINGS_SEL_NAME = 3 .equ DLGLIGHTSETTINGS_SEL_SUFFIX = 4 .equ DLGLIGHTSETTINGS_SEL_LEDCOUNT = 5 .equ DLGLIGHTSETTINGS_SEL_ONTIME = 6 .equ DLGLIGHTSETTINGS_SEL_BTN_CONNS = 7 .equ DLGLIGHTSETTINGS_SEL_DLG_CONNS = 8 ; *************************************************************************** ; code .cseg ; --------------------------------------------------------------------------- ; @routine DlgLightSettings_new @global ; ; @param Y pointer to GUIAPP ; @param r21:r20 pointer to settings ; @return CFLAG set of okay, cleared otherwise ; @return Y address of newly created object DlgLightSettings_new: bigcall GuiApp_GetRootWindow ; r19:r18=root window (none) brcc DlgLightSettings_new_ret mov xl, r18 ; use root window as parent for main window mov xh, r19 ldi r24, LOW(DLGLIGHTSETTINGS_SIZE) ldi r25, HIGH(DLGLIGHTSETTINGS_SIZE) push r20 push r21 bigcall Object_Alloc ; Y=space (!r16, !r17, !X) pop r21 pop r20 brcc DlgLightSettings_new_ret rcall DlgLightSettings_Init DlgLightSettings_new_ret: ret ; @end ; --------------------------------------------------------------------------- ; @routine DlgLightSettings_Init @global ; ; @param Y pointer to newly allocated widget data ; @param X pointer to root window ; @param r21:r20 pointer to settings ; @return CFLAG set of okay, cleared otherwise ; @clobbers any, !Y DlgLightSettings_Init: push r20 push r21 ldi r16, (1<