ATTRIB(XonoticCvarList, columnValueOrigin, float, 0)
ATTRIB(XonoticCvarList, columnValueSize, float, 0)
+ METHOD(XonoticCvarList, mouseRelease, float(entity, vector))
METHOD(XonoticCvarList, setSelected, void(entity, float))
+
ATTRIB(XonoticCvarList, controlledTextbox, entity, NULL)
ATTRIB(XonoticCvarList, cvarNameBox, entity, NULL)
ATTRIB(XonoticCvarList, cvarDescriptionBox, entity, NULL)
void CvarList_Filter_Change(entity box, entity me);
void CvarList_Value_Change(entity box, entity me);
void CvarList_Revert_Click(entity btn, entity me);
+void CvarList_End_Editing(entity box, entity me);
#endif
#ifdef IMPLEMENTATION
me.configureXonoticCvarList(me);
return me;
}
-void configureXonoticCvarListXonoticCvarList(entity me)
+void XonoticCvarList_configureXonoticCvarList(entity me)
{
me.configureXonoticListBox(me);
buf_cvarlist(me.handle, "", "_");
me.nItems = buf_getsize(me.handle);
}
-void destroyXonoticCvarList(entity me)
+void XonoticCvarList_destroy(entity me)
{
buf_del(me.handle);
}
-void setSelectedXonoticCvarList(entity me, float i)
+void XonoticCvarList_setSelected(entity me, float i)
{
string s;
t = cvar_type(me.cvarName);
me.cvarType = "";
if(t & CVAR_TYPEFLAG_SAVED)
- me.cvarType = strcat(me.cvarType, ", will be saved to config.cfg");
+ me.cvarType = strcat(me.cvarType, ", ", _("will be saved to config.cfg"));
else
- me.cvarType = strcat(me.cvarType, ", will not be saved");
+ me.cvarType = strcat(me.cvarType, ", ", _("will not be saved"));
if(t & CVAR_TYPEFLAG_PRIVATE)
- me.cvarType = strcat(me.cvarType, ", private");
+ me.cvarType = strcat(me.cvarType, ", ", _("private"));
if(t & CVAR_TYPEFLAG_ENGINE)
- me.cvarType = strcat(me.cvarType, ", engine setting");
+ me.cvarType = strcat(me.cvarType, ", ", _("engine setting"));
if(t & CVAR_TYPEFLAG_READONLY)
- me.cvarType = strcat(me.cvarType, ", read only");
+ me.cvarType = strcat(me.cvarType, ", ", _("read only"));
me.cvarType = strzone(substring(me.cvarType, 2, strlen(me.cvarType) - 2));
me.cvarNameBox.setText(me.cvarNameBox, me.cvarName);
me.setSelected(me, 0);
}
-void resizeNotifyXonoticCvarList(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
+void XonoticCvarList_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
{
SUPER(XonoticCvarList).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
me.setSelected(me, me.selectedItem);
}
-void drawListBoxItemXonoticCvarList(entity me, float i, vector absSize, float isSelected)
+void XonoticCvarList_drawListBoxItem(entity me, float i, vector absSize, float isSelected)
{
string k, v, d;
float t;
draw_Text(me.realUpperMargin * eY + me.columnValueOrigin * eX, s, me.realFontSize, theColor, theAlpha, 0);
}
-float keyDownXonoticCvarList(entity me, float scan, float ascii, float shift)
+float XonoticCvarList_keyDown(entity me, float scan, float ascii, float shift)
{
- if(SUPER(XonoticCvarList).keyDown(me, scan, ascii, shift))
+ if (scan == K_MOUSE3 || ((shift & S_CTRL) && scan == K_SPACE))
+ {
+ CvarList_Revert_Click(world, me);
+ return 1;
+ }
+ else if(scan == K_ENTER)
+ me.cvarValueBox.parent.setFocus(me.cvarValueBox.parent, me.cvarValueBox);
+ else if(SUPER(XonoticCvarList).keyDown(me, scan, ascii, shift))
return 1;
else if(!me.controlledTextbox)
return 0;
return me.controlledTextbox.keyDown(me.controlledTextbox, scan, ascii, shift);
}
+float XonoticCvarList_mouseRelease(entity me, vector pos)
+{
+ if(me.pressed == 2)
+ me.cvarValueBox.parent.setFocus(me.cvarValueBox.parent, me.cvarValueBox);
+ return SUPER(XonoticCvarList).mouseRelease(me, pos);
+}
+
void CvarList_Value_Change(entity box, entity me)
{
cvar_set(me.cvarNameBox.text, box.text);
me.cvarValueBox.setText(me.cvarValueBox, me.cvarDefault);
me.cvarValueBox.cursorPos = strlen(me.cvarDefault);
}
+
+void CvarList_End_Editing(entity box, entity me)
+{
+ box.parent.setFocus(box.parent, me);
+}
+
#endif