94 lines
2.4 KiB
C#
94 lines
2.4 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace VMdemo.UI
|
|
{
|
|
public class SimulationDetailDrawerView : MonoBehaviour
|
|
{
|
|
[SerializeField] private GameObject drawerRoot;
|
|
[SerializeField] private GameObject tablesTabRoot;
|
|
[SerializeField] private GameObject eventsTabRoot;
|
|
[SerializeField] private bool openOnStart;
|
|
|
|
[Header("Drawer Buttons")] [SerializeField]
|
|
private Button tablesTabButton;
|
|
|
|
[SerializeField] private Button eventsTabButton;
|
|
[SerializeField] private Button closeDrawerButton;
|
|
|
|
private bool _isOpen;
|
|
|
|
private void Awake()
|
|
{
|
|
BindButtons();
|
|
_isOpen = openOnStart;
|
|
ApplyDrawerState();
|
|
|
|
ShowTablesTab();
|
|
}
|
|
|
|
public void ToggleDrawer()
|
|
{
|
|
_isOpen = !_isOpen;
|
|
ApplyDrawerState();
|
|
}
|
|
|
|
public void OpenDrawer()
|
|
{
|
|
_isOpen = true;
|
|
ApplyDrawerState();
|
|
}
|
|
|
|
public void CloseDrawer()
|
|
{
|
|
_isOpen = false;
|
|
ApplyDrawerState();
|
|
}
|
|
|
|
public void ShowTablesTab()
|
|
{
|
|
SetActiveSafe(tablesTabRoot, true);
|
|
SetActiveSafe(eventsTabRoot, false);
|
|
}
|
|
|
|
public void ShowEventsTab()
|
|
{
|
|
SetActiveSafe(tablesTabRoot, false);
|
|
SetActiveSafe(eventsTabRoot, true);
|
|
}
|
|
|
|
private void BindButtons()
|
|
{
|
|
if (tablesTabButton != null)
|
|
{
|
|
tablesTabButton.onClick.RemoveAllListeners();
|
|
tablesTabButton.onClick.AddListener(ShowTablesTab);
|
|
}
|
|
|
|
if (eventsTabButton != null)
|
|
{
|
|
eventsTabButton.onClick.RemoveAllListeners();
|
|
eventsTabButton.onClick.AddListener(ShowEventsTab);
|
|
}
|
|
|
|
if (closeDrawerButton != null)
|
|
{
|
|
closeDrawerButton.onClick.RemoveAllListeners();
|
|
closeDrawerButton.onClick.AddListener(CloseDrawer);
|
|
}
|
|
}
|
|
|
|
private void ApplyDrawerState()
|
|
{
|
|
SetActiveSafe(drawerRoot, _isOpen);
|
|
}
|
|
|
|
private static void SetActiveSafe(GameObject target, bool active)
|
|
{
|
|
if (target != null)
|
|
{
|
|
target.SetActive(active);
|
|
}
|
|
}
|
|
}
|
|
} |