using System; using UnityEngine; using UnityEngine.UIElements; namespace UnityEditor.Purchasing { class IMGUIContainerPopupAdapter { public int index; public string[] options; public Action popupValueChangedAction { get; set; } public IMGUIContainer container { get => m_Container; set { m_Container = value; if (m_Container != null) { m_Container.onGUIHandler = OnGUI; } } } Rect m_Position; IMGUIContainer m_Container; void OnGUI() { Layout(); var choice = DrawPopup(); HandleChoice(choice); } void Layout() { if (m_Position.width == 0 || m_Position.height == 0) { m_Position = new Rect(0, 0, m_Container.resolvedStyle.width, m_Container .resolvedStyle.height); } } int DrawPopup() { return EditorGUI.Popup( m_Position, index, options); } void HandleChoice(int choice) { if (choice != index) { index = choice; popupValueChangedAction(options[index]); } } } }