From 294f645848286d90a9ddcef59f6013bc3c0405ac Mon Sep 17 00:00:00 2001 From: MathemanFlo Date: Sat, 23 Apr 2022 18:23:55 +0200 Subject: [PATCH 1/2] Live search for Browser --- Sources/arm/ui/TabBrowser.hx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Sources/arm/ui/TabBrowser.hx b/Sources/arm/ui/TabBrowser.hx index c2a0af2f..000283e7 100644 --- a/Sources/arm/ui/TabBrowser.hx +++ b/Sources/arm/ui/TabBrowser.hx @@ -1,5 +1,6 @@ package arm.ui; +import kha.input.KeyCode; import zui.Zui; import zui.Id; import arm.sys.Path; @@ -54,8 +55,12 @@ class TabBrowser { if (ui.button(tr("Refresh")) || (inFocus && ui.isKeyPressed && ui.key == kha.input.KeyCode.F5)) { refresh = true; } - hsearch.text = ui.textInput(hsearch, tr("Search")); - if (hsearch.text != "" && ui.button(tr("X"))) { + hsearch.text = ui.textInput(hsearch, tr("Search"), Align.Left, true, true); + if (ui.isHovered) ui.tooltip(tr("Press ctrl+f to search and esc to cancel")); + if (ui.isCtrlDown && ui.isKeyPressed && ui.key == KeyCode.F) { // start searching via ctrl+f + ui.startTextEdit(hsearch); + } + if (hsearch.text != "" && (ui.button(tr("X")) || ui.isEscapeDown)) { hsearch.text = ""; } ui.endSticky(); From 76e0d850c279793a16e1d6b0039798063a0a4367 Mon Sep 17 00:00:00 2001 From: MathemanFlo Date: Sat, 23 Apr 2022 18:24:47 +0200 Subject: [PATCH 2/2] Use live text input for node search --- Sources/arm/ui/UINodes.hx | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/Sources/arm/ui/UINodes.hx b/Sources/arm/ui/UINodes.hx index fa39c462..a7aadcb8 100644 --- a/Sources/arm/ui/UINodes.hx +++ b/Sources/arm/ui/UINodes.hx @@ -45,7 +45,6 @@ class UINodes { var recompileMatFinal = false; var nodeSearchSpawn: TNode = null; var nodeSearchOffset = 0; - var nodeSearchLast = ""; var lastCanvas: TNodeCanvas = null; var lastNodeSelected: TNode = null; var releaseLink = false; @@ -469,22 +468,16 @@ class UINodes { var first = true; UIMenu.draw(function(ui: Zui) { ui.fill(0, 0, ui._w / ui.SCALE(), ui.t.ELEMENT_H * 8, ui.t.SEPARATOR_COL); - ui.textInput(searchHandle, ""); + var search = ui.textInput(searchHandle, "", Left, true, true); ui.changed = false; if (first) { first = false; - ui.startTextEdit(searchHandle); // Focus search bar - ui.textSelected = searchHandle.text; searchHandle.text = ""; - nodeSearchLast = ""; + ui.startTextEdit(searchHandle); // Focus search bar } - var search = searchHandle.text; - if (ui.textSelected != "") search = ui.textSelected; - if (search != nodeSearchLast) { - nodeSearchOffset = 0; - nodeSearchLast = search; - } + if (searchHandle.changed) nodeSearchOffset = 0; + if (ui.isKeyPressed) { // Move selection if (ui.key == kha.input.KeyCode.Down && nodeSearchOffset < 6) nodeSearchOffset++; if (ui.key == kha.input.KeyCode.Up && nodeSearchOffset > 0) nodeSearchOffset--;