From 6a8709a1fcada359cab5827bde051c380c9c2e1b Mon Sep 17 00:00:00 2001
From: Yoshman29 <81191621+YoshiCrafter29@users.noreply.github.com>
Date: Mon, 26 Dec 2022 17:07:53 +0100
Subject: [PATCH] progress
---
assets/images/desktop/ui.xml | 6 +++++
assets/images/desktop/ui/textbox.png | Bin 0 -> 234 bytes
assets/images/desktop/ui/textboxFocus.png | Bin 0 -> 258 bytes
assets/images/desktop/ui/textboxHover.png | Bin 0 -> 251 bytes
assets/images/desktop/ui/textboxPressed.png | Bin 0 -> 253 bytes
buildnumber.txt | 2 +-
.../funkin/desktop/editors/CharacterEditor.hx | 6 ++++-
source/funkin/desktop/sprites/Checkbox.hx | 6 ++++-
source/funkin/desktop/sprites/InputBox.hx | 22 +++++++++++++++++-
source/funkin/desktop/theme/Theme.hx | 8 +++++++
10 files changed, 46 insertions(+), 4 deletions(-)
create mode 100644 assets/images/desktop/ui/textbox.png
create mode 100644 assets/images/desktop/ui/textboxFocus.png
create mode 100644 assets/images/desktop/ui/textboxHover.png
create mode 100644 assets/images/desktop/ui/textboxPressed.png
diff --git a/assets/images/desktop/ui.xml b/assets/images/desktop/ui.xml
index 79c6909a..c36783a4 100644
--- a/assets/images/desktop/ui.xml
+++ b/assets/images/desktop/ui.xml
@@ -24,4 +24,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/assets/images/desktop/ui/textbox.png b/assets/images/desktop/ui/textbox.png
new file mode 100644
index 0000000000000000000000000000000000000000..affdf708008c569eed4744e46fd3db49f4f119ae
GIT binary patch
literal 234
zcmeAS@N?(olHy`uVBq!ia0vp^B0wz8!3HF`W%CyUDb50q$YKTtzQZ8Qcszea3Q%y4
zr;B4q#jUqj4Y}GB7}_45U+LO(fy3Heynu6#ZTjX1msqXbg;brkSbPoE`>)fxkG{E!6qF6rv>kS
z>lDO>TRb=5ac1O>IKU+KL4M1%rsBSJuQwgYy5ZTkCu&eH38Jk&I8CzUj-6o!2e|{<-UO(SnQtGjd
zyA>unAk(APMjprq$Etua4tU($~s|7@L8cQ7A0;CcI;k%x!3VaqGe38@cWdFxBW
z+0-7J@I2Kf>%oe~#cX|27Fi0L8hyRX4LLeH3_3hLCZ#@DEq-3|-rmZ?0pf4j3^&v~
zi(<>mi(_L{Ox(ot=fgYQ!`Ii(m$bUvEGe-v_BA8Jy1x5=ecIB`0^QHx>FVdQ&MBb@
E0NqMt00000
literal 0
HcmV?d00001
diff --git a/assets/images/desktop/ui/textboxHover.png b/assets/images/desktop/ui/textboxHover.png
new file mode 100644
index 0000000000000000000000000000000000000000..49688263398c767dc43c52b7251f54fe1f14834c
GIT binary patch
literal 251
zcmeAS@N?(olHy`uVBq!ia0vp^B0wz8!3HF`W%CyUDb50q$YKTtzQZ8Qcszea3Q%yZ
zr;B4q#jUqj7xFbZFtmUC&uZ2$t6px?e071@-8sEk1!nT+p7DgtD!#moZT0yBjqJ?k
zO?(>9q(AOs|8cc{!Rziir6mXXmP^YVZ}g5;Ub@EXN@?%gtTwS8J%58^248jx{y1mS
zwdg>V;kyGr{x$KiEaB;KSSqwa#nnPK@=c$Z4
zwwSF?$|CE*ipIrkO42vBl!!M^=-_Cc(V`N`wy)~roQHR3oAZ=j%oAWfoxU#h!Lw(n
z0s=y6rw{PIzh_kQ_t(sY#) {
+abstract CheckState(Null) from Null to Null from Bool to Bool {
var CHECKED:CheckState = true;
var UNCHECKED:CheckState = false;
var BOTH:CheckState = null;
diff --git a/source/funkin/desktop/sprites/InputBox.hx b/source/funkin/desktop/sprites/InputBox.hx
index 2bc8cf01..c6dabc8d 100644
--- a/source/funkin/desktop/sprites/InputBox.hx
+++ b/source/funkin/desktop/sprites/InputBox.hx
@@ -8,6 +8,7 @@ import lime.app.Application;
class InputBox extends Button {
public var index:Int = 0;
+ public static var insertMode:Bool = false;
public var text(get, set):String;
private inline function set_text(t:String):String
@@ -20,7 +21,8 @@ class InputBox extends Button {
public function new(x:Float, y:Float, w:Float, t:String, ?onChange:Void->Void) {
super(x, y, t, function() {
setIndex(label.text.length);
- });
+ disabled = true;
+ }, DesktopMain.theme.textbox, DesktopMain.theme.textboxHover, DesktopMain.theme.textboxPressed, DesktopMain.theme.textboxFocused);
this.resize(w, height);
this.label.alignment = LEFT;
FlxG.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
@@ -33,6 +35,8 @@ class InputBox extends Button {
switch(event.keyCode) {
case Keyboard.ESCAPE:
this.loseFocus();
+ case Keyboard.INSERT:
+ insertMode = !insertMode;
case Keyboard.LEFT:
changeIndex(-1);
case Keyboard.RIGHT:
@@ -60,10 +64,26 @@ class InputBox extends Button {
text = text.substr(0, index) + input + text.substring(index, text.length);
+ if (!insertMode)
+ index += input.length;
+
if (onChange != null)
onChange();
}
+ public override function update(elapsed:Float) {
+ if (DesktopMain.mouseInput.justPressed && !DesktopMain.mouseInput.overlaps(this, camera)) {
+ disabled = false;
+ this.loseFocus();
+ }
+ super.update(elapsed);
+ }
+
+ public override function onFocusLost() {
+ super.onFocusLost();
+ disabled = false;
+ }
+
public inline function changeIndex(change:Int) {
setIndex(Std.int(FlxMath.bound(index + change, 0, label.text.length)));
}
diff --git a/source/funkin/desktop/theme/Theme.hx b/source/funkin/desktop/theme/Theme.hx
index 5a072665..d2f7cf27 100644
--- a/source/funkin/desktop/theme/Theme.hx
+++ b/source/funkin/desktop/theme/Theme.hx
@@ -59,6 +59,14 @@ class Theme {
public var contextBackground:ThemeData = new ThemeData();
public var contextOption:ThemeData = new ThemeData();
+ /**
+ * THEME
+ */
+ public var textbox:ThemeData = new ThemeData();
+ public var textboxHover:ThemeData = new ThemeData();
+ public var textboxPressed:ThemeData = new ThemeData();
+ public var textboxFocused:ThemeData = new ThemeData();
+
public function new(content:String) {
try {
var access = new Access(Xml.parse(content).firstElement());