Skip to content

Commit

Permalink
use FlxKey instead of ints (#250)
Browse files Browse the repository at this point in the history
* use FlxKey instead of ints

* remove typo
  • Loading branch information
Geokureli committed Aug 8, 2023
1 parent 04930db commit 719b4f1
Showing 1 changed file with 52 additions and 73 deletions.
125 changes: 52 additions & 73 deletions flixel/addons/ui/FlxInputText.hx
Expand Up @@ -6,12 +6,14 @@ import openfl.geom.Rectangle;
import flixel.addons.ui.FlxUI.NamedString;
import flixel.FlxG;
import flixel.FlxSprite;
import flixel.input.keyboard.FlxKey;
import flixel.math.FlxPoint;
import flixel.math.FlxRect;
import flixel.text.FlxText;
import flixel.util.FlxColor;
import flixel.util.FlxDestroyUtil;
import flixel.util.FlxTimer;
import openfl.desktop.Clipboard;

/**
* FlxInputText v1.11, ported to Haxe
Expand Down Expand Up @@ -327,84 +329,61 @@ class FlxInputText extends FlxText
*/
private function onKeyDown(e:KeyboardEvent):Void
{
var key:Int = e.keyCode;
final key:FlxKey = e.keyCode;

if (hasFocus)
{
// Do nothing for Shift, Ctrl, Esc, and flixel console hotkey
if (key == 16 || key == 17 || key == 220 || key == 27)
switch (key)
{
return;
}
// Left arrow
else if (key == 37)
{
if (caretIndex > 0)
{
caretIndex--;
text = text; // forces scroll update
}
}
// Right arrow
else if (key == 39)
{
if (caretIndex < text.length)
{
caretIndex++;
text = text; // forces scroll update
}
}
// End key
else if (key == 35)
{
caretIndex = text.length;
text = text; // forces scroll update
}
// Home key
else if (key == 36)
{
caretIndex = 0;
text = text;
}
// Backspace
else if (key == 8)
{
if (caretIndex > 0)
{
caretIndex--;
text = text.substring(0, caretIndex) + text.substring(caretIndex + 1);
onChange(BACKSPACE_ACTION);
}
}
// Delete
else if (key == 46)
{
if (text.length > 0 && caretIndex < text.length)
{
text = text.substring(0, caretIndex) + text.substring(caretIndex + 1);
onChange(DELETE_ACTION);
}
}
// Enter
else if (key == 13)
{
onChange(ENTER_ACTION);
}
// Actually add some text
else
{
if (e.charCode == 0) // non-printable characters crash String.fromCharCode
{
case SHIFT | CONTROL | BACKSLASH | ESCAPE:
return;
}
var newText:String = filter(String.fromCharCode(e.charCode));

if (newText.length > 0 && (maxLength == 0 || (text.length + newText.length) < maxLength))
{
text = insertSubstring(text, newText, caretIndex);
caretIndex++;
onChange(INPUT_ACTION);
}
case LEFT:
if (caretIndex > 0)
{
caretIndex--;
text = text; // forces scroll update
}
case RIGHT:
if (caretIndex < text.length)
{
caretIndex++;
text = text; // forces scroll update
}
case END:
caretIndex = text.length;
text = text; // forces scroll update
case HOME:
caretIndex = 0;
text = text;
case BACKSPACE:
if (caretIndex > 0)
{
caretIndex--;
text = text.substring(0, caretIndex) + text.substring(caretIndex + 1);
onChange(BACKSPACE_ACTION);
}
case DELETE:
if (text.length > 0 && caretIndex < text.length)
{
text = text.substring(0, caretIndex) + text.substring(caretIndex + 1);
onChange(DELETE_ACTION);
}
case ENTER:
onChange(ENTER_ACTION);
default:
// Actually add some text
if (e.charCode == 0) // non-printable characters crash String.fromCharCode
{
return;
}
final newText = filter(String.fromCharCode(e.charCode));

if (newText.length > 0 && (maxLength == 0 || (text.length + newText.length) < maxLength))
{
text = insertSubstring(text, newText, caretIndex);
caretIndex++;
onChange(INPUT_ACTION);
}
}
}
}
Expand Down

0 comments on commit 719b4f1

Please sign in to comment.