From f22e559e83a912f8f9f750daf278dd264b381cc6 Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Wed, 22 May 2024 20:45:37 -0500 Subject: [PATCH 1/4] Add slot spacing to uniform grid panel. --- .../Engine/UI/GUI/Panels/UniformGridPanel.cs | 56 ++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/Source/Engine/UI/GUI/Panels/UniformGridPanel.cs b/Source/Engine/UI/GUI/Panels/UniformGridPanel.cs index 6c112d9d5..2353a5d99 100644 --- a/Source/Engine/UI/GUI/Panels/UniformGridPanel.cs +++ b/Source/Engine/UI/GUI/Panels/UniformGridPanel.cs @@ -11,6 +11,7 @@ namespace FlaxEngine.GUI { private Margin _slotPadding; private int _slotsV, _slotsH; + private Float2 _slotSpacing; /// /// Gets or sets the padding given to each slot. @@ -62,11 +63,25 @@ namespace FlaxEngine.GUI } } + /// + /// Gets or sets grid slot spacing. + /// + [EditorOrder(30), Limit(0), Tooltip("The Grid slot spacing.")] + public Float2 SlotSpacing + { + get => _slotSpacing; + set + { + _slotSpacing = value; + PerformLayout(); + } + } + /// /// Initializes a new instance of the class. /// public UniformGridPanel() - : this(2) + : this(0) { } @@ -74,10 +89,11 @@ namespace FlaxEngine.GUI /// Initializes a new instance of the class. /// /// The slot padding. - public UniformGridPanel(float slotPadding = 2) + public UniformGridPanel(float slotPadding = 0) { AutoFocus = false; SlotPadding = new Margin(slotPadding); + SlotSpacing = new Float2(2); _slotsH = _slotsV = 5; } @@ -122,6 +138,42 @@ namespace FlaxEngine.GUI var slotBounds = new Rectangle(slotSize.X * x, slotSize.Y * y, slotSize.X, slotSize.Y); _slotPadding.ShrinkRectangle(ref slotBounds); + if (slotsV > 1) + { + if (y == 0) + { + slotBounds.Height -= _slotSpacing.Y * 0.5f * slotsV; + } + else if (y == slotsV - 1) + { + slotBounds.Height -= _slotSpacing.Y * 0.5f * slotsV; + slotBounds.Y += _slotSpacing.Y * 0.5f * slotsV; + } + else + { + slotBounds.Height -= _slotSpacing.Y * 0.5f * slotsV; + slotBounds.Y += _slotSpacing.Y * 0.5f; + } + } + + if (slotsH > 1) + { + if (x == 0) + { + slotBounds.Width -= _slotSpacing.X * 0.5f * slotsH; + } + else if (x == slotsH - 1) + { + slotBounds.Width -= _slotSpacing.X * 0.5f * slotsH; + slotBounds.X += _slotSpacing.X * 0.5f * slotsH; + } + else + { + slotBounds.Width -= _slotSpacing.X * 0.5f * slotsH; + slotBounds.X += _slotSpacing.X * 0.5f; + } + } + var c = _children[i++]; c.Bounds = slotBounds; } From 30c1068a13c18b704cb4966afe7575920933d919 Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Thu, 30 May 2024 08:38:42 -0500 Subject: [PATCH 2/4] Fix wrong spacing calculation. --- Source/Engine/UI/GUI/Panels/UniformGridPanel.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Source/Engine/UI/GUI/Panels/UniformGridPanel.cs b/Source/Engine/UI/GUI/Panels/UniformGridPanel.cs index 2353a5d99..80d96f7c2 100644 --- a/Source/Engine/UI/GUI/Panels/UniformGridPanel.cs +++ b/Source/Engine/UI/GUI/Panels/UniformGridPanel.cs @@ -142,16 +142,16 @@ namespace FlaxEngine.GUI { if (y == 0) { - slotBounds.Height -= _slotSpacing.Y * 0.5f * slotsV; + slotBounds.Height -= _slotSpacing.Y * 0.5f; } else if (y == slotsV - 1) { - slotBounds.Height -= _slotSpacing.Y * 0.5f * slotsV; - slotBounds.Y += _slotSpacing.Y * 0.5f * slotsV; + slotBounds.Height -= _slotSpacing.Y * 0.5f; + slotBounds.Y += _slotSpacing.Y * 0.5f; } else { - slotBounds.Height -= _slotSpacing.Y * 0.5f * slotsV; + slotBounds.Height -= _slotSpacing.Y; slotBounds.Y += _slotSpacing.Y * 0.5f; } } @@ -160,16 +160,16 @@ namespace FlaxEngine.GUI { if (x == 0) { - slotBounds.Width -= _slotSpacing.X * 0.5f * slotsH; + slotBounds.Width -= _slotSpacing.X * 0.5f; } else if (x == slotsH - 1) { - slotBounds.Width -= _slotSpacing.X * 0.5f * slotsH; - slotBounds.X += _slotSpacing.X * 0.5f * slotsH; + slotBounds.Width -= _slotSpacing.X * 0.5f; + slotBounds.X += _slotSpacing.X * 0.5f; } else { - slotBounds.Width -= _slotSpacing.X * 0.5f * slotsH; + slotBounds.Width -= _slotSpacing.X; slotBounds.X += _slotSpacing.X * 0.5f; } } From f3210608aefa28243d39661f31228feed3b2ef67 Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Thu, 30 May 2024 09:07:42 -0500 Subject: [PATCH 3/4] make color value box the same spacing as the others in the editor. --- Source/Editor/GUI/Input/ColorValueBox.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Editor/GUI/Input/ColorValueBox.cs b/Source/Editor/GUI/Input/ColorValueBox.cs index ec437ad5a..1531266e3 100644 --- a/Source/Editor/GUI/Input/ColorValueBox.cs +++ b/Source/Editor/GUI/Input/ColorValueBox.cs @@ -130,7 +130,7 @@ namespace FlaxEditor.GUI.Input base.Draw(); var style = Style.Current; - var r = new Rectangle(2, 2, Width - 4, Height - 4); + var r = new Rectangle(0, 0, Width, Height); Render2D.FillRectangle(r, _value); Render2D.DrawRectangle(r, IsMouseOver || IsNavFocused ? style.BackgroundSelected : Color.Black); From cdd53f09b92c5dddd143f8c44f27588cb21eff4a Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Thu, 30 May 2024 10:01:32 -0500 Subject: [PATCH 4/4] Add extra spacing for transform properties. --- .../Editors/ActorTransformEditor.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Source/Editor/CustomEditors/Editors/ActorTransformEditor.cs b/Source/Editor/CustomEditors/Editors/ActorTransformEditor.cs index 3794bffc8..e341d4d4f 100644 --- a/Source/Editor/CustomEditors/Editors/ActorTransformEditor.cs +++ b/Source/Editor/CustomEditors/Editors/ActorTransformEditor.cs @@ -41,6 +41,13 @@ namespace FlaxEditor.CustomEditors.Editors public override void Initialize(LayoutElementsContainer layout) { base.Initialize(layout); + + if (XElement.ValueBox.Parent is UniformGridPanel ug) + { + ug.Height += 2; + ug.SlotSpacing = new Float2(4); + ug.SlotPadding = new Margin(0, 0, 1, 1); + } // Override colors var back = FlaxEngine.GUI.Style.Current.TextBoxBackground; @@ -66,6 +73,13 @@ namespace FlaxEditor.CustomEditors.Editors public override void Initialize(LayoutElementsContainer layout) { base.Initialize(layout); + + if (XElement.ValueBox.Parent is UniformGridPanel ug) + { + ug.Height += 2; + ug.SlotSpacing = new Float2(4); + ug.SlotPadding = new Margin(0, 0, 1, 1); + } // Override colors var back = FlaxEngine.GUI.Style.Current.TextBoxBackground; @@ -122,6 +136,13 @@ namespace FlaxEditor.CustomEditors.Editors menu.AddButton("Link", ToggleLink).LinkTooltip("Links scale components for uniform scaling"); }; } + + if (XElement.ValueBox.Parent is UniformGridPanel ug) + { + ug.Height += 2; + ug.SlotSpacing = new Float2(4); + ug.SlotPadding = new Margin(0, 0, 1, 1); + } // Override colors var back = FlaxEngine.GUI.Style.Current.TextBoxBackground;