]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/charmap.qc
Header police
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / charmap.qc
index eb83ff846de56c4b241f706f0dfbd1c02fbede8d..7a10648c91001b8dd186b2b2de89f85f10e013a4 100644 (file)
@@ -1,19 +1,22 @@
-#ifdef INTERFACE
-CLASS(XonoticCharmap) EXTENDS(XonoticPicker)
-       METHOD(XonoticCharmap, configureXonoticCharmap, void(entity, entity))
-       METHOD(XonoticCharmap, focusLeave, void(entity))
-       METHOD(XonoticCharmap, resizeNotify, void(entity, vector, vector, vector, vector))
-       METHOD(XonoticCharmap, keyDown, float(entity, float, float, float))
+#include "charmap.qh"
+#ifndef CHARMAP_H
+#define CHARMAP_H
+#include "picker.qc"
+CLASS(XonoticCharmap, XonoticPicker)
+       METHOD(XonoticCharmap, configureXonoticCharmap, void(entity, entity));
+       METHOD(XonoticCharmap, focusLeave, void(entity));
+       METHOD(XonoticCharmap, resizeNotify, void(entity, vector, vector, vector, vector));
+       METHOD(XonoticCharmap, keyDown, float(entity, float, float, float));
        ATTRIB(XonoticCharmap, inputBox, entity, NULL)
        ATTRIB(XonoticCharmap, realFontSize, vector, '0 0 0')
 
        ATTRIB(XonoticCharmap, rows, float, 10)
        ATTRIB(XonoticCharmap, columns, float, 14)
 
-       METHOD(XonoticCharmap, cellSelect, void(entity))
-       METHOD(XonoticCharmap, cellIsValid, bool(entity, vector))
-       METHOD(XonoticCharmap, cellDraw, void(entity, vector, vector, float))
-       METHOD(XonoticCharmap, charOffset, vector)
+       METHOD(XonoticCharmap, cellSelect, void(entity, vector));
+       METHOD(XonoticCharmap, cellIsValid, bool(entity, vector));
+       METHOD(XonoticCharmap, cellDraw, void(entity, vector, vector));
+       ATTRIB(XonoticCharmap, charOffset, vector, '0 0 0')
 ENDCLASS(XonoticCharmap)
 entity makeXonoticCharmap(entity controlledInputBox);
 #endif
@@ -50,7 +53,7 @@ string charmap_cellToChar(entity me, vector cell)
 entity makeXonoticCharmap(entity controlledInputBox)
 {
        entity me;
-       me = spawnXonoticCharmap();
+       me = NEW(XonoticCharmap);
        me.configureXonoticCharmap(me, controlledInputBox);
        return me;
 }
@@ -92,11 +95,15 @@ float XonoticCharmap_keyDown(entity me, float key, float ascii, float shift)
        return me.inputBox.keyDown(me.inputBox, key, ascii, shift);
 }
 
-void XonoticCharmap_cellSelect(entity me)
+void XonoticCharmap_cellSelect(entity me, vector cell)
 {
-       string character = charmap_cellToChar(me, me.focusedCell);
+       string character = charmap_cellToChar(me, cell);
        if(character != "")
+       {
                me.inputBox.enterText(me.inputBox, character);
+               if(me.inputBox.applyButton)
+                       me.inputBox.applyButton.disabled = false;
+       }
 }
 
 bool XonoticCharmap_cellIsValid(entity me, vector cell)
@@ -106,7 +113,7 @@ bool XonoticCharmap_cellIsValid(entity me, vector cell)
        return true;
 }
 
-void XonoticCharmap_cellDraw(entity me, vector cell, vector cellPos, float highlightedTime)
+void XonoticCharmap_cellDraw(entity me, vector cell, vector cellPos)
 {
        draw_CenterText(cellPos + me.charOffset, charmap_cellToChar(me, cell), me.realFontSize, SKINCOLOR_CHARMAP_CHAR, SKINALPHA_CHARMAP_CHAR, 0);
 }