using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
public class MenuExample : EditorWindow
{
[MenuItem("Window/UI Toolkit/MenuExample")]
public static void ShowExample()
{
MenuExample wnd = GetWindow<MenuExample>();
wnd.titleContent = new GUIContent("MenuExample");
}
public void CreateGUI()
{
VisualElement root = rootVisualElement;
// Create a button.
var button = new Button();
button.text = "Button";
button.style.width = 70;
// Create a dropdown menu with three items.
var menu = new GenericDropdownMenu();
menu.AddItem("Item 1", false, a => { Debug.Log("Item 1 was selected"); }, null);
menu.AddItem("Item 2", false, a => { Debug.Log("Item 2 was selected"); }, null);
menu.AddItem("Item 3 has a very very long label", false, a => { Debug.Log("Item 3 was selected"); }, null);
// When the button is clicked, the dropdown menu is displayed aligned with the button's world boundaries.
button.clicked += () =>
{
// The third and the fourth parameters of the DropDown set the width of the dropdown menu.
// This sets the width of the dropdown menu to the width of the container.
menu.DropDown(button.worldBound, button, false);
// This sets the width of the dropdown menu to the width of the button.
// menu.DropDown(button.worldBound, button, true, false);
// This sets the width of the dropdown menu to the width of the longest item.
// menu.DropDown(button.worldBound, button, true, true);
};
root.Add(button);
}
}