11 me.configureXonoticCvarList(me);
16 me.configureXonoticListBox(me);
24 strcpy(cvarlistResultCount, c == 1 ? _(
"1 result") : sprintf(_(
"%d results"), c));
25 me.cvarlistResultCountBox.setText(me.cvarlistResultCountBox, cvarlistResultCount);
44 else if (filter !=
"")
46 bool ispattern = ((
strstrofs(filter,
"*", 0) >= 0) || (
strstrofs(filter,
"?", 0) >= 0));
49 filter =
strcat(
"*", filter,
"*");
56 buf_cvarlist(me.handle, filter,
"_");
57 me.nItems = buf_getsize(me.handle);
63 buf_cvarlist(me.handle,
"",
"_");
64 me.nItems = buf_getsize(me.handle);
68 for (
int i = 0; i < me.nItems; ++i)
70 string cvar_name = bufstr_get(me.handle, i);
81 bufstr_add(newbuf, cvar_name,
false);
85 me.nItems = buf_getsize(me.handle);
90 bool force_initial_selection =
false;
91 if(me.handle >= 0 && me.nItems <= 0)
92 force_initial_selection =
true;
94 if(force_initial_selection)
95 me.setSelected(me, 0);
113 float t = cvar_type(me.cvarName);
118 me.cvarType =
strcat(me.cvarType,
", ", _(
"forced to be saved to config.cfg"));
119 needsForcing =
false;
124 me.cvarType =
strcat(me.cvarType,
", ", _(
"will not be saved"));
129 me.cvarType =
strcat(me.cvarType,
", ", _(
"will be saved to config.cfg"));
130 needsForcing =
false;
134 me.cvarType =
strcat(me.cvarType,
", ", _(
"will not be saved"));
138 me.cvarType =
strcat(me.cvarType,
", ", _(
"private"));
140 me.cvarType =
strcat(me.cvarType,
", ", _(
"engine setting"));
143 me.cvarType =
strcat(me.cvarType,
", ", _(
"read only"));
144 me.cvarValueBox.disabled =
true;
145 me.cvarDefaultBox.disabled =
true;
149 me.cvarValueBox.disabled =
false;
150 me.cvarDefaultBox.disabled =
false;
153 me.cvarTypeBox.setText(me.cvarTypeBox, me.cvarType);
165 strcpy(me.cvarName, bufstr_get(me.handle, me.selectedItem));
166 strcpy(me.cvarDescription, cvar_description(me.cvarName));
168 me.cvarNameBox.setText(me.cvarNameBox, me.cvarName);
169 me.cvarDescriptionBox.setText(me.cvarDescriptionBox, me.cvarDescription);
170 bool needsForcing = me.updateCvarType(me);
171 me.cvarDefaultBox.setText(me.cvarDefaultBox, me.cvarDefault);
175 me.cvarNeedsForcing =
false;
176 me.cvarValueBox.setText(me.cvarValueBox, s);
177 me.cvarNeedsForcing = needsForcing;
178 me.cvarValueBox.cursorPos =
strlen(s);
183 me.setSelected(me, 0);
190 me.setSelected(me, 0);
197 me.setSelected(me, 0);
203 me.realFontSize_y = me.fontSize / (absSize.y * me.itemHeight);
204 me.realFontSize_x = me.fontSize / (absSize.x * (1 - me.controlWidth));
205 me.realUpperMargin = 0.5 * (1 - me.realFontSize.y);
207 me.columnNameOrigin = 0;
208 me.columnValueSize = me.realFontSize.x * 20;
209 me.columnNameSize = 1 - me.columnValueSize - me.realFontSize.x;
210 me.columnValueOrigin = me.columnNameOrigin + me.columnNameSize + me.realFontSize.x;
223 draw_Fill(
'0 0 0',
'1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
226 me.focusedItemAlpha =
getFadedAlpha(me.focusedItemAlpha, SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED);
227 draw_Fill(
'0 0 0',
'1 1 0', SKINCOLOR_LISTBOX_FOCUSED, me.focusedItemAlpha);
230 k = bufstr_get(me.handle, i);
236 theAlpha = SKINALPHA_CVARLIST_SAVED;
238 theAlpha = SKINALPHA_CVARLIST_TEMPORARY;
240 theAlpha = SKINALPHA_CVARLIST_SAVED;
242 theAlpha = SKINALPHA_CVARLIST_TEMPORARY;
244 theColor = SKINCOLOR_CVARLIST_UNCHANGED;
246 theColor = SKINCOLOR_CVARLIST_CHANGED;
249 draw_Text(me.realUpperMargin *
eY + me.columnNameOrigin *
eX, s, me.realFontSize, theColor, theAlpha, 0);
251 draw_Text(me.realUpperMargin *
eY + me.columnValueOrigin *
eX, s, me.realFontSize, theColor, theAlpha, 0);
261 else if(!me.cvarValueBox.disabled && scan ==
K_ENTER)
263 me.cvarValueBox.parent.setFocus(me.cvarValueBox.parent, me.cvarValueBox);
268 else if(!me.controlledTextbox || me.cvarValueBox.disabled)
271 return me.controlledTextbox.keyDown(me.controlledTextbox, scan, ascii, shift);
276 if (!me.cvarValueBox.disabled && me.pressed == 2)
277 me.cvarValueBox.parent.setFocus(me.cvarValueBox.parent, me.cvarValueBox);
285 cvar_set(me.cvarNameBox.text, box.text);
286 if(me.cvarNeedsForcing)
288 localcmd(sprintf(
"\nseta %1$s \"$%1$s\"\n", me.cvarName));
291 cvar_set(
"menu_forced_saved_cvars", me.cvarName);
294 me.cvarNeedsForcing =
false;
295 me.updateCvarType(me);
301 me.cvarValueBox.setText(me.cvarValueBox, me.cvarDefault);
302 me.cvarValueBox.cursorPos =
strlen(me.cvarDefault);
307 cvar_set(
"menu_reverted_nonsaved_cvars", me.cvarName);
311 me.cvarNeedsForcing = me.updateCvarType(me);
317 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."))