Merge remote-tracking branch 'origin/master' into 1.6

This commit is contained in:
Wojtek Figat
2023-04-13 12:12:33 +02:00
22 changed files with 131 additions and 38 deletions

View File

@@ -127,12 +127,34 @@ namespace FlaxEditor.Surface.ContextMenu
_parameterSetNodeArchetype = info.ParameterSetNodeArchetype ?? Archetypes.Parameters.Nodes[3];
// Context menu dimensions
Size = new Float2(320, 220);
Size = new Float2(320, 248);
var headerPanel = new Panel(ScrollBars.None)
{
Parent = this,
Height = 20,
Width = Width - 4,
X = 2,
Y = 1,
BackgroundColor = Style.Current.BackgroundNormal,
};
// Title bar
var titleLabel = new Label
{
Width = Width - 8,
Height = 20,
X = 4,
Parent = headerPanel,
Text = "Select Node",
HorizontalAlignment = TextAlignment.Center,
Font = new FontReference(Style.Current.FontLarge.Asset, 10),
};
// Search box
_searchBox = new SearchBox(false, 1, 1)
_searchBox = new SearchBox(false, 2, 22)
{
Width = Width - 3,
Width = Width - 4,
Parent = this
};
_searchBox.TextChanged += OnSearchFilterChanged;
@@ -549,6 +571,8 @@ namespace FlaxEditor.Surface.ContextMenu
};
var group = CreateGroup(groupArchetype);
group.ArrowImageOpened = new SpriteBrush(Style.Current.ArrowDown);
group.ArrowImageClosed = new SpriteBrush(Style.Current.ArrowRight);
group.Close(false);
archetypeIndex = 0;
for (int i = 0; i < parameters.Count; i++)

View File

@@ -46,6 +46,11 @@ namespace FlaxEditor.Surface.ContextMenu
ContextMenu = cm;
Archetypes.Add(archetype);
Name = archetype.Name;
EnableDropDownIcon = true;
HeaderColor = Style.Current.Background;
ArrowImageOpened = new SpriteBrush(Style.Current.ArrowDown);
ArrowImageClosed = new SpriteBrush(Style.Current.ArrowRight);
CloseAnimationTime = 0;
}
/// <summary>

View File

@@ -87,6 +87,11 @@ namespace FlaxEditor.Surface.ContextMenu
SortScore += 5;
}
private void GetTextRectangle(out Rectangle textRect)
{
textRect = new Rectangle(22, 0, Width - 24, Height);
}
private bool CanConnectTo(Box startBox, NodeArchetype nodeArchetype)
{
if (startBox == null)
@@ -123,6 +128,7 @@ namespace FlaxEditor.Surface.ContextMenu
}
else
{
GetTextRectangle(out var textRect);
if (QueryFilterHelper.Match(filterText, _archetype.Title, out var ranges))
{
// Update highlights
@@ -136,7 +142,7 @@ namespace FlaxEditor.Surface.ContextMenu
{
var start = font.GetCharPosition(_archetype.Title, ranges[i].StartIndex);
var end = font.GetCharPosition(_archetype.Title, ranges[i].EndIndex);
_highlights.Add(new Rectangle(start.X + 2, 0, end.X - start.X, Height));
_highlights.Add(new Rectangle(start.X + textRect.X, 0, end.X - start.X, Height));
if (ranges[i].StartIndex <= 0)
{
@@ -158,7 +164,7 @@ namespace FlaxEditor.Surface.ContextMenu
var font = style.FontSmall;
var start = font.GetCharPosition(_archetype.Title, 0);
var end = font.GetCharPosition(_archetype.Title, _archetype.Title.Length - 1);
_highlights.Add(new Rectangle(start.X + 2, 0, end.X - start.X, Height));
_highlights.Add(new Rectangle(start.X + textRect.X, 0, end.X - start.X, Height));
_isFullMatch = true;
Visible = true;
}
@@ -173,7 +179,7 @@ namespace FlaxEditor.Surface.ContextMenu
var font = style.FontSmall;
var start = font.GetCharPosition(_archetype.Title, 0);
var end = font.GetCharPosition(_archetype.Title, _archetype.Title.Length - 1);
_highlights.Add(new Rectangle(start.X + 2, 0, end.X - start.X, Height));
_highlights.Add(new Rectangle(start.X + textRect.X, 0, end.X - start.X, Height));
Visible = true;
Data = data;
@@ -192,7 +198,7 @@ namespace FlaxEditor.Surface.ContextMenu
{
var style = Style.Current;
var rect = new Rectangle(Float2.Zero, Size);
var textRect = new Rectangle(2, 0, rect.Width - 4, rect.Height);
GetTextRectangle(out var textRect);
var showScoreHit = SortScore > 0.1f;
// Overlay