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 tabButtons = new List(); private List tabContents = new List(); public List TabButtons => tabButtons; public List 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; } } }