InputRange
InputRange[min_, max_, step_:1, initial_:(min+max)/2, opts___] _EventObject
creates a basic combo of a slider and numerical input field and returns EventObject
Event generation
Every-time user drags a slider, an event in a form of number will be generated
slider = InputRange[0,1,0.1];
EventHandler[slider, Function[data,
Print[StringTemplate["`` is a number"][data]]
]];
slider
info
On MacOS devices it provides a haptic feedback when dragged
Options
"Label"
Adds a label to a slider
slider = InputRange[0, 1, 0.1, "Label"->"Slider"]
"Topic"
Specifies which topic or pattern of an event is used
"Topic" -> name_String
emits name
for each time when user drags a slider
"Topic" -> {oninput_String, onchange_String}
emits oninput
when any changes occur, while onchange
is emitted after the users action
Chaining events
One can reuse another event for a new element
InputRange[event_EventObject, min_, max_, step_:1, initial_:(min+max)/2, opts___]
for example
ev = EventObject[];
InputButton[ev, "Topic"->"Button"]
InputRange[ev, 0,1,0.1, "Topic"->"Slider"]
EventHandler[ev, {
"Button" -> Beep,
"Slider" -> Print
}];
Applications
Control properties using knob
EventHandler[InputRange[0,1,0.1], Function[data, pos = data]];
%
% // EventFire;
Graphics[Rectangle[{-1,0}, {1, Offload[pos]}]]