60 lines
1.5 KiB
C#
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;
|
|
}
|
|
|
|
}
|
|
}
|