Files
Studio/Assets/Scripts/UVC/UI/TabController.cs
2025-05-14 17:00:44 +09:00

60 lines
1.5 KiB
C#

using Studio.UVC.UI;
using System.Collections.Generic;
namespace Studio.UVC.Controller.UI
{
public class TabController
{
public int SelectedIndex { get; private set; } = -1;
private List<ITabButton> tabButtons = new List<ITabButton>();
private List<ITabContent> tabContents = new List<ITabContent>();
public List<ITabButton> TabButtons => tabButtons;
public List<ITabContent> TabContents => tabContents;
public void Add(ITabButton tabButton, ITabContent tabContent)
{
tabButton.Index = tabButtons.Count;
tabContent.Index = tabContents.Count;
tabButtons.Add(tabButton);
tabContents.Add(tabContent);
tabButton.Deselect();
tabContent.Hide();
}
public void Select(int index)
{
if (SelectedIndex == index)
return;
if (SelectedIndex != -1)
{
tabButtons[SelectedIndex].Deselect();
tabContents[SelectedIndex].Hide();
}
SelectedIndex = index;
tabButtons[SelectedIndex].Select();
tabContents[SelectedIndex].Show();
}
public void Clear()
{
tabButtons.Clear();
tabContents.Clear();
}
public void Deselect()
{
if (SelectedIndex == -1)
return;
tabButtons[SelectedIndex].Deselect();
tabContents[SelectedIndex].Hide();
SelectedIndex = -1;
}
}
}