133 lines
3.5 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|