89 lines
2.1 KiB
C#
89 lines
2.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
using System.Text;
|
|
using UnityEngine;
|
|
|
|
namespace Thousandto.Plugins.Common
|
|
{
|
|
/// <summary>
|
|
/// 功能窗体容器
|
|
/// </summary>
|
|
public class UIButtonContainer : UIComponentContainer<UIButtonInfo, IButtonFunctionInfo>
|
|
{
|
|
//所在网格
|
|
private UIGrid _grid;
|
|
|
|
//刷新
|
|
public int Refresh(IButtonFunctionInfo[] infos, object param = null)
|
|
{
|
|
int showCount = 0;
|
|
EnQueueAll();
|
|
for (int i = 0; i < infos.Length; i++)
|
|
{
|
|
if (infos[i] != null)
|
|
{
|
|
if (infos[i].IsVisible)
|
|
{
|
|
showCount++;
|
|
ShowButton(infos[i], param);
|
|
}
|
|
else
|
|
{
|
|
HideButton(infos[i]);
|
|
}
|
|
}
|
|
}
|
|
Reposition();
|
|
return showCount;
|
|
}
|
|
|
|
//重新刷新位置
|
|
public void Reposition()
|
|
{
|
|
if (_grid != null)
|
|
{
|
|
_grid.repositionNow = true;
|
|
}
|
|
}
|
|
|
|
//获取网格
|
|
public UIGrid GetGrid()
|
|
{
|
|
return _grid;
|
|
}
|
|
|
|
//设置Grid
|
|
public void SetGrid(UIGrid grid)
|
|
{
|
|
_grid = grid;
|
|
}
|
|
|
|
//显示按钮
|
|
public void ShowButton(IButtonFunctionInfo info, object param = null)
|
|
{
|
|
UIButtonInfo btn = GetUsedUI(info);
|
|
if (btn == null)
|
|
{
|
|
btn = DeQueue(info);
|
|
if (btn != null)
|
|
{
|
|
btn.SetParam(param);
|
|
btn.SetActive(true);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
btn.RefreshData();
|
|
btn.SetParam(param);
|
|
}
|
|
}
|
|
|
|
//隐藏按钮
|
|
public void HideButton(IButtonFunctionInfo info)
|
|
{
|
|
EnQueue(info);
|
|
}
|
|
}
|
|
}
|