#define ITEM_SLIDER_H
#include "label.qc"
CLASS(Slider, Label)
- METHOD(Slider, resizeNotify, void(entity, vector, vector, vector, vector))
- METHOD(Slider, configureSliderVisuals, void(entity, float, float, float, string))
- METHOD(Slider, configureSliderValues, void(entity, float, float, float, float, float, float))
- METHOD(Slider, draw, void(entity))
- METHOD(Slider, keyDown, float(entity, float, float, float))
- METHOD(Slider, keyUp, float(entity, float, float, float))
- METHOD(Slider, mousePress, float(entity, vector))
- METHOD(Slider, mouseDrag, float(entity, vector))
- METHOD(Slider, mouseRelease, float(entity, vector))
- METHOD(Slider, valueToText, string(entity, float))
- METHOD(Slider, toString, string(entity))
- METHOD(Slider, setValue, void(entity, float))
- METHOD(Slider, setSliderValue, void(entity, float))
- METHOD(Slider, showNotify, void(entity))
+ METHOD(Slider, resizeNotify, void(entity, vector, vector, vector, vector));
+ METHOD(Slider, configureSliderVisuals, void(entity, float, float, float, string));
+ METHOD(Slider, configureSliderValues, void(entity, float, float, float, float, float, float));
+ METHOD(Slider, draw, void(entity));
+ METHOD(Slider, keyDown, float(entity, float, float, float));
+ METHOD(Slider, keyUp, float(entity, float, float, float));
+ METHOD(Slider, mousePress, float(entity, vector));
+ METHOD(Slider, mouseDrag, float(entity, vector));
+ METHOD(Slider, mouseRelease, float(entity, vector));
+ METHOD(Slider, valueToText, string(entity, float));
+ METHOD(Slider, toString, string(entity));
+ METHOD(Slider, setValue_allowAnim, void(entity, float, bool));
+ METHOD(Slider, setValue_noAnim, void(entity, float));
+ METHOD(Slider, setValue, void(entity, float));
+ METHOD(Slider, setSliderValue, void(entity, float));
+ METHOD(Slider, showNotify, void(entity));
ATTRIB(Slider, src, string, string_null)
ATTRIB(Slider, focusable, float, 1)
ATTRIB(Slider, allowFocusSound, float, 1)
#endif
#ifdef IMPLEMENTATION
-void Slider_setValue(entity me, float val)
+void Slider_setValue_allowAnim(entity me, float val, bool allowAnim)
{
- if (me.animated) {
+ if(allowAnim && me.animated) {
float t = 0.5;
if(me.pressed == 2)
t = 0.3; // slightly more responsive while dragging the handle
}
me.value = val;
}
+void Slider_setValue_noAnim(entity me, float val)
+{
+ Slider_setValue_allowAnim(me, val, false);
+}
+void Slider_setValue(entity me, float val)
+{
+ Slider_setValue_allowAnim(me, val, true);
+}
void Slider_setSliderValue(entity me, float val)
{
me.sliderValue = val;