gui: fixed some problems.

This commit is contained in:
Martin Preuss
2026-05-09 02:01:11 +02:00
parent dad807e7ad
commit d55c9b0cb7

View File

@@ -28,13 +28,16 @@
.equ DLGLIGHTCONNS_SEL_BTN_MOTION1 = DIALOG_SEL_NEXTFREE+0 .equ DLGLIGHTCONNS_SEL_BTN_MOTION1 = DIALOG_SEL_NEXTFREE+0
.equ DLGLIGHTCONNS_SEL_ADDR_MOTION1 = DIALOG_SEL_NEXTFREE+1 .equ DLGLIGHTCONNS_SEL_ADDR_MOTION1 = DIALOG_SEL_NEXTFREE+1
.equ DLGLIGHTCONNS_SEL_VALUE_MOTION1 = DIALOG_SEL_NEXTFREE+2 .equ DLGLIGHTCONNS_SEL_VALUE_MOTION1 = DIALOG_SEL_NEXTFREE+2
.equ DLGLIGHTCONNS_SEL_BTN_MOTION2 = DIALOG_SEL_NEXTFREE+3 .equ DLGLIGHTCONNS_SEL_DLG_MOTION1 = DIALOG_SEL_NEXTFREE+3
.equ DLGLIGHTCONNS_SEL_ADDR_MOTION2 = DIALOG_SEL_NEXTFREE+4 .equ DLGLIGHTCONNS_SEL_BTN_MOTION2 = DIALOG_SEL_NEXTFREE+4
.equ DLGLIGHTCONNS_SEL_VALUE_MOTION2 = DIALOG_SEL_NEXTFREE+5 .equ DLGLIGHTCONNS_SEL_ADDR_MOTION2 = DIALOG_SEL_NEXTFREE+5
.equ DLGLIGHTCONNS_SEL_BTN_LIGHT = DIALOG_SEL_NEXTFREE+6 .equ DLGLIGHTCONNS_SEL_VALUE_MOTION2 = DIALOG_SEL_NEXTFREE+6
.equ DLGLIGHTCONNS_SEL_ADDR_LIGHT = DIALOG_SEL_NEXTFREE+7 .equ DLGLIGHTCONNS_SEL_DLG_MOTION2 = DIALOG_SEL_NEXTFREE+7
.equ DLGLIGHTCONNS_SEL_VALUE_LIGHT = DIALOG_SEL_NEXTFREE+8 .equ DLGLIGHTCONNS_SEL_BTN_LIGHT = DIALOG_SEL_NEXTFREE+8
.equ DLGLIGHTCONNS_SEL_BTN_NEXTFREE = DIALOG_SEL_NEXTFREE+9 .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) ldi r16, HIGH(DlgLightConns_DefaultSignalmap*2)
std Y+OBJECT_OFFS_SIGNALMAP_HI, r16 std Y+OBJECT_OFFS_SIGNALMAP_HI, r16
bigcall Dialog_AddDefaultButtons bigcall Dialog_AddDefaultButtons ; (any, !Y)
rcall DlgLightConns_toGui rcall DlgLightConns_toGui
@@ -175,7 +178,11 @@ dlgLightConnsSetValue:
push yh push yh
mov yl, r18 mov yl, r18
mov yh, r19 mov yh, r19
push zl
push zh
bigcall Widget_SetCurrentValue bigcall Widget_SetCurrentValue
pop zh
pop zl
pop yh pop yh
pop yl pop yl
dlgLightConnsSetValue_ret: dlgLightConnsSetValue_ret:
@@ -216,8 +223,11 @@ DlgLightConns_OnCmdMotion1:
ldd xl, Z+LIGHTSETTINGS_OFFS_SOURCE1_NODEADDR ldd xl, Z+LIGHTSETTINGS_OFFS_SOURCE1_NODEADDR
clr xh clr xh
push zl
push zh
bigcall DlgNodeValueId_SetNodeAddr bigcall DlgNodeValueId_SetNodeAddr
pop zh
pop zl
ldd xl, Z+LIGHTSETTINGS_OFFS_SOURCE1_VALUEID ldd xl, Z+LIGHTSETTINGS_OFFS_SOURCE1_VALUEID
clr xh clr xh
bigcall DlgNodeValueId_SetValueId bigcall DlgNodeValueId_SetValueId
@@ -228,6 +238,16 @@ DlgLightConns_OnCmdMotion1:
pop yl pop yl
std Y+DLGLIGHTCONNS_OFFS_CURRDLG_LO, xl std Y+DLGLIGHTCONNS_OFFS_CURRDLG_LO, xl
std Y+DLGLIGHTCONNS_OFFS_CURRDLG_HI, xh 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 yl
push yh push yh
bigcall Widget_GetApp ; R19:R18=gui (none) bigcall Widget_GetApp ; R19:R18=gui (none)
@@ -250,6 +270,9 @@ DlgLightConns_OnCmdMotion1:
; @clobbers any, !Y ; @clobbers any, !Y
DlgLightConns_OnDlgEndMotion1: DlgLightConns_OnDlgEndMotion1:
cpi xl, DIALOG_RESULT_OK
brne DlgLightConns_OnDlgEndMotion1_leave
; get values ; get values
ldd zl, Y+DLGLIGHTCONNS_OFFS_SETTINGS_LO ldd zl, Y+DLGLIGHTCONNS_OFFS_SETTINGS_LO
ldd zh, Y+DLGLIGHTCONNS_OFFS_SETTINGS_HI ldd zh, Y+DLGLIGHTCONNS_OFFS_SETTINGS_HI
@@ -258,15 +281,24 @@ DlgLightConns_OnDlgEndMotion1:
ldd r16, Y+DLGLIGHTCONNS_OFFS_CURRDLG_LO ldd r16, Y+DLGLIGHTCONNS_OFFS_CURRDLG_LO
ldd yh, Y+DLGLIGHTCONNS_OFFS_CURRDLG_HI ldd yh, Y+DLGLIGHTCONNS_OFFS_CURRDLG_HI
mov yl, r16 mov yl, r16
push zl
push zh
bigcall DlgNodeValueId_GetNodeAddr bigcall DlgNodeValueId_GetNodeAddr
pop zh
pop zl
std Z+LIGHTSETTINGS_OFFS_SOURCE1_NODEADDR, r18 std Z+LIGHTSETTINGS_OFFS_SOURCE1_NODEADDR, r18
push zl
push zh
bigcall DlgNodeValueId_GetValueId bigcall DlgNodeValueId_GetValueId
pop zh
pop zl
std Z+LIGHTSETTINGS_OFFS_SOURCE1_VALUEID, r18 std Z+LIGHTSETTINGS_OFFS_SOURCE1_VALUEID, r18
pop yh pop yh
pop yl pop yl
rcall DlgLightConns_toGui rcall DlgLightConns_toGui
DlgLightConns_OnDlgEndMotion1_leave:
; leave sub-dialog ; leave sub-dialog
push yl push yl
push yh 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_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_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_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_DLG_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_DLG_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_LIGHT, WIDGET_SIGNAL_DIALOG_END, LOW(DlgLightConns_OnDlgEndLight), HIGH(DlgLightConns_OnDlgEndLight)
; end of table ; end of table
.db 0, 0, 0, 0 .db 0, 0, 0, 0