using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
using MuHua;
///
/// UI快捷菜单面板
///
public class UIMenuPanel : ModuleUIPanel, UIControl {
public UIMenuPanel menuPanel;
public VisualElement submenu;
public ModuleUIItems items;
public VisualElement Container => Q("Container");
public UIMenuPanel(VisualElement element, VisualTreeAsset templateAsset) : base(element) {
items = new ModuleUIItems(Container, templateAsset,
(data, element) => new UIItem(data, element, this));
}
public void Update() {
// throw new NotImplementedException();
}
public void Dispose() {
items.Release();
}
public void Settings(Vector3 position, List datas) {
items.Create(datas);
element.transform.position = position;
}
/// 打开子菜单
public void Open(VisualElement submenu, List datas) {
if (this.submenu == submenu) { return; }
// 更新子菜单
this.submenu = submenu;
if (menuPanel == null) { menuPanel = UIShortcutMenu.I.Create(); }
float x = submenu.worldBound.position.x + submenu.resolvedStyle.width;
float y = submenu.worldBound.position.y - 4;
Vector3 position = new Vector3(x, y, 0);
menuPanel.Settings(position, datas);
bool isEnable = datas != null && datas.Count > 0;
menuPanel.OpenSubmenu(isEnable);
}
public void OpenSubmenu(bool open) {
element.EnableInClassList("menu-hide", !open);
menuPanel?.OpenSubmenu(false);
}
/// UI项目
public class UIItem : ModuleUIItem {
public readonly UIMenuPanel parent;
public Label Name => element.Q