SpinButton widget == Description == The markup ++++ implements //spin buttons// which are range bounded integer selector. These buttons are be created on server-side //and// client-side. ++++ can be used when there is not sufficient space for using a ++++. == Synopsis == === Server & client === ( arg ...) === client === (hop-spinbutton-value spin) (hop-spinbutton-value-set! spin val) === Requirements === Client codes using //spin buttons// need to load the client-side code ++hop-spinbutton++. ( :include "hop-spinbutton") == Examples == == Server & Client Definitions == === ++++ === ^ attributes ^ type ^ default ^ short description ^ | :id | string | //random// | element identifier. | | :min | integer | 0 | the range lowest bound. | | :max | integer | 100 | the range lowest bound. | | :value | integer | 0 | the initial value. | | :onchange | procedure | _ | a procedure to invoke on value changes. | This function creates a //spin button//. ~~ The argument :onchange is a script that is invoked each time the spinbutton is changed via the GUI. That is calling the function ++spinbutton-value-set!++ **does not** invoke automatically :onchange. In the scope of that script, the variable ++this++ is bound to the //spinbutton// whose value can be retrieve by the means of the function ++spinbutton-value++. == Client Definitions == === ++(spinbutton-value spin)++ === === ++(spinbutton-value-set! spin val)++ === spinbutton-value spinbutton-value-set! ^ arguments ^ type ^ short description ^ | spinbutton | spinbutton or string | the spin button. | | val | integer | the new spin button value. | These functions get and set the value of a //spin button//. Example: (let ((but ( :max 10 :min -10 :onchange ~(alert (spinbutton-value this))))) (