123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using System;
- using UnityEngine;
- using UnityEngine.UIElements;
-
- namespace UnityEditor.Tilemaps
- {
- internal class TilePaletteWhiteboxPaletteDropdownMenu : IGenericMenu
- {
- private const float k_DropdownWidth = 156f;
-
- private GridPaletteWhiteboxPalettesDropdown m_Dropdown;
-
- private Action m_OnClose;
-
- public TilePaletteWhiteboxPaletteDropdownMenu(Action onClose)
- {
- int index = -1;
- var menuData = new GridPaletteWhiteboxPalettesDropdown.MenuItemProvider();
- m_Dropdown = new GridPaletteWhiteboxPalettesDropdown(menuData, index, null, SelectWhiteboxPalette, k_DropdownWidth);
- m_OnClose = onClose;
- }
-
- public void AddItem(string itemName, bool isChecked, System.Action action)
- {
- }
-
- public void AddItem(string itemName, bool isChecked, System.Action<object> action, object data)
- {
- }
-
- public void AddDisabledItem(string itemName, bool isChecked)
- {
- }
-
- public void AddSeparator(string path)
- {
- }
-
- public void DropDown(Rect position, VisualElement targetElement = null, bool anchored = false)
- {
- PopupWindow.Show(position, m_Dropdown, null, ShowMode.PopupMenu);
- }
-
- public void Close()
- {
- PopupWindow.Show(default, m_Dropdown, null, ShowMode.PopupMenu);
- }
-
- private void SelectWhiteboxPalette(int i, object o)
- {
- m_Dropdown.editorWindow.Close();
- m_OnClose?.Invoke();
-
- var paletteCount = GridPalettes.palettes.Count;
- TilePaletteWhiteboxSamplesUtility.DuplicateWhiteboxSample(i);
- if (paletteCount > 0 && GridPaintPaletteClipboard.instances is { Count: > 0 })
- {
- var clipboard = GridPaintPaletteClipboard.instances[0];
- clipboard.PickFirstFromPalette();
- }
- }
- }
- }
|