first commit
This commit is contained in:
55
NitroxClient/Debuggers/Drawer/UnityUI/LayoutElementDrawer.cs
Normal file
55
NitroxClient/Debuggers/Drawer/UnityUI/LayoutElementDrawer.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace NitroxClient.Debuggers.Drawer.UnityUI;
|
||||
|
||||
public class LayoutElementDrawer : IDrawer<LayoutElement>
|
||||
{
|
||||
private const float LABEL_WIDTH = 100;
|
||||
|
||||
public void Draw(LayoutElement layoutElement)
|
||||
{
|
||||
using (new GUILayout.HorizontalScope())
|
||||
{
|
||||
GUILayout.Label("Ignore Layout", NitroxGUILayout.DrawerLabel, GUILayout.Width(LABEL_WIDTH));
|
||||
NitroxGUILayout.Separator();
|
||||
layoutElement.ignoreLayout = NitroxGUILayout.BoolField(layoutElement.ignoreLayout);
|
||||
}
|
||||
|
||||
GUILayout.Space(8f);
|
||||
|
||||
layoutElement.minWidth = DrawToggleableFloat("Min Width", layoutElement.minWidth);
|
||||
layoutElement.minHeight = DrawToggleableFloat("Min Height", layoutElement.minHeight);
|
||||
|
||||
layoutElement.preferredWidth = DrawToggleableFloat("Preferred Width", layoutElement.preferredWidth);
|
||||
layoutElement.preferredHeight = DrawToggleableFloat("Preferred Height", layoutElement.preferredHeight);
|
||||
|
||||
layoutElement.flexibleWidth = DrawToggleableFloat("Flexible Width", layoutElement.flexibleWidth);
|
||||
layoutElement.flexibleHeight = DrawToggleableFloat("Flexible Height", layoutElement.flexibleHeight);
|
||||
|
||||
using (new GUILayout.HorizontalScope())
|
||||
{
|
||||
GUILayout.Label("Layout Priority", NitroxGUILayout.DrawerLabel, GUILayout.Width(LABEL_WIDTH));
|
||||
NitroxGUILayout.Separator();
|
||||
layoutElement.layoutPriority = NitroxGUILayout.IntField(layoutElement.layoutPriority);
|
||||
}
|
||||
}
|
||||
|
||||
private static float DrawToggleableFloat(string name, float value)
|
||||
{
|
||||
using (new GUILayout.HorizontalScope())
|
||||
{
|
||||
GUILayout.Label(name, NitroxGUILayout.DrawerLabel, GUILayout.Width(LABEL_WIDTH));
|
||||
NitroxGUILayout.Separator();
|
||||
|
||||
bool active = value >= 0;
|
||||
if (GUILayout.Button(active ? "X" : " ", GUILayout.Width(25)))
|
||||
{
|
||||
value = active ? -1 : 0;
|
||||
}
|
||||
|
||||
return Math.Max(-1, NitroxGUILayout.FloatField(value));
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user