Skip to content

Commit abbf60a

Browse files
[hui] Added support for highlighting result in menu search
1 parent 6be3ef9 commit abbf60a

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

hrt/ui/HuiMenu.hx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class HuiMenu extends HuiPopup {
6868

6969
function regenerateElements() {
7070
var filteredList = items;
71+
var coloredText: Map<{}, String> = [];
7172
if (searchBar.visible) {
7273
var query = hide.Search.createSearchQuery(searchBar.text);
7374
if (minWidth == null) {
@@ -90,6 +91,8 @@ class HuiMenu extends HuiPopup {
9091

9192
var ranges = hide.Search.computeSearchRanges(item.label, query, false);
9293
if (ranges != null) {
94+
var remap = hide.Search.splitSearchRanges(item.label, ranges, "<h>", "</h>");
95+
coloredText.set(cast item, remap);
9396
filteredList.push(item);
9497
}
9598
}
@@ -121,7 +124,7 @@ class HuiMenu extends HuiPopup {
121124
submenu.close();
122125

123126
for (item in filteredList) {
124-
var itemElement = new HuiMenuItem(item, itemsContainer);
127+
var itemElement = new HuiMenuItem(item, coloredText.get(cast item), itemsContainer);
125128
itemElement.onOver = (e) -> {
126129
e.propagate = true;
127130
openTimer?.stop();
@@ -329,7 +332,7 @@ class HuiMenuItem extends HuiElement {
329332
function get_contextMenu() : HuiMenu {return Std.downcast(parent.parent, HuiMenu);};
330333

331334

332-
public function new(item: MenuItem, ?parent: h2d.Object) {
335+
public function new(item: MenuItem, ?nameOverride: String, ?parent: h2d.Object) {
333336
super(parent);
334337
this.item = item;
335338
initComponent();
@@ -351,7 +354,7 @@ class HuiMenuItem extends HuiElement {
351354
}
352355

353356
if (item.label != null) {
354-
var ftmText = new HuiText(item.label, content);
357+
var ftmText = new HuiText(nameOverride ?? item.label, content);
355358
}
356359

357360
if (item.menu != null) {

hrt/ui/HuiText.hx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ class HuiText extends h2d.HtmlText #if hui implements h2d.domkit.Object #end {
1010
super(hxd.res.DefaultFont.get(), parent);
1111
initComponent();
1212
this.text = text;
13+
14+
// Highlight text
15+
defineHtmlTag("h", 0x3185ce);
1316
}
1417
}
15-
1618
#end

0 commit comments

Comments
 (0)