67 lines
2.0 KiB
C#
67 lines
2.0 KiB
C#
|
using UnityEditor.Toolbars;
|
||
|
using UnityEngine;
|
||
|
using UnityEngine.UIElements;
|
||
|
|
||
|
namespace UnityEditor.Tilemaps
|
||
|
{
|
||
|
[EditorToolbarElement(k_ToolbarId)]
|
||
|
internal class TilePaletteBrushesDropdownToggle : EditorToolbarToggle
|
||
|
{
|
||
|
internal const string k_ToolbarId = "Tile Palette/Brushes Dropdown Toggle";
|
||
|
|
||
|
private new static readonly string ussClassName = "unity-tilepalette-brushesdropdown-toggle";
|
||
|
|
||
|
private static readonly string k_IconPath = "Packages/com.unity.2d.tilemap/Editor/Icons/Tilemap.BrushSettings.png";
|
||
|
private static readonly string k_Tooltip = L10n.Tr("Toggles the visibility of the Brush Settings Overlay");
|
||
|
|
||
|
public TilePaletteBrushesDropdownToggle()
|
||
|
{
|
||
|
AddToClassList(ussClassName);
|
||
|
TilePaletteOverlayUtility.SetStyleSheet(this);
|
||
|
|
||
|
RegisterCallback<DetachFromPanelEvent>(OnDetachFromPanel);
|
||
|
|
||
|
icon = EditorGUIUtility.LoadIcon(k_IconPath);
|
||
|
tooltip = k_Tooltip;
|
||
|
|
||
|
var input = this.Q<VisualElement>(className: Toggle.inputUssClassName);
|
||
|
var arrow = new VisualElement();
|
||
|
arrow.AddToClassList("unity-icon-arrow");
|
||
|
arrow.pickingMode = PickingMode.Ignore;
|
||
|
input.Add(arrow);
|
||
|
}
|
||
|
|
||
|
public override bool value
|
||
|
{
|
||
|
get => base.value;
|
||
|
set
|
||
|
{
|
||
|
base.value = value;
|
||
|
if (value)
|
||
|
{
|
||
|
ClickEvent();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CloseEvent();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void ClickEvent()
|
||
|
{
|
||
|
BoolFieldOverlayPopupWindow.ShowOverlayPopup<TilePaletteBrushInspectorPopup>(this, new Vector2(300, 180), false);
|
||
|
}
|
||
|
|
||
|
private void CloseEvent()
|
||
|
{
|
||
|
BoolFieldOverlayPopupWindow.CloseAllWindows<TilePaletteBrushInspectorPopup>();
|
||
|
}
|
||
|
|
||
|
private void OnDetachFromPanel(DetachFromPanelEvent evt)
|
||
|
{
|
||
|
CloseEvent();
|
||
|
}
|
||
|
}
|
||
|
}
|