Add color box to ColorTrackBall.
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using FlaxEditor.CustomEditors.Elements;
|
using FlaxEditor.CustomEditors.Elements;
|
||||||
using FlaxEditor.GUI.Dialogs;
|
using FlaxEditor.GUI.Dialogs;
|
||||||
|
using FlaxEditor.GUI.Input;
|
||||||
using FlaxEngine;
|
using FlaxEngine;
|
||||||
using FlaxEngine.GUI;
|
using FlaxEngine.GUI;
|
||||||
|
|
||||||
@@ -17,6 +18,7 @@ namespace FlaxEditor.CustomEditors.Editors
|
|||||||
private FloatValueElement _yElement;
|
private FloatValueElement _yElement;
|
||||||
private FloatValueElement _zElement;
|
private FloatValueElement _zElement;
|
||||||
private FloatValueElement _wElement;
|
private FloatValueElement _wElement;
|
||||||
|
private ColorValueBox _colorBox;
|
||||||
private CustomElement<ColorSelector> _trackball;
|
private CustomElement<ColorSelector> _trackball;
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
@@ -53,7 +55,7 @@ namespace FlaxEditor.CustomEditors.Editors
|
|||||||
gridControl.SlotPadding = new Margin(4, 2, 2, 2);
|
gridControl.SlotPadding = new Margin(4, 2, 2, 2);
|
||||||
gridControl.ClipChildren = false;
|
gridControl.ClipChildren = false;
|
||||||
gridControl.SlotsHorizontally = 1;
|
gridControl.SlotsHorizontally = 1;
|
||||||
gridControl.SlotsVertically = 4;
|
gridControl.SlotsVertically = 5;
|
||||||
|
|
||||||
LimitAttribute limit = null;
|
LimitAttribute limit = null;
|
||||||
var attributes = Values.GetAttributes();
|
var attributes = Values.GetAttributes();
|
||||||
@@ -61,7 +63,8 @@ namespace FlaxEditor.CustomEditors.Editors
|
|||||||
{
|
{
|
||||||
limit = (LimitAttribute)attributes.FirstOrDefault(x => x is LimitAttribute);
|
limit = (LimitAttribute)attributes.FirstOrDefault(x => x is LimitAttribute);
|
||||||
}
|
}
|
||||||
|
_colorBox = grid.Custom<ColorValueBox>().CustomControl;
|
||||||
|
_colorBox.ValueChanged += OnColorBoxChanged;
|
||||||
_xElement = CreateFloatEditor(grid, limit, Color.Red);
|
_xElement = CreateFloatEditor(grid, limit, Color.Red);
|
||||||
_yElement = CreateFloatEditor(grid, limit, Color.Green);
|
_yElement = CreateFloatEditor(grid, limit, Color.Green);
|
||||||
_zElement = CreateFloatEditor(grid, limit, Color.Blue);
|
_zElement = CreateFloatEditor(grid, limit, Color.Blue);
|
||||||
@@ -93,6 +96,13 @@ namespace FlaxEditor.CustomEditors.Editors
|
|||||||
SetValue(value, token);
|
SetValue(value, token);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnColorBoxChanged()
|
||||||
|
{
|
||||||
|
var token = _colorBox.IsSliding ? this : null;
|
||||||
|
var color = _colorBox.Value;
|
||||||
|
SetValue(new Float4(color.R, color.G, color.B, color.A), token);
|
||||||
|
}
|
||||||
|
|
||||||
private void OnValueChanged()
|
private void OnValueChanged()
|
||||||
{
|
{
|
||||||
if (IsSetBlocked)
|
if (IsSetBlocked)
|
||||||
@@ -130,6 +140,7 @@ namespace FlaxEditor.CustomEditors.Editors
|
|||||||
_yElement.Value = color.Y;
|
_yElement.Value = color.Y;
|
||||||
_zElement.Value = color.Z;
|
_zElement.Value = color.Z;
|
||||||
_wElement.Value = scale;
|
_wElement.Value = scale;
|
||||||
|
_colorBox.Value = new Color(color.X, color.Y, color.Z, scale);
|
||||||
_trackball.CustomControl.Color = Float3.Abs(color);
|
_trackball.CustomControl.Color = Float3.Abs(color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user