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; 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); diff --git a/Source/Engine/UI/GUI/Panels/UniformGridPanel.cs b/Source/Engine/UI/GUI/Panels/UniformGridPanel.cs index 6c112d9d5..80d96f7c2 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; + } + else if (y == slotsV - 1) + { + slotBounds.Height -= _slotSpacing.Y * 0.5f; + slotBounds.Y += _slotSpacing.Y * 0.5f; + } + else + { + slotBounds.Height -= _slotSpacing.Y; + slotBounds.Y += _slotSpacing.Y * 0.5f; + } + } + + if (slotsH > 1) + { + if (x == 0) + { + slotBounds.Width -= _slotSpacing.X * 0.5f; + } + else if (x == slotsH - 1) + { + slotBounds.Width -= _slotSpacing.X * 0.5f; + slotBounds.X += _slotSpacing.X * 0.5f; + } + else + { + slotBounds.Width -= _slotSpacing.X; + slotBounds.X += _slotSpacing.X * 0.5f; + } + } + var c = _children[i++]; c.Bounds = slotBounds; }