From 69a298e5b70a138ee0f33a5e73a372b4c77d613e Mon Sep 17 00:00:00 2001 From: nekobako Date: Sun, 29 Sep 2024 19:06:28 +0900 Subject: [PATCH] feat: replace checkboxes in ObjectToggle with dropdowns --- .../ObjectToggle/ObjectSwitcherStyles.uss | 12 ++++++++---- .../ObjectToggle/ToggledObjectEditor.cs | 18 ++++++++++++++++++ .../ObjectToggle/ToggledObjectEditor.uxml | 3 ++- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/Editor/Inspector/ObjectToggle/ObjectSwitcherStyles.uss b/Editor/Inspector/ObjectToggle/ObjectSwitcherStyles.uss index e304365a..d4bdedc5 100644 --- a/Editor/Inspector/ObjectToggle/ObjectSwitcherStyles.uss +++ b/Editor/Inspector/ObjectToggle/ObjectSwitcherStyles.uss @@ -39,14 +39,18 @@ margin: 0; } -#f-active { - justify-content: center; -} - #f-object { flex-grow: 1; } +#f-active { + display: none; +} + +#f-active-dropdown { + width: 60px; +} + .drop-area--drag-active > ListView ScrollView { background-color: rgba(0, 255, 255, 0.1); } diff --git a/Editor/Inspector/ObjectToggle/ToggledObjectEditor.cs b/Editor/Inspector/ObjectToggle/ToggledObjectEditor.cs index cdb3e622..3bd1719e 100644 --- a/Editor/Inspector/ObjectToggle/ToggledObjectEditor.cs +++ b/Editor/Inspector/ObjectToggle/ToggledObjectEditor.cs @@ -15,6 +15,9 @@ namespace nadena.dev.modular_avatar.core.editor.ShapeChanger private const string UxmlPath = Root + "ToggledObjectEditor.uxml"; private const string UssPath = Root + "ObjectSwitcherStyles.uss"; + private const string V_On = "ON"; + private const string V_Off = "OFF"; + public override VisualElement CreatePropertyGUI(SerializedProperty property) { var uxml = AssetDatabase.LoadAssetAtPath(UxmlPath).CloneTree(); @@ -24,6 +27,21 @@ namespace nadena.dev.modular_avatar.core.editor.ShapeChanger uxml.styleSheets.Add(uss); uxml.BindProperty(property); + var f_active = uxml.Q("f-active"); + var f_active_dropdown = uxml.Q("f-active-dropdown"); + + f_active_dropdown.choices.Add(V_On); + f_active_dropdown.choices.Add(V_Off); + + f_active.RegisterValueChangedCallback(evt => + { + f_active_dropdown.SetValueWithoutNotify(evt.newValue ? V_On : V_Off); + }); + f_active_dropdown.RegisterValueChangedCallback(evt => + { + f_active.value = evt.newValue == V_On; + }); + return uxml; } } diff --git a/Editor/Inspector/ObjectToggle/ToggledObjectEditor.uxml b/Editor/Inspector/ObjectToggle/ToggledObjectEditor.uxml index 0705c9b5..d3498e82 100644 --- a/Editor/Inspector/ObjectToggle/ToggledObjectEditor.uxml +++ b/Editor/Inspector/ObjectToggle/ToggledObjectEditor.uxml @@ -1,6 +1,7 @@  - + +