diff --git a/avr/modules/lcd2/gui/aqhome/d_light_conns.asm b/avr/modules/lcd2/gui/aqhome/d_light_conns.asm index 3f3ea9f..11a6cc3 100644 --- a/avr/modules/lcd2/gui/aqhome/d_light_conns.asm +++ b/avr/modules/lcd2/gui/aqhome/d_light_conns.asm @@ -28,13 +28,16 @@ .equ DLGLIGHTCONNS_SEL_BTN_MOTION1 = DIALOG_SEL_NEXTFREE+0 .equ DLGLIGHTCONNS_SEL_ADDR_MOTION1 = DIALOG_SEL_NEXTFREE+1 .equ DLGLIGHTCONNS_SEL_VALUE_MOTION1 = DIALOG_SEL_NEXTFREE+2 -.equ DLGLIGHTCONNS_SEL_BTN_MOTION2 = DIALOG_SEL_NEXTFREE+3 -.equ DLGLIGHTCONNS_SEL_ADDR_MOTION2 = DIALOG_SEL_NEXTFREE+4 -.equ DLGLIGHTCONNS_SEL_VALUE_MOTION2 = DIALOG_SEL_NEXTFREE+5 -.equ DLGLIGHTCONNS_SEL_BTN_LIGHT = DIALOG_SEL_NEXTFREE+6 -.equ DLGLIGHTCONNS_SEL_ADDR_LIGHT = DIALOG_SEL_NEXTFREE+7 -.equ DLGLIGHTCONNS_SEL_VALUE_LIGHT = DIALOG_SEL_NEXTFREE+8 -.equ DLGLIGHTCONNS_SEL_BTN_NEXTFREE = DIALOG_SEL_NEXTFREE+9 +.equ DLGLIGHTCONNS_SEL_DLG_MOTION1 = DIALOG_SEL_NEXTFREE+3 +.equ DLGLIGHTCONNS_SEL_BTN_MOTION2 = DIALOG_SEL_NEXTFREE+4 +.equ DLGLIGHTCONNS_SEL_ADDR_MOTION2 = DIALOG_SEL_NEXTFREE+5 +.equ DLGLIGHTCONNS_SEL_VALUE_MOTION2 = DIALOG_SEL_NEXTFREE+6 +.equ DLGLIGHTCONNS_SEL_DLG_MOTION2 = DIALOG_SEL_NEXTFREE+7 +.equ DLGLIGHTCONNS_SEL_BTN_LIGHT = DIALOG_SEL_NEXTFREE+8 +.equ DLGLIGHTCONNS_SEL_ADDR_LIGHT = DIALOG_SEL_NEXTFREE+9 +.equ DLGLIGHTCONNS_SEL_VALUE_LIGHT = DIALOG_SEL_NEXTFREE+10 +.equ DLGLIGHTCONNS_SEL_DLG_LIGHT = DIALOG_SEL_NEXTFREE+11 +.equ DLGLIGHTCONNS_SEL_BTN_NEXTFREE = DIALOG_SEL_NEXTFREE+12 @@ -105,7 +108,7 @@ DlgLightConns_Init: ldi r16, HIGH(DlgLightConns_DefaultSignalmap*2) std Y+OBJECT_OFFS_SIGNALMAP_HI, r16 - bigcall Dialog_AddDefaultButtons + bigcall Dialog_AddDefaultButtons ; (any, !Y) rcall DlgLightConns_toGui @@ -175,7 +178,11 @@ dlgLightConnsSetValue: push yh mov yl, r18 mov yh, r19 - bigcall Widget_SetCurrentValue + push zl + push zh + bigcall Widget_SetCurrentValue + pop zh + pop zl pop yh pop yl dlgLightConnsSetValue_ret: @@ -216,8 +223,11 @@ DlgLightConns_OnCmdMotion1: ldd xl, Z+LIGHTSETTINGS_OFFS_SOURCE1_NODEADDR clr xh - bigcall DlgNodeValueId_SetNodeAddr - + push zl + push zh + bigcall DlgNodeValueId_SetNodeAddr + pop zh + pop zl ldd xl, Z+LIGHTSETTINGS_OFFS_SOURCE1_VALUEID clr xh bigcall DlgNodeValueId_SetValueId @@ -228,6 +238,16 @@ DlgLightConns_OnCmdMotion1: pop yl std Y+DLGLIGHTCONNS_OFFS_CURRDLG_LO, xl std Y+DLGLIGHTCONNS_OFFS_CURRDLG_HI, xh + + ldi r16, DLGLIGHTCONNS_SEL_DLG_MOTION1 + adiw xh:xl, OBJECT_OFFS_SELECTOR + st X, r16 + sbiw xh:xl, OBJECT_OFFS_SELECTOR + adiw xh:xl, OBJECT_OFFS_TARGET_LO + st X+, yl + st X, yh + sbiw xh:xl, (OBJECT_OFFS_TARGET_LO+1) + push yl push yh bigcall Widget_GetApp ; R19:R18=gui (none) @@ -250,6 +270,9 @@ DlgLightConns_OnCmdMotion1: ; @clobbers any, !Y DlgLightConns_OnDlgEndMotion1: + cpi xl, DIALOG_RESULT_OK + brne DlgLightConns_OnDlgEndMotion1_leave + ; get values ldd zl, Y+DLGLIGHTCONNS_OFFS_SETTINGS_LO ldd zh, Y+DLGLIGHTCONNS_OFFS_SETTINGS_HI @@ -258,15 +281,24 @@ DlgLightConns_OnDlgEndMotion1: ldd r16, Y+DLGLIGHTCONNS_OFFS_CURRDLG_LO ldd yh, Y+DLGLIGHTCONNS_OFFS_CURRDLG_HI mov yl, r16 - bigcall DlgNodeValueId_GetNodeAddr + push zl + push zh + bigcall DlgNodeValueId_GetNodeAddr + pop zh + pop zl std Z+LIGHTSETTINGS_OFFS_SOURCE1_NODEADDR, r18 - bigcall DlgNodeValueId_GetValueId + push zl + push zh + bigcall DlgNodeValueId_GetValueId + pop zh + pop zl std Z+LIGHTSETTINGS_OFFS_SOURCE1_VALUEID, r18 pop yh pop yl rcall DlgLightConns_toGui +DlgLightConns_OnDlgEndMotion1_leave: ; leave sub-dialog push yl push yh @@ -530,9 +562,9 @@ DlgLightConns_DefaultSignalmap: .db DLGLIGHTCONNS_SEL_BTN_MOTION1, WIDGET_SIGNAL_COMMAND, LOW(DlgLightConns_OnCmdMotion1), HIGH(DlgLightConns_OnCmdMotion1) .db DLGLIGHTCONNS_SEL_BTN_MOTION2, WIDGET_SIGNAL_COMMAND, LOW(DlgLightConns_OnCmdMotion2), HIGH(DlgLightConns_OnCmdMotion2) .db DLGLIGHTCONNS_SEL_BTN_LIGHT, WIDGET_SIGNAL_COMMAND, LOW(DlgLightConns_OnCmdLight), HIGH(DlgLightConns_OnCmdLight) - .db DLGLIGHTCONNS_SEL_BTN_MOTION1, WIDGET_SIGNAL_DIALOG_END, LOW(DlgLightConns_OnDlgEndMotion1), HIGH(DlgLightConns_OnDlgEndMotion1) - .db DLGLIGHTCONNS_SEL_BTN_MOTION2, WIDGET_SIGNAL_DIALOG_END, LOW(DlgLightConns_OnDlgEndMotion2), HIGH(DlgLightConns_OnDlgEndMotion2) - .db DLGLIGHTCONNS_SEL_BTN_LIGHT, WIDGET_SIGNAL_DIALOG_END, LOW(DlgLightConns_OnDlgEndLight), HIGH(DlgLightConns_OnDlgEndLight) + .db DLGLIGHTCONNS_SEL_DLG_MOTION1, WIDGET_SIGNAL_DIALOG_END, LOW(DlgLightConns_OnDlgEndMotion1), HIGH(DlgLightConns_OnDlgEndMotion1) + .db DLGLIGHTCONNS_SEL_DLG_MOTION2, WIDGET_SIGNAL_DIALOG_END, LOW(DlgLightConns_OnDlgEndMotion2), HIGH(DlgLightConns_OnDlgEndMotion2) + .db DLGLIGHTCONNS_SEL_DLG_LIGHT, WIDGET_SIGNAL_DIALOG_END, LOW(DlgLightConns_OnDlgEndLight), HIGH(DlgLightConns_OnDlgEndLight) ; end of table .db 0, 0, 0, 0