12 me.configureXonoticCvarList(me);
17 me.configureXonoticListBox(me);
25 strcpy(cvarlistResultCount, c == 1 ? _(
"1 result") : sprintf(_(
"%d results"), c));
26 me.cvarlistResultCountBox.setText(me.cvarlistResultCountBox, cvarlistResultCount);
45 else if (filter !=
"")
47 bool ispattern = ((
strstrofs(filter,
"*", 0) >= 0) || (
strstrofs(filter,
"?", 0) >= 0));
50 filter =
strcat(
"*", filter,
"*");
57 buf_cvarlist(me.handle, filter,
"_");
58 me.nItems = buf_getsize(me.handle);
64 buf_cvarlist(me.handle,
"",
"_");
65 me.nItems = buf_getsize(me.handle);
69 for (
int i = 0; i < me.nItems; ++i)
71 string cvar_name = bufstr_get(me.handle, i);
82 bufstr_add(newbuf, cvar_name,
false);
86 me.nItems = buf_getsize(me.handle);
91 bool force_initial_selection =
false;
92 if(me.handle >= 0 && me.nItems <= 0)
93 force_initial_selection =
true;
95 if(force_initial_selection)
96 me.setSelected(me, 0);
115 t = cvar_type(me.cvarName);
120 me.cvarType =
strcat(me.cvarType,
", ", _(
"forced to be saved to config.cfg"));
121 needsForcing =
false;
126 me.cvarType =
strcat(me.cvarType,
", ", _(
"will not be saved"));
131 me.cvarType =
strcat(me.cvarType,
", ", _(
"will be saved to config.cfg"));
132 needsForcing =
false;
136 me.cvarType =
strcat(me.cvarType,
", ", _(
"will not be saved"));
140 me.cvarType =
strcat(me.cvarType,
", ", _(
"private"));
142 me.cvarType =
strcat(me.cvarType,
", ", _(
"engine setting"));
145 me.cvarType =
strcat(me.cvarType,
", ", _(
"read only"));
146 me.cvarValueBox.disabled =
true;
147 me.cvarDefaultBox.disabled =
true;
151 me.cvarValueBox.disabled =
false;
152 me.cvarDefaultBox.disabled =
false;
155 me.cvarTypeBox.setText(me.cvarTypeBox, me.cvarType);
167 strcpy(me.cvarName, bufstr_get(me.handle, me.selectedItem));
168 strcpy(me.cvarDescription, cvar_description(me.cvarName));
170 me.cvarNameBox.setText(me.cvarNameBox, me.cvarName);
171 me.cvarDescriptionBox.setText(me.cvarDescriptionBox, me.cvarDescription);
172 bool needsForcing = me.updateCvarType(me);
173 me.cvarDefaultBox.setText(me.cvarDefaultBox, me.cvarDefault);
177 me.cvarNeedsForcing =
false;
178 me.cvarValueBox.setText(me.cvarValueBox, s);
179 me.cvarNeedsForcing = needsForcing;
180 me.cvarValueBox.cursorPos =
strlen(s);
185 me.setSelected(me, 0);
192 me.setSelected(me, 0);
199 me.setSelected(me, 0);
205 me.realFontSize_y = me.fontSize / (absSize.y * me.itemHeight);
206 me.realFontSize_x = me.fontSize / (absSize.x * (1 - me.controlWidth));
207 me.realUpperMargin = 0.5 * (1 - me.realFontSize.y);
209 me.columnNameOrigin = 0;
210 me.columnValueSize = me.realFontSize.x * 20;
211 me.columnNameSize = 1 - me.columnValueSize - me.realFontSize.x;
212 me.columnValueOrigin = me.columnNameOrigin + me.columnNameSize + me.realFontSize.x;
225 draw_Fill(
'0 0 0',
'1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
228 me.focusedItemAlpha =
getFadedAlpha(me.focusedItemAlpha, SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED);
229 draw_Fill(
'0 0 0',
'1 1 0', SKINCOLOR_LISTBOX_FOCUSED, me.focusedItemAlpha);
232 k = bufstr_get(me.handle, i);
238 theAlpha = SKINALPHA_CVARLIST_SAVED;
240 theAlpha = SKINALPHA_CVARLIST_TEMPORARY;
242 theAlpha = SKINALPHA_CVARLIST_SAVED;
244 theAlpha = SKINALPHA_CVARLIST_TEMPORARY;
246 theColor = SKINCOLOR_CVARLIST_UNCHANGED;
248 theColor = SKINCOLOR_CVARLIST_CHANGED;
251 draw_Text(me.realUpperMargin *
eY + me.columnNameOrigin *
eX, s, me.realFontSize, theColor, theAlpha, 0);
253 draw_Text(me.realUpperMargin *
eY + me.columnValueOrigin *
eX, s, me.realFontSize, theColor, theAlpha, 0);
263 else if(!me.cvarValueBox.disabled && scan ==
K_ENTER)
265 me.cvarValueBox.parent.setFocus(me.cvarValueBox.parent, me.cvarValueBox);
270 else if(!me.controlledTextbox || me.cvarValueBox.disabled)
273 return me.controlledTextbox.keyDown(me.controlledTextbox, scan, ascii, shift);
278 if (!me.cvarValueBox.disabled && me.pressed == 2)
279 me.cvarValueBox.parent.setFocus(me.cvarValueBox.parent, me.cvarValueBox);
287 cvar_set(me.cvarNameBox.text, box.text);
288 if(me.cvarNeedsForcing)
290 localcmd(sprintf(
"\nseta %1$s \"$%1$s\"\n", me.cvarName));
293 cvar_set(
"menu_forced_saved_cvars", me.cvarName);
296 me.cvarNeedsForcing =
false;
297 me.updateCvarType(me);
303 me.cvarValueBox.setText(me.cvarValueBox, me.cvarDefault);
304 me.cvarValueBox.cursorPos =
strlen(me.cvarDefault);
309 cvar_set(
"menu_reverted_nonsaved_cvars", me.cvarName);
313 me.cvarNeedsForcing = me.updateCvarType(me);
319 box.parent.setFocus(box.parent, me);
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
string strtolower(string s)
float CVAR_TYPEFLAG_ENGINE
float CVAR_TYPEFLAG_READONLY
float CVAR_TYPEFLAG_SAVED
float CVAR_TYPEFLAG_PRIVATE
void XonoticCvarList_drawListBoxItem(entity me, int i, vector absSize, bool isSelected, bool isFocused)
void CvarList_UpdateResults(entity me)
void CvarList_Filter_Descriptions(entity box, entity me)
string autocvar_menu_forced_saved_cvars
void XonoticCvarList_setSelected(entity me, float i)
void CvarList_Filter_Change(entity box, entity me)
float XonoticCvarList_mouseRelease(entity me, vector pos)
void CvarList_Value_Change(entity box, entity me)
void CvarList_End_Editing(entity box, entity me)
entity makeXonoticCvarList()
void XonoticCvarList_configureXonoticCvarList(entity me)
string autocvar_menu_reverted_nonsaved_cvars
bool XonoticCvarList_updateCvarType(entity me)
void CvarList_Filter_ModifiedCvars(entity box, entity me)
void CvarList_Revert_Click(entity btn, entity me)
float XonoticCvarList_keyDown(entity me, float scan, float ascii, float shift)
void XonoticCvarList_destroy(entity me)
void XonoticCvarList_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
void XonoticCvarList_hideNotify(entity me)
void XonoticCvarList_showNotify(entity me)
void CvarList_Load(entity me, string filter)
bool autocvar_menu_cvarlist_descriptions
bool autocvar_menu_cvarlist_onlymodified
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))