X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fitem%2Ftextslider.c;h=7301f5f16eab521c71104c6d321e1d492f732659;hb=b49873bcf5874782489e6fec264370078c7d6710;hp=b6a345481171b949904913e5010a6c57ac24bc08;hpb=cd26b923d56f6a6e94366c1b3ede890c489efe06;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/item/textslider.c b/qcsrc/menu/item/textslider.c index b6a345481..7301f5f16 100644 --- a/qcsrc/menu/item/textslider.c +++ b/qcsrc/menu/item/textslider.c @@ -6,7 +6,9 @@ CLASS(TextSlider) EXTENDS(Slider) 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) @@ -15,7 +17,7 @@ ENDCLASS(TextSlider) #endif #ifdef IMPLEMENTATION -string valueToIdentifierTextSlider(entity me, float val) +string TextSlider_valueToIdentifier(entity me, float val) { if(val >= me.nValues) return "custom"; @@ -23,36 +25,50 @@ string valueToIdentifierTextSlider(entity me, float val) return "custom"; return me.(valueIdentifiers[val]); } -string valueToTextTextSlider(entity me, float val) +string TextSlider_valueToText(entity me, float val) { if(val >= me.nValues) - return "custom"; + return _("custom"); if(val < 0) - return "custom"; + return _("custom"); return me.(valueStrings[val]); } -void setValueFromIdentifierTextSlider(entity me, string id) +void TextSlider_setValueFromIdentifier(entity me, string id) { float i; for(i = 0; i < me.nValues; ++i) if(me.valueToIdentifier(me, i) == id) { - setValueSlider( me, i ); + SUPER(TextSlider).setValue( me, i ); return; } - setValueSlider( me, -1 ); + SUPER(TextSlider).setValue( me, -1 ); } -string getIdentifierTextSlider(entity me) +string TextSlider_getIdentifier(entity me) { return me.valueToIdentifier(me, me.value); } -void addValueTextSlider(entity me, string theString, string theIdentifier) +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 configureTextSliderValuesTextSlider(entity me, string theDefault) +void TextSlider_insertValue(entity me, float pos, string theString, string theIdentifier) +{ + float i; + for (i = me.nValues; i > pos; --i) + me.(valueStrings[i]) = me.(valueStrings[i-1]); + me.(valueIdentifiers[i]) = me.(valueIdentifiers[i-1]); + 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);