arenos-nexus/Arenos Nexus/Library/PackageCache/com.unity.collab-proxy@ab839cc7d2ad/Editor/UI/EntryBuilder.cs
Daniel 2e704cae70 init
Init Commit Unity
2025-09-25 22:01:28 +02:00

133 lines
3.5 KiB
C#

using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace Unity.PlasticSCM.Editor.UI
{
internal static class EntryBuilder
{
internal static string CreateTextEntry(
string label,
string value,
float width,
float x)
{
return CreateTextEntry(
label,
value,
null,
width,
x);
}
internal static string CreateTextEntry(
string label,
string value,
string controlName,
float width,
float x)
{
using (new EditorGUILayout.HorizontalScope())
{
CreateLabel(label);
GUILayout.FlexibleSpace();
var rt = GUILayoutUtility.GetRect(
new GUIContent(value), UnityStyles.Dialog.EntryLabel);
rt.width = width;
rt.x = x;
if (!string.IsNullOrEmpty(controlName))
GUI.SetNextControlName(controlName);
return GUI.TextField(rt, value);
}
}
internal static string CreatePasswordEntry(
string label,
string value,
float width,
float x)
{
using (new EditorGUILayout.HorizontalScope())
{
CreateLabel(label);
GUILayout.FlexibleSpace();
var rt = GUILayoutUtility.GetRect(
new GUIContent(value), UnityStyles.Dialog.EntryLabel);
rt.width = width;
rt.x = x;
return GUI.PasswordField(rt, value, '*');
}
}
internal static bool CreateToggleEntry(
string label,
bool value,
float width,
float x)
{
var rt = GUILayoutUtility.GetRect(
new GUIContent(label), UnityStyles.Dialog.EntryLabel);
rt.width = width;
rt.x = x;
return GUI.Toggle(rt, value, label);
}
internal static bool CreateToggleEntry(
string label,
bool value)
{
var rt = GUILayoutUtility.GetRect(
new GUIContent(label), UnityStyles.Dialog.EntryLabel);
return GUI.Toggle(rt, value, label);
}
internal static string CreateComboBoxEntry(
string label,
string value,
List<string> dropDownOptions,
GenericMenu.MenuFunction2 optionSelected,
float width,
float x)
{
using (new EditorGUILayout.HorizontalScope())
{
CreateLabel(label);
GUILayout.FlexibleSpace();
var rt = GUILayoutUtility.GetRect(
new GUIContent(value), UnityStyles.Dialog.EntryLabel);
rt.width = width;
rt.x = x;
return DropDownTextField.DoDropDownTextField(
value,
label,
dropDownOptions,
optionSelected,
rt);
}
}
static void CreateLabel(string labelText)
{
GUIContent labelContent = new GUIContent(labelText);
GUIStyle labelStyle = UnityStyles.Dialog.EntryLabel;
Rect rt = GUILayoutUtility.GetRect(labelContent, labelStyle);
GUI.Label(rt, labelText, EditorStyles.label);
}
}
}