When you handle actions and callbacks from sliders, your application should check the reason code that it receives along with the callback. This is not required, but it is a good idea because it can reduce processing.
A callback occurs when an increment boundary on a slider is crossed. For example, if the slider is defined with a minimum value of 0, a maximum value of 10, and both small and big increments of 1, a callback is issued 10 times as the user traverses from one end of the slider to the other.
The following function shows the basic scheme of a function to handle a slider. It is called from an action expression associated with the slider tile. The slider_info tile used by the function displays the slider's current value in decimal form. Often such a tile is an edit box as well, which gives users the choice of either manipulating the slider or entering its value directly. If a user enters a value in slider_info, your edit box callback should update the value of the slider as follows:
(action_tile
"myslider"
"(slider_action $value $reason)"
)
(action_tile
"slider_info"
"(ebox_action $value $reason)"
)
.
.
.
(defun slider_action(val why)
(if (or (= why 2) (= why 1)) ; Check reason code.
(set_tile "slider_info" val) ; Show interim result.
)
)
(defun ebox_action(val why)
(if (or (= why 2) (= why 1)) ; Check reason code.
( set_tile "myslider" val) ; Show interim result.
)
)