18 me.configureXonoticLanguageList(me);
24 me.configureXonoticListBox(me);
32 draw_Fill(
'0 0 0',
'1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
35 me.focusedItemAlpha =
getFadedAlpha(me.focusedItemAlpha, SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED);
36 draw_Fill(
'0 0 0',
'1 1 0', SKINCOLOR_LISTBOX_FOCUSED, me.focusedItemAlpha);
45 float percent =
stof(p);
48 else if (percent >= 50)
60 vector fs = me.realFontSize;
62 draw_Text(me.realUpperMargin *
eY + me.columnNameOrigin *
eX, s, fs, SKINCOLOR_TEXT * alpha_factor, SKINALPHA_TEXT, 0);
67 float x_ofs = me.columnPercentageOrigin + (me.columnPercentageSize - me.columnIconSize);
75 vector fs = me.realFontSize;
77 float x_ofs = me.columnPercentageOrigin + (me.columnPercentageSize -
draw_TextWidth(p, 0, fs));
78 draw_Text(me.realUpperMargin *
eY + x_ofs *
eX, p, fs, SKINCOLOR_TEXT, SKINALPHA_TEXT * alpha_factor, 0);
87 me.itemAbsSize.y = absSize.y * me.itemHeight;
88 me.itemAbsSize.x = absSize.x * (1 - me.controlWidth);
89 me.realFontSize.y = me.fontSize / (absSize.y * me.itemHeight);
90 me.realFontSize.x = me.fontSize / (absSize.x * (1 - me.controlWidth));
91 me.realUpperMargin = 0.5 * (1 - me.realFontSize.y);
94 float aspect_ratio = sz.y ? sz.x / sz.y : 1;
95 me.columnIconSize = me.itemAbsSize.y / me.itemAbsSize.x * aspect_ratio;
97 me.columnPercentageSize = me.realFontSize.x * 3;
98 me.columnPercentageOrigin = 1 - me.columnPercentageSize - 0.5 * me.realFontSize.x;
99 me.columnNameOrigin = 0.5 * me.realFontSize.x;
100 me.columnNameSize = me.columnPercentageOrigin - me.columnNameOrigin;
117 for(i = 0; i < n; ++i)
119 if(me.languageParameter(me, i,
LANGPARM_ID) ==
"en")
127 for(i = 0; i < n; ++i)
165 buf_del(me.languagelist);
177 while((s =
fgets(fh)))
185 string percent =
argv(3);
186 if(percent && percent !=
"100%")
192 me.languagelist = buf;
201 localcmd(
"\nprvm_language \"$_menu_prvm_language\"; menu_restart; menu_cmd languageselect\n");
219 if (me.focusedItem >= 0)
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
void XonoticLanguageList_getLanguages(entity me)
void XonoticLanguageList_focusedItemChangeNotify(entity me)
float XonoticLanguageList_keyDown(entity me, float scan, float ascii, float shift)
void SetLanguage_Click(entity btn, entity me)
const string PERCENTAGE_FULL_ICON
void XonoticLanguageList_configureXonoticLanguageList(entity me)
void XonoticLanguageList_doubleClickListBoxItem(entity me, float i, vector where)
void XonoticLanguageList_destroy(entity me)
entity makeXonoticLanguageList()
void XonoticLanguageList_setSelected(entity me, float i)
void XonoticLanguageList_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
void XonoticLanguageList_setLanguage(entity me)
void XonoticLanguageList_saveCvars(entity me)
void XonoticLanguageList_loadCvars(entity me)
const int LANGPARM_PERCENTAGE
string XonoticLanguageList_languageParameter(entity me, float i, float key)
const int LANGPARM_NAME_LOCALIZED
void XonoticLanguageList_drawListBoxItem(entity me, int i, vector absSize, bool isSelected, bool isFocused)
void DialogOpenButton_Click(entity button, entity tab)
ERASEABLE string ftos_decimals_percentage(float number, int decimals)
converts a percentage to a string with the indicated number of decimals