; *************************************************************************** ; copyright : (C) 2025 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 AQHOME_AVR_MODS_STATICGUI_DIALOG_ASM #define AQHOME_AVR_MODS_STATICGUI_DIALOG_ASM ; *************************************************************************** ; defines .equ DIALOG_MAX_ACTIVE = 8 .equ DIALOG_OFFS_HANDLER_LO = 0 .equ DIALOG_OFFS_HANDLER_HI = 1 .equ DIALOG_OFFS_OPTIONS = 2 .equ DIALOG_OFFS_COUNTER = 3 .equ DIALOG_SIZE = 4 .equ DIALOG_OPT_ACTIVE_BIT = 7 .equ DIALOG_FN_INIT = 0 .equ DIALOG_FN_FINI = 1 .equ DIALOG_FN_SHOW = 2 .equ DIALOG_FN_HIDE = 3 .equ DIALOG_FN_DRAW = 4 .equ DIALOG_FN_TOUCH = 5 .equ DIALOG_FN_TIMER = 6 ; *************************************************************************** ; data .dseg dialogCurrent: .byte 2 dialogStack: .byte DIALOG_MAX_ACTIVE*2 dialogStackPos: .byte 1 dialogWindow: .byte WIN_SIZE ; *************************************************************************** ; code .cseg ; --------------------------------------------------------------------------- ; @routine GraphApp_Init @global ; DialogMgr_Init: clr r16 sts dialogStackPos, r16 sts dialogCurrent, r16 sts dialogCurrent+1, r16 ldi yl, LOW(dialogWindow) ldi yh, HIGH(dialogWindow) bigcall TitleWindow_Init ldi zl, LOW(ili9341Font12x20_1*2) ldi zh, HIGH(ili9341Font12x20_1*2) std Y+WIN_OFFS_FONT_LO, zl std Y+WIN_OFFS_FONT_HI, zh bigcall TitleWindow_SetFullSize bigcall TitleWindow_SetStyleColors bigcall Window_Clear ret ; @end ; --------------------------------------------------------------------------- ; @routine DialogMgr_Every100ms @global ; ; Handle display touch events ; Send timer event to every app in the stack (started with last added app). DialogMgr_Every100ms: ; check for touch input changes rcall Display_InputGetState ; r16=flags, r5:r4=x, r7:r6=y mov r17, r16 andi r17, (1<