暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DropdownMenu.cs 1.5KB

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