A game about forced loneliness, made by TACStudios
at master 63 lines 1.9 kB view raw
1using UnityEngine; 2using UnityEngine.UIElements; 3 4namespace UnityEditor.U2D.Layout 5{ 6#if ENABLE_UXML_SERIALIZED_DATA 7 [UxmlElement] 8#endif 9 internal partial class DropdownMenu : VisualElement 10 { 11#if ENABLE_UXML_TRAITS 12 public class DropdownMenuFactory : UxmlFactory<DropdownMenu, DropdownMenuUxmlTraits> { } 13 14 public class DropdownMenuUxmlTraits : UxmlTraits { } 15#endif 16 17 /* 18 private ButtonGroup m_ButtonGroup; 19 20 public DropdownMenu() 21 { 22 RegisterCallback<FocusOutEvent>(OnFocusOut, Capture.NoCapture); 23 RegisterCallback<MouseLeaveEvent>(OnMouseLeaveEvent); 24 } 25 26 public void InitialiseWithButtonGroup(ButtonGroup buttonGroup) 27 { 28 if (m_ButtonGroup == buttonGroup) 29 return; 30 31 m_ButtonGroup = buttonGroup; 32 var buttonGroupLocalPosition = parent.WorldToLocal(new Vector2(buttonGroup.worldBound.x, buttonGroup.worldBound.y)); 33 style.positionType = PositionType.Absolute; 34 style.positionLeft = buttonGroupLocalPosition.x; 35 style.positionTop = buttonGroupLocalPosition.y; 36 style.flexDirection = buttonGroup.isHorizontal ? FlexDirection.Row : FlexDirection.Column; 37 foreach (var element in buttonGroup.elements) 38 Add(element); 39 } 40 41 private void OnMouseLeaveEvent(MouseLeaveEvent evt) 42 { 43 Close(); 44 } 45 46 private void OnFocusOut(FocusOutEvent evt) 47 { 48 Close(); 49 } 50 51 private void Close() 52 { 53 foreach (var element in contentContainer.Children()) 54 m_ButtonGroup.elements.Add(element); 55 this.contentContainer.Clear(); 56 57 style.width = 0; 58 style.height = 0; 59 m_ButtonGroup = null; 60 } 61 */ 62 } 63}