|
@@ -0,0 +1,59 @@
|
|
|
|
+using System;
|
|
|
|
+using UnityEngine;
|
|
|
|
+
|
|
|
|
+namespace COM3D2.MeidoPhotoStudio.Plugin
|
|
|
|
+{
|
|
|
|
+ internal class ComboBox : BaseControl
|
|
|
|
+ {
|
|
|
|
+ private TextField textField = new TextField();
|
|
|
|
+ public Dropdown BaseDropDown { get; private set; }
|
|
|
|
+ public string Value
|
|
|
|
+ {
|
|
|
|
+ get => textField.Value;
|
|
|
|
+ set => textField.Value = value;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public ComboBox(string[] itemList)
|
|
|
|
+ {
|
|
|
|
+ this.BaseDropDown = new Dropdown("▾", itemList);
|
|
|
|
+ this.BaseDropDown.SelectionChange += (s, a) => textField.Value = BaseDropDown.SelectedItem;
|
|
|
|
+ this.Value = itemList[0];
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void SetDropdownItems(string[] itemList)
|
|
|
|
+ {
|
|
|
|
+ string oldValue = this.Value;
|
|
|
|
+ BaseDropDown.SetDropdownItems(itemList);
|
|
|
|
+ this.Value = oldValue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void SetDropdownItem(int index, string newItem) => BaseDropDown.SetDropdownItem(index, newItem);
|
|
|
|
+
|
|
|
|
+ public void SetDropdownItem(string newItem) => BaseDropDown.SetDropdownItem(newItem);
|
|
|
|
+
|
|
|
|
+ public void Draw(float buttonSize, GUIStyle textFieldStyle, params GUILayoutOption[] layoutOptions)
|
|
|
|
+ {
|
|
|
|
+ GUILayout.BeginHorizontal();
|
|
|
|
+ textField.Draw(textFieldStyle, layoutOptions);
|
|
|
|
+ GUIStyle buttonStyle = new GUIStyle(GUI.skin.button);
|
|
|
|
+ buttonStyle.alignment = TextAnchor.MiddleCenter;
|
|
|
|
+ BaseDropDown.Draw(buttonStyle, GUILayout.Width(buttonSize), GUILayout.Height(buttonSize));
|
|
|
|
+ GUILayout.EndHorizontal();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void Draw(float buttonSize, params GUILayoutOption[] layoutOptions)
|
|
|
|
+ {
|
|
|
|
+ Draw(buttonSize, new GUIStyle(GUI.skin.textField), layoutOptions);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public override void Draw(params GUILayoutOption[] layoutOptions)
|
|
|
|
+ {
|
|
|
|
+ GUILayout.BeginHorizontal();
|
|
|
|
+ textField.Draw(new GUIStyle(GUI.skin.textField), layoutOptions);
|
|
|
|
+ GUIStyle buttonStyle = new GUIStyle(GUI.skin.button);
|
|
|
|
+ buttonStyle.alignment = TextAnchor.MiddleCenter;
|
|
|
|
+ BaseDropDown.Draw(buttonStyle, GUILayout.ExpandWidth(false));
|
|
|
|
+ GUILayout.EndHorizontal();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|