X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fmenu%2Fitem%2Ftextslider.qc;h=30b80c196d96884117def79c2c55496e65f34598;hp=59d8c10db59f6053009f51b90bd39a7c2561c645;hb=b41b1b47e0f20ed2d30358311ba111d82da56f54;hpb=77f03e6ce033bef39ac19e0e7cb6e606ffcb26db diff --git a/qcsrc/menu/item/textslider.qc b/qcsrc/menu/item/textslider.qc index 59d8c10db..30b80c196 100644 --- a/qcsrc/menu/item/textslider.qc +++ b/qcsrc/menu/item/textslider.qc @@ -1,23 +1,27 @@ // Note: // to use this, you FIRST call configureSliderVisuals, then multiple times addValue, then configureTextSlider -#ifdef INTERFACE -CLASS(TextSlider) EXTENDS(Slider) - METHOD(TextSlider, valueToText, string(entity, float)) - METHOD(TextSlider, valueToIdentifier, string(entity, float)) - METHOD(TextSlider, setValueFromIdentifier, void(entity, string)) - METHOD(TextSlider, getIdentifier, string(entity)) - METHOD(TextSlider, clearValues, void(entity)) - METHOD(TextSlider, addValue, void(entity, string, string)) - METHOD(TextSlider, insertValue, void(entity, float, string, string)) - METHOD(TextSlider, configureTextSliderValues, void(entity, string)) +#ifndef ITEM_TEXTSLIDER_H +#define ITEM_TEXTSLIDER_H +#include "slider.qc" +CLASS(TextSlider, Slider) + METHOD(TextSlider, valueToText, string(entity, float)); + METHOD(TextSlider, valueToIdentifier, string(entity, float)); + METHOD(TextSlider, setValueFromIdentifier_allowAnim, void(entity, string, bool)); + METHOD(TextSlider, setValueFromIdentifier_noAnim, void(entity, string)); + METHOD(TextSlider, setValueFromIdentifier, void(entity, string)); + METHOD(TextSlider, getIdentifier, string(entity)); + METHOD(TextSlider, clearValues, void(entity)); + METHOD(TextSlider, addValue, void(entity, string, string)); + METHOD(TextSlider, insertValue, void(entity, float, string, string)); + METHOD(TextSlider, configureTextSliderValues, void(entity, string)); ATTRIBARRAY(TextSlider, valueStrings, string, 256) ATTRIBARRAY(TextSlider, valueIdentifiers, string, 256) - ATTRIB(TextSlider, nValues, float, 0) + ATTRIB(TextSlider, nValues, int, 0) ENDCLASS(TextSlider) #endif #ifdef IMPLEMENTATION -string TextSlider_valueToIdentifier(entity me, float val) +string TextSlider_valueToIdentifier(entity me, int val) { if(val >= me.nValues) return "custom"; @@ -25,7 +29,7 @@ string TextSlider_valueToIdentifier(entity me, float val) return "custom"; return me.(valueIdentifiers[val]); } -string TextSlider_valueToText(entity me, float val) +string TextSlider_valueToText(entity me, int val) { if(val >= me.nValues) return _("Custom"); @@ -33,16 +37,24 @@ string TextSlider_valueToText(entity me, float val) return _("Custom"); return me.(valueStrings[val]); } -void TextSlider_setValueFromIdentifier(entity me, string id) +void TextSlider_setValueFromIdentifier_allowAnim(entity me, string id, bool allowAnim) { - float i; + int i; for(i = 0; i < me.nValues; ++i) if(me.valueToIdentifier(me, i) == id) { - SUPER(TextSlider).setValue( me, i ); + SUPER(TextSlider).setValue_allowAnim(me, i, allowAnim); return; } - SUPER(TextSlider).setValue( me, -1 ); + SUPER(TextSlider).setValue_allowAnim(me, -1, allowAnim); +} +void TextSlider_setValueFromIdentifier_noAnim(entity me, string id) +{ + TextSlider_setValueFromIdentifier_allowAnim(me, id, false); +} +void TextSlider_setValueFromIdentifier(entity me, string id) +{ + TextSlider_setValueFromIdentifier_allowAnim(me, id, true); } string TextSlider_getIdentifier(entity me) { @@ -58,9 +70,9 @@ void TextSlider_addValue(entity me, string theString, string theIdentifier) me.(valueIdentifiers[me.nValues]) = theIdentifier; me.nValues += 1; } -void TextSlider_insertValue(entity me, float pos, string theString, string theIdentifier) +void TextSlider_insertValue(entity me, int pos, string theString, string theIdentifier) { - float i; + int i; for (i = me.nValues; i > pos; --i) { me.(valueStrings[i]) = me.(valueStrings[i-1]); @@ -73,6 +85,6 @@ void TextSlider_insertValue(entity me, float pos, string theString, string theId void TextSlider_configureTextSliderValues(entity me, string theDefault) { me.configureSliderValues(me, 0, 0, me.nValues - 1, 1, 1, 1); - me.setValueFromIdentifier(me, theDefault); + me.setValueFromIdentifier_noAnim(me, theDefault); } #endif