CLASS(AnimHost) EXTENDS(Object)
METHOD(AnimHost, addAnim, void(entity, entity))
METHOD(AnimHost, removeAnim, void(entity, entity))
+ METHOD(AnimHost, removeAllAnim, void(entity))
+ METHOD(AnimHost, removeObjAnim, void(entity, entity))
METHOD(AnimHost, stopAllAnim, void(entity))
+ METHOD(AnimHost, stopObjAnim, void(entity, entity))
+ METHOD(AnimHost, resumeAllAnim, void(entity))
+ METHOD(AnimHost, resumeObjAnim, void(entity, entity))
METHOD(AnimHost, finishAllAnim, void(entity))
+ METHOD(AnimHost, finishObjAnim, void(entity, entity))
METHOD(AnimHost, tickAll, void(entity))
ATTRIB(AnimHost, firstChild, entity, NULL)
ATTRIB(AnimHost, lastChild, entity, NULL)
me.lastChild = p;
}
+void removeAllAnimAnimHost(entity me)
+{
+ entity e, tmp;
+ for(e = me.firstChild; e; e = e.nextSibling)
+ {
+ tmp = e;
+ e = tmp.prevSibling;
+ me.removeAnim(me, tmp);
+ }
+}
+
+void removeObjAnimAnimHost(entity me, entity obj)
+{
+ entity e, tmp;
+ for(e = me.firstChild; e; e = e.nextSibling)
+ {
+ if (e.object == obj)
+ {
+ tmp = e;
+ e = tmp.prevSibling;
+ me.removeAnim(me, tmp);
+ }
+ }
+}
+
void stopAllAnimAnimHost(entity me)
{
entity e;
}
}
+void stopObjAnimAnimHost(entity me, entity obj)
+{
+ entity e;
+ for(e = me.firstChild; e; e = e.nextSibling)
+ {
+ if (e.object == obj)
+ {
+ e.stopAnim(e);
+ }
+ }
+}
+
+void resumeAllAnimAnimHost(entity me)
+{
+ entity e;
+ for(e = me.firstChild; e; e = e.nextSibling)
+ {
+ e.resumeAnim(e);
+ }
+}
+
+void resumeObjAnimAnimHost(entity me, entity obj)
+{
+ entity e;
+ for(e = me.firstChild; e; e = e.nextSibling)
+ {
+ if (e.object == obj)
+ {
+ e.resumeAnim(e);
+ }
+ }
+}
+
void finishAllAnimAnimHost(entity me)
{
entity e, tmp;
tmp = e;
e = tmp.prevSibling;
me.removeAnim(me, tmp);
- e.finishAnim(tmp);
+ tmp.finishAnim(tmp);
+ }
+}
+
+void finishObjAnimAnimHost(entity me, entity obj)
+{
+ entity e, tmp;
+ for(e = me.firstChild; e; e = e.nextSibling)
+ {
+ if (e.object == obj)
+ {
+ tmp = e;
+ e = tmp.prevSibling;
+ me.removeAnim(me, tmp);
+ tmp.finishAnim(tmp);
+ }
}
}
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))
ATTRIB(Slider, src, string, string_null)
ATTRIB(Slider, focusable, float, 1)
ATTRIB(Slider, value, float, 0)
+ ATTRIB(Slider, animated, float, 1)
+ ATTRIB(Slider, sliderValue, float, 0)
ATTRIB(Slider, valueMin, float, 0)
ATTRIB(Slider, valueMax, float, 0)
ATTRIB(Slider, valueStep, float, 0)
#ifdef IMPLEMENTATION
void setValueSlider(entity me, float val)
{
+ if (me.animated) {
+ anim.stopObjAnim(anim, me);
+ anim.removeObjAnim(anim, me);
+ makeHostedEasing(me, setSliderValueSlider, easingQuadInOut, 1, me.sliderValue, val);
+ } else {
+ me.setSliderValue(me, val);
+ }
me.value = val;
}
+void setSliderValueSlider(entity me, float val)
+{
+ me.sliderValue = val;
+}
string toStringSlider(entity me)
{
return strcat(ftos(me.value), " (", me.valueToText(me, me.value), ")");
void configureSliderValuesSlider(entity me, float theValueMin, float theValue, float theValueMax, float theValueStep, float theValueKeyStep, float theValuePageStep)
{
me.value = theValue;
+ me.sliderValue = theValue;
me.valueStep = theValueStep;
me.valueMin = theValueMin;
me.valueMax = theValueMax;
float mouseDragSlider(entity me, vector pos)
{
float hit;
- float v;
+ float v, animed;
if(me.disabled)
return 0;
+
+ anim.finishObjAnim(anim, me);
+ animed = me.animated;
+ me.animated = false;
+
if(me.pressed)
{
hit = 1;
else
me.setValue(me, me.previousValue);
}
+
+ me.animated = animed;
+
return 1;
}
float mousePressSlider(entity me, vector pos)
if(me.disabled)
draw_alpha *= me.disabledAlpha;
draw_ButtonPicture('0 0 0', strcat(me.src, "_s"), eX * (1 - me.textSpace) + eY, me.color2, 1);
- if(almost_in_bounds(me.valueMin, me.value, me.valueMax))
+ if(almost_in_bounds(me.valueMin, me.sliderValue, me.valueMax))
{
- controlLeft = (me.value - me.valueMin) / (me.valueMax - me.valueMin) * (1 - me.textSpace - me.controlWidth);
+ controlLeft = (me.sliderValue - me.valueMin) / (me.valueMax - me.valueMin) * (1 - me.textSpace - me.controlWidth);
if(me.disabled)
draw_Picture(eX * controlLeft, strcat(me.src, "_d"), eX * me.controlWidth + eY, me.colorD, 1);
else if(me.pressed)
drawLabel(me);
me.text = string_null; // TEMPSTRING!
}
-#endif
\ No newline at end of file
+#endif