namespace UIWidgets { using UIWidgets.Styles; using UnityEngine; /// /// PickerStringV2. /// public class PickerStringV2 : Picker { /// /// ListView. /// [SerializeField] public ListViewString ListView; /// /// Prepare picker to open. /// /// Default value. public override void BeforeOpen(string defaultValue) { ListView.SelectedIndex = ListView.DataSource.IndexOf(defaultValue); ListView.OnSelectObject.AddListener(ListViewCallback); } void ListViewCallback(int index) { var value = ListView.DataSource[index]; Selected(value); } /// /// Prepare picker to close. /// public override void BeforeClose() { ListView.OnSelectObject.RemoveListener(ListViewCallback); } #region IStylable implementation /// public override bool SetStyle(Style style) { base.SetStyle(style); ListView.SetStyle(style); style.Dialog.Button.ApplyTo(transform.Find("Buttons/Cancel")); return true; } /// public override bool GetStyle(Style style) { base.GetStyle(style); ListView.GetStyle(style); style.Dialog.Button.GetFrom(transform.Find("Buttons/Cancel")); return true; } #endregion } }