17 me.configureXonoticLanguageList(me);
23 me.configureXonoticListBox(me);
31 draw_Fill(
'0 0 0',
'1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
34 me.focusedItemAlpha =
getFadedAlpha(me.focusedItemAlpha, SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED);
35 draw_Fill(
'0 0 0',
'1 1 0', SKINCOLOR_LISTBOX_FOCUSED, me.focusedItemAlpha);
44 float percent =
stof(p);
47 else if (percent >= 50)
59 vector fs = me.realFontSize;
61 draw_Text(me.realUpperMargin *
eY + me.columnNameOrigin *
eX, s, fs, SKINCOLOR_TEXT * alpha_factor, SKINALPHA_TEXT, 0);
66 float x_ofs = me.columnPercentageOrigin + (me.columnPercentageSize - me.columnIconSize);
74 vector fs = me.realFontSize;
76 float x_ofs = me.columnPercentageOrigin + (me.columnPercentageSize -
draw_TextWidth(p, 0, fs));
77 draw_Text(me.realUpperMargin *
eY + x_ofs *
eX, p, fs, SKINCOLOR_TEXT, SKINALPHA_TEXT * alpha_factor, 0);
86 me.itemAbsSize.y = absSize.y * me.itemHeight;
87 me.itemAbsSize.x = absSize.x * (1 - me.controlWidth);
88 me.realFontSize.y = me.fontSize / (absSize.y * me.itemHeight);
89 me.realFontSize.x = me.fontSize / (absSize.x * (1 - me.controlWidth));
90 me.realUpperMargin = 0.5 * (1 - me.realFontSize.y);
93 float aspect_ratio = sz.y ? sz.x / sz.y : 1;
94 me.columnIconSize = me.itemAbsSize.y / me.itemAbsSize.x * aspect_ratio;
96 me.columnPercentageSize = me.realFontSize.x * 3;
97 me.columnPercentageOrigin = 1 - me.columnPercentageSize - 0.5 * me.realFontSize.x;
98 me.columnNameOrigin = 0.5 * me.realFontSize.x;
99 me.columnNameSize = me.columnPercentageOrigin - me.columnNameOrigin;
116 for(i = 0; i < n; ++i)
118 if(me.languageParameter(me, i,
LANGPARM_ID) ==
"en")
126 for(i = 0; i < n; ++i)
164 buf_del(me.languagelist);
176 while((s =
fgets(fh)))
184 string percent =
argv(3);
185 if(percent && percent !=
"100%")
191 me.languagelist = buf;
200 localcmd(
"\nprvm_language \"$_menu_prvm_language\"; menu_restart; menu_cmd languageselect\n");
218 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