diff --git a/Source/Editor/GUI/ItemsListContextMenu.cs b/Source/Editor/GUI/ItemsListContextMenu.cs
index 458db481f..cf0ce83ac 100644
--- a/Source/Editor/GUI/ItemsListContextMenu.cs
+++ b/Source/Editor/GUI/ItemsListContextMenu.cs
@@ -134,9 +134,13 @@ namespace FlaxEditor.GUI
Render2D.FillRectangle(rect, color);
}
}
+ // Indent for drop panel items is handled by drop panel margin
+ var indent = Float2.Zero;
+ if (Parent is not DropPanel)
+ indent = new Float2(Editor.Instance.Icons.ArrowRight12.Size.X + 2, 0);
// Draw name
- Render2D.DrawText(style.FontSmall, Name, textRect, TintColor * (Enabled ? style.Foreground : style.ForegroundDisabled), TextAlignment.Near, TextAlignment.Center);
+ Render2D.DrawText(style.FontSmall, Name, textRect + indent, TintColor * (Enabled ? style.Foreground : style.ForegroundDisabled), TextAlignment.Near, TextAlignment.Center);
}
///
@@ -262,6 +266,10 @@ namespace FlaxEditor.GUI
}
}
category.Visible = anyVisible;
+ if (string.IsNullOrEmpty(_searchBox.Text))
+ category.Close(false);
+ else
+ category.Open(false);
}
}
@@ -338,9 +346,14 @@ namespace FlaxEditor.GUI
var categoryPanel = new DropPanel
{
HeaderText = item.Category,
+ ArrowImageOpened = new SpriteBrush(Editor.Instance.Icons.ArrowDown12),
+ ArrowImageClosed = new SpriteBrush(Editor.Instance.Icons.ArrowRight12),
+ EnableDropDownIcon = true,
+ ItemsMargin = new Margin(28, 0, 2, 2),
+ HeaderColor = Style.Current.Background,
Parent = parent,
};
- categoryPanel.Open(false);
+ categoryPanel.Close(false);
_categoryPanels.Add(categoryPanel);
parent = categoryPanel;
}
@@ -382,6 +395,7 @@ namespace FlaxEditor.GUI
item2.UpdateFilter(null);
}
category.Visible = true;
+ category.Close(false);
}
}
diff --git a/Source/Engine/AI/Behavior.h b/Source/Engine/AI/Behavior.h
index 5eae813d3..20bc1f715 100644
--- a/Source/Engine/AI/Behavior.h
+++ b/Source/Engine/AI/Behavior.h
@@ -11,7 +11,7 @@
///
/// Behavior instance script that runs Behavior Tree execution.
///
-API_CLASS() class FLAXENGINE_API Behavior : public Script
+API_CLASS(Attributes="Category(\"Flax Engine\")") class FLAXENGINE_API Behavior : public Script
{
API_AUTO_SERIALIZATION();
DECLARE_SCRIPTING_TYPE(Behavior);
diff --git a/Source/Engine/Networking/Components/NetworkTransform.h b/Source/Engine/Networking/Components/NetworkTransform.h
index 4f3a44d88..6351201b6 100644
--- a/Source/Engine/Networking/Components/NetworkTransform.h
+++ b/Source/Engine/Networking/Components/NetworkTransform.h
@@ -10,7 +10,7 @@
/// Actor script component that synchronizes the Transform over the network.
///
/// Interpolation and prediction logic based on https://www.gabrielgambetta.com/client-server-game-architecture.html.
-API_CLASS(Namespace="FlaxEngine.Networking") class FLAXENGINE_API NetworkTransform : public Script, public INetworkSerializable
+API_CLASS(Namespace="FlaxEngine.Networking", Attributes="Category(\"Flax Engine\")") class FLAXENGINE_API NetworkTransform : public Script, public INetworkSerializable
{
API_AUTO_SERIALIZATION();
DECLARE_SCRIPTING_TYPE(NetworkTransform);