destroyed proj
This commit is contained in:
86
Packages/SzafaKit/Editor/VisualElements/CVarPropertyField.cs
Normal file
86
Packages/SzafaKit/Editor/VisualElements/CVarPropertyField.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
using UnityEditor;
|
||||
using UnityEditor.UIElements;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace SzafaKitEditor.VisualElements {
|
||||
public class CVarPropertyField : VisualElement {
|
||||
private SerializedProperty _cvarProperty;
|
||||
private SerializedProperty _nameProperty;
|
||||
private SerializedProperty _defaultValueProperty;
|
||||
private SerializedProperty _defaultValueKindProperty;
|
||||
private SerializedProperty _defaultValueNumberProperty;
|
||||
private SerializedProperty _defaultValueStringProperty;
|
||||
|
||||
private VisualElement _details;
|
||||
|
||||
private bool _expand;
|
||||
|
||||
public CVarPropertyField(SerializedProperty cvarProperty) {
|
||||
_cvarProperty = cvarProperty;
|
||||
_nameProperty = _cvarProperty.FindPropertyRelative("Name");
|
||||
_defaultValueProperty = _cvarProperty.FindPropertyRelative("DefaultValue");
|
||||
_defaultValueKindProperty = _defaultValueProperty.FindPropertyRelative("Kind");
|
||||
_defaultValueNumberProperty = _defaultValueProperty.FindPropertyRelative("NumberValue");
|
||||
_defaultValueStringProperty = _defaultValueProperty.FindPropertyRelative("StringValue");
|
||||
|
||||
CreateInlineField();
|
||||
CreateDetailsBox();
|
||||
}
|
||||
|
||||
private void CreateInlineField() {
|
||||
VisualElement box = new VisualElement() {
|
||||
style = {
|
||||
height = 48
|
||||
}
|
||||
};
|
||||
|
||||
Label nameLabel = new Label("NAME") {
|
||||
style = {
|
||||
unityFontStyleAndWeight = FontStyle.Bold,
|
||||
backgroundColor = new Color(0.1f, 0.1f, 0.1f, 1.0f)
|
||||
}
|
||||
};
|
||||
box.Add(nameLabel);
|
||||
|
||||
Button button = new(ToggleDetails) {
|
||||
text = "...",
|
||||
style = {
|
||||
width = new StyleLength(new Length(64.0f, LengthUnit.Pixel)),
|
||||
height = new StyleLength(new Length(64.0f, LengthUnit.Pixel)),
|
||||
}
|
||||
};
|
||||
box.Add(button);
|
||||
|
||||
Add(box);
|
||||
}
|
||||
|
||||
private void ToggleDetails() {
|
||||
_expand = !_expand;
|
||||
_details.visible = _expand;
|
||||
_details.style.display = DisplayStyle.None;
|
||||
}
|
||||
|
||||
private void CreateDetailsBox() {
|
||||
PropertyField nameField = new(_nameProperty);
|
||||
PropertyField defaultValueKindField = new(_defaultValueKindProperty);
|
||||
PropertyField numberField = new(_defaultValueNumberProperty);
|
||||
PropertyField stringField = new(_defaultValueStringProperty);
|
||||
|
||||
_details = new VisualElement() {
|
||||
style = {
|
||||
backgroundColor = new Color(0.1f, 0.1f, 0.1f, 1.0f),
|
||||
}
|
||||
};
|
||||
_details.Add(nameField);
|
||||
_details.Add(defaultValueKindField);
|
||||
_details.Add(numberField);
|
||||
_details.Add(stringField);
|
||||
|
||||
_details.visible = false;
|
||||
_details.style.display = DisplayStyle.None;
|
||||
|
||||
Add(_details);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user