Files
FlaxEngine/Source/Editor/Surface/Elements/EnumValue.cs

53 lines
1.5 KiB
C#

// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
using System;
using FlaxEditor.GUI;
using FlaxEngine.Utilities;
namespace FlaxEditor.Surface.Elements
{
/// <summary>
/// Combo box for enum element.
/// </summary>
/// <seealso cref="EnumComboBox" />
/// <seealso cref="ISurfaceNodeElement" />
/// [HideInEditor]
public class EnumValue : EnumComboBox, ISurfaceNodeElement
{
/// <inheritdoc />
public SurfaceNode ParentNode { get; }
/// <inheritdoc />
public NodeElementArchetype Archetype { get; }
/// <summary>
/// Gets the surface.
/// </summary>
public VisjectSurface Surface => ParentNode.Surface;
/// <inheritdoc />
public EnumValue(SurfaceNode parentNode, NodeElementArchetype archetype)
: base(TypeUtils.GetType(archetype.Text).Type)
{
X = archetype.ActualPositionX;
Y = archetype.ActualPositionY;
Width = archetype.Size.X;
ParentNode = parentNode;
Archetype = archetype;
Value = Convert.ToInt32(ParentNode.Values[Archetype.ValueIndex]);
}
/// <inheritdoc />
protected override void OnValueChanged()
{
if (Convert.ToInt32(ParentNode.Values[Archetype.ValueIndex]) != (int)Value)
{
// Edit value
ParentNode.SetValue(Archetype.ValueIndex, Value);
}
base.OnValueChanged();
}
}
}