gui: move some value definitions to WIDGET class (need to do the same for VALUE_LABEL!)

This commit is contained in:
Martin Preuss
2026-05-06 23:44:04 +02:00
parent ce1fd901e7
commit dfeedecf22
2 changed files with 59 additions and 73 deletions

View File

@@ -36,13 +36,6 @@
.equ HSPINNER_SEL_RIGHT = 2
; values
.equ HSPINNER_VALUE_VALUE = WIDGET_VALUE_NEXTFREE+0
.equ HSPINNER_VALUE_MINVALUE = WIDGET_VALUE_NEXTFREE+1
.equ HSPINNER_VALUE_MAXVALUE = WIDGET_VALUE_NEXTFREE+2
.equ HSPINNER_VALUE_NEXTFREE = WIDGET_VALUE_NEXTFREE+3
; child widgets
.equ HSPINNER_CHILDIDX_LEFT = 0
.equ HSPINNER_CHILDIDX_VALUE = 1
@@ -119,63 +112,6 @@ HSpinner_Init_ret:
; ---------------------------------------------------------------------------
; @routine HSpinner_SetValue @global
;
; @param Y spinner object
; @param X new value
; @clobbers any, !Y
HSpinner_SetValue:
ldi r17, HSPINNER_VALUE_VALUE
bigjmp Widget_SetValue
; @end
; ---------------------------------------------------------------------------
; @routine HSpinner_GetValue @global
;
; @param Y spinner object
; @return CFLAG set if value retrieved, cleared on error
; @return R19:r18 new value
; @clobbers any, !Y
HSpinner_GetValue:
ldi r17, HSPINNER_VALUE_VALUE
bigjmp Widget_GetValue
; @end
; ---------------------------------------------------------------------------
; @routine HSpinner_SetMinValue @global
;
; @param Y spinner object
; @param X new value
; @clobbers any, !Y
HSpinner_SetMinValue:
ldi r17, HSPINNER_VALUE_MINVALUE
bigjmp Widget_SetValue
; @end
; ---------------------------------------------------------------------------
; @routine HSpinner_SetMaxValue @global
;
; @param Y spinner object
; @param X new value
; @clobbers any, !Y
HSpinner_SetMaxValue:
ldi r17, HSPINNER_VALUE_MAXVALUE
bigjmp Widget_SetValue
; @end
; ---------------------------------------------------------------------------
; @routine hSpinnerCreateChildren
;
@@ -523,12 +459,12 @@ HSpinner_DefaultSignalmap:
.dw HLayout_DefaultSignalmap*2 ; next table to use
; entries
.db HSPINNER_SEL_LEFT, WIDGET_SIGNAL_COMMAND, LOW(HSpinner_OnCmdLeft), HIGH(HSpinner_OnCmdLeft)
.db HSPINNER_SEL_RIGHT, WIDGET_SIGNAL_COMMAND, LOW(HSpinner_OnCmdRight), HIGH(HSpinner_OnCmdRight)
.db HSPINNER_VALUE_VALUE, WIDGET_SIGNAL_SETVALUE, LOW(HSpinner_OnSetValue), HIGH(HSpinner_OnSetValue)
.db HSPINNER_VALUE_VALUE, WIDGET_SIGNAL_GETVALUE, LOW(HSpinner_OnGetValue), HIGH(HSpinner_OnGetValue)
.db HSPINNER_VALUE_MINVALUE, WIDGET_SIGNAL_SETVALUE, LOW(HSpinner_OnSetMinValue), HIGH(HSpinner_OnSetMinValue)
.db HSPINNER_VALUE_MAXVALUE, WIDGET_SIGNAL_SETVALUE, LOW(HSpinner_OnSetMaxValue), HIGH(HSpinner_OnSetMaxValue)
.db HSPINNER_SEL_LEFT, WIDGET_SIGNAL_COMMAND, LOW(HSpinner_OnCmdLeft), HIGH(HSpinner_OnCmdLeft)
.db HSPINNER_SEL_RIGHT, WIDGET_SIGNAL_COMMAND, LOW(HSpinner_OnCmdRight), HIGH(HSpinner_OnCmdRight)
.db WIDGET_VALUE_CURRENTVALUE, WIDGET_SIGNAL_SETVALUE, LOW(HSpinner_OnSetValue), HIGH(HSpinner_OnSetValue)
.db WIDGET_VALUE_CURRENTVALUE, WIDGET_SIGNAL_GETVALUE, LOW(HSpinner_OnGetValue), HIGH(HSpinner_OnGetValue)
.db WIDGET_VALUE_MINVALUE, WIDGET_SIGNAL_SETVALUE, LOW(HSpinner_OnSetMinValue), HIGH(HSpinner_OnSetMinValue)
.db WIDGET_VALUE_MAXVALUE, WIDGET_SIGNAL_SETVALUE, LOW(HSpinner_OnSetMaxValue), HIGH(HSpinner_OnSetMaxValue)
.db 0, 0, 0, 0 ; end of table

View File

@@ -105,7 +105,10 @@
; values for signals WIDGET_SIGNAL_SETVALUE and WIDGET_SIGNAL_GETVALUE
.equ WIDGET_VALUE_DEFAULT_WIDTH = 1
.equ WIDGET_VALUE_DEFAULT_HEIGHT = 2
.equ WIDGET_VALUE_NEXTFREE = 3
.equ WIDGET_VALUE_CURRENTVALUE = 3
.equ WIDGET_VALUE_MINVALUE = 4
.equ WIDGET_VALUE_MAXVALUE = 5
.equ WIDGET_VALUE_NEXTFREE = 6
@@ -352,8 +355,7 @@ Widget_GetDefaultHeight_ret:
Widget_SetValue:
ldi r16, WIDGET_SIGNAL_SETVALUE
bigcall OBJ_HandleSignal
ret
bigjmp OBJ_HandleSignal
; @end
@@ -374,6 +376,54 @@ Widget_GetValue:
; ---------------------------------------------------------------------------
; @routine Widget_SetCurrentValue @global
;
; @param Y address of widget
; @param X value to set
; @return CFLAG set if value set, cleared on error
; @clobbers any, !Y
Widget_SetCurrentValue:
ldi r16, WIDGET_SIGNAL_SETVALUE
ldi r17, WIDGET_VALUE_CURRENTVALUE
bigjmp OBJ_HandleSignal
; @end
; ---------------------------------------------------------------------------
; @routine Widget_SetMinValue @global
;
; @param Y address of widget
; @param X value to set
; @return CFLAG set if value set, cleared on error
; @clobbers any, !Y
Widget_SetMinValue:
ldi r16, WIDGET_SIGNAL_SETVALUE
ldi r17, WIDGET_VALUE_MINVALUE
bigjmp OBJ_HandleSignal
; @end
; ---------------------------------------------------------------------------
; @routine Widget_SetMaxValue @global
;
; @param Y address of widget
; @param X value to set
; @return CFLAG set if value set, cleared on error
; @clobbers any, !Y
Widget_SetMaxValue:
ldi r16, WIDGET_SIGNAL_SETVALUE
ldi r17, WIDGET_VALUE_MAXVALUE
bigjmp OBJ_HandleSignal
; @end
; ---------------------------------------------------------------------------
; @routine Widget_IsPointInRect @global
;