]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/item/inputbox.c
get rid of some dead code
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / item / inputbox.c
index cb1b32e8b1c9a4225e9e3bb09885b935e3945491..5b07afd4eef2997d11b9ec5057379fd5ec89d478 100644 (file)
@@ -25,7 +25,7 @@ CLASS(InputBox) EXTENDS(Label)
        ATTRIB(InputBox, forbiddenCharacters, string, "")
        ATTRIB(InputBox, color, vector, '1 1 1')
        ATTRIB(InputBox, colorF, vector, '1 1 1')
-       ATTRIB(InputBox, maxLength, float, 255)
+       ATTRIB(InputBox, maxLength, float, 255) // if negative, it counts bytes, not chars
 ENDCLASS(InputBox)
 void InputBox_Clear_Click(entity btn, entity me);
 #endif
@@ -79,8 +79,16 @@ void InputBox_enterText(entity me, string ch)
        for(i = 0; i < strlen(ch); ++i)
                if(strstrofs(me.forbiddenCharacters, substring(ch, i, 1), 0) > -1)
                        return;
-       if(strlen(ch) + strlen(me.text) > me.maxLength)
-               return;
+       if(me.maxLength > 0)
+       {
+               if(strlen(ch) + strlen(me.text) > me.maxLength)
+                       return;
+       }
+       else if(me.maxLength < 0)
+       {
+               if(u8_strsize(ch) + u8_strsize(me.text) > -me.maxLength)
+                       return;
+       }
        me.setText(me, strcat(substring(me.text, 0, me.cursorPos), ch, substring(me.text, me.cursorPos, strlen(me.text) - me.cursorPos)));
        me.cursorPos += strlen(ch);
 }
@@ -96,15 +104,19 @@ float InputBox_keyDown(entity me, float key, float ascii, float shift)
        }
        switch(key)
        {
+               case K_KP_LEFTARROW:
                case K_LEFTARROW:
                        me.cursorPos -= 1;
                        return 1;
+               case K_KP_RIGHTARROW:
                case K_RIGHTARROW:
                        me.cursorPos += 1;
                        return 1;
+               case K_KP_HOME:
                case K_HOME:
                        me.cursorPos = 0;
                        return 1;
+               case K_KP_END:
                case K_END:
                        me.cursorPos = strlen(me.text);
                        return 1;
@@ -115,6 +127,7 @@ float InputBox_keyDown(entity me, float key, float ascii, float shift)
                                me.setText(me, strcat(substring(me.text, 0, me.cursorPos), substring(me.text, me.cursorPos + 1, strlen(me.text) - me.cursorPos - 1)));
                        }
                        return 1;
+               case K_KP_DEL:
                case K_DEL:
                        if(shift & S_CTRL)
                                me.setText(me, "");
@@ -259,35 +272,6 @@ void InputBox_draw(entity me)
                                                draw_Text(p, substring(me.text, i, 2), me.realFontSize, '1 1 1', theAlpha, 0);
                                        }
                                }
-                               /*else if(ch2 == "a") // ^a found
-                               {
-                                       draw_Fill(p, eX * w + eY * me.realFontSize_y, '1 1 1', 0.5);
-                                       draw_Text(p, substring(me.text, i, 2), me.realFontSize, theColor, 0.8, 0);
-                                       
-                                       component = str2chr(me.text, i+2);
-                                       if (component >= '0' && component <= '9')
-                                               component = component - '0';
-                                       else if (component >= 'a' && component <= 'f')
-                                               component = component - 87;
-                                       else if (component >= 'A' && component <= 'F')
-                                               component = component - 55;
-                                       else
-                                               component = -1;
-                                       
-                                       if (component >= 0) // ^ah found
-                                       {
-                                               // FIX ME: overflow here
-                                               if (component == 20 && theVariableAlpha <= 0.97)
-                                                       theVariableAlpha = theVariableAlpha + 0.0625;
-                                               else if (component == 30 && theVariableAlpha >= 0.03)
-                                                       theVariableAlpha = theVariableAlpha - 0.0625;
-                                               else
-                                                       theVariableAlpha = component*0.0625;
-                                               
-                                               draw_Fill(p, eX * draw_TextWidth(substring(me.text, i, 3), 0, me.realFontSize) + eY * me.realFontSize_y, '0.8 0.8 0.8', 0.5);
-                                               draw_Text(p, strcat(ch, ch2), me.realFontSize, theColor, 0.8, 0);
-                                       }
-                               }*/
                                else
                                {
                                        draw_Fill(p, eX * w + eY * me.realFontSize_y, '1 1 1', 0.5);