diff --git a/avr/modules/lcd2/gui/base/hspinner.asm b/avr/modules/lcd2/gui/base/hspinner.asm index 3b04b00..6062480 100644 --- a/avr/modules/lcd2/gui/base/hspinner.asm +++ b/avr/modules/lcd2/gui/base/hspinner.asm @@ -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 diff --git a/avr/modules/lcd2/gui/base/widget.asm b/avr/modules/lcd2/gui/base/widget.asm index 5210155..ce55cc8 100644 --- a/avr/modules/lcd2/gui/base/widget.asm +++ b/avr/modules/lcd2/gui/base/widget.asm @@ -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 ;