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());