X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fitem%2Ftextslider.qc;fp=qcsrc%2Fmenu%2Fitem%2Ftextslider.qc;h=01f89fc4d8c6fd2779ecce4fb5203c5ab6b35110;hb=c21d7bb9d4f0b5f0cf78152f4baffc4b41e4bfb5;hp=733b1d61255e155490021d7e12f6b53c61940acd;hpb=740e0b5ddf3728a9066379ac22a11c60da41d66d;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/item/textslider.qc b/qcsrc/menu/item/textslider.qc index 733b1d612..01f89fc4d 100644 --- a/qcsrc/menu/item/textslider.qc +++ b/qcsrc/menu/item/textslider.qc @@ -1,80 +1,64 @@ -// Note: -// to use this, you FIRST call configureSliderVisuals, then multiple times addValue, then configureTextSlider -#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, 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, int, 0) -ENDCLASS(TextSlider) -#endif +#include "textslider.qh" -#ifdef IMPLEMENTATION -string TextSlider_valueToIdentifier(entity me, int val) -{ - if(val >= me.nValues) - return "custom"; - if(val < 0) - return "custom"; - return me.(valueIdentifiers[val]); -} -string TextSlider_valueToText(entity me, int val) -{ - if(val >= me.nValues) - return _("Custom"); - if(val < 0) - return _("Custom"); - return me.(valueStrings[val]); -} -void TextSlider_setValueFromIdentifier(entity me, string id) -{ - int i; - for(i = 0; i < me.nValues; ++i) - if(me.valueToIdentifier(me, i) == id) + string TextSlider_valueToIdentifier(entity me, int val) + { + if (val >= me.nValues) return "custom"; + if (val < 0) return "custom"; + return me.(valueIdentifiers[val]); + } + string TextSlider_valueToText(entity me, int val) + { + if (val >= me.nValues) return _("Custom"); + if (val < 0) return _("Custom"); + return me.(valueStrings[val]); + } + void TextSlider_setValueFromIdentifier_allowAnim(entity me, string id, bool allowAnim) + { + int i; + for (i = 0; i < me.nValues; ++i) + if (me.valueToIdentifier(me, i) == id) + { + SUPER(TextSlider).setValue_allowAnim(me, i, allowAnim); + return; + } + 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) + { + return me.valueToIdentifier(me, me.value); + } + void TextSlider_clearValues(entity me) + { + me.nValues = 0; + } + void TextSlider_addValue(entity me, string theString, string theIdentifier) + { + me.(valueStrings[me.nValues]) = theString; + me.(valueIdentifiers[me.nValues]) = theIdentifier; + me.nValues += 1; + } + void TextSlider_insertValue(entity me, int pos, string theString, string theIdentifier) + { + int i; + for (i = me.nValues; i > pos; --i) { - SUPER(TextSlider).setValue( me, i ); - return; + me.(valueStrings[i]) = me.(valueStrings[i - 1]); + me.(valueIdentifiers[i]) = me.(valueIdentifiers[i - 1]); } - SUPER(TextSlider).setValue( me, -1 ); -} -string TextSlider_getIdentifier(entity me) -{ - return me.valueToIdentifier(me, me.value); -} -void TextSlider_clearValues(entity me) -{ - me.nValues = 0; -} -void TextSlider_addValue(entity me, string theString, string theIdentifier) -{ - me.(valueStrings[me.nValues]) = theString; - me.(valueIdentifiers[me.nValues]) = theIdentifier; - me.nValues += 1; -} -void TextSlider_insertValue(entity me, int pos, string theString, string theIdentifier) -{ - int i; - for (i = me.nValues; i > pos; --i) + me.(valueStrings[pos]) = theString; + me.(valueIdentifiers[pos]) = theIdentifier; + me.nValues += 1; + } + void TextSlider_configureTextSliderValues(entity me, string theDefault) { - me.(valueStrings[i]) = me.(valueStrings[i-1]); - me.(valueIdentifiers[i]) = me.(valueIdentifiers[i-1]); + me.configureSliderValues(me, 0, 0, me.nValues - 1, 1, 1, 1); + me.setValueFromIdentifier_noAnim(me, theDefault); } - me.(valueStrings[pos]) = theString; - me.(valueIdentifiers[pos]) = theIdentifier; - me.nValues += 1; -} -void TextSlider_configureTextSliderValues(entity me, string theDefault) -{ - me.configureSliderValues(me, 0, 0, me.nValues - 1, 1, 1, 1); - me.setValueFromIdentifier(me, theDefault); -} -#endif