ComponentList Tab 기능 추가
This commit is contained in:
@@ -73,7 +73,7 @@ namespace UVC.UI.Tab
|
||||
[SerializeField] private TabContentConfig[] tabConfigs = new TabContentConfig[0];
|
||||
|
||||
[Tooltip("활성화 탭 버튼을 클릭 시 해당 탭 비활성화 할지 여부")]
|
||||
[SerializeField] private bool closableTab = false;
|
||||
[SerializeField] private bool togglableTab = false;
|
||||
|
||||
// 탭 모델
|
||||
private TabModel? _tabModel;
|
||||
@@ -89,7 +89,7 @@ namespace UVC.UI.Tab
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_tabModel = new TabModel(closableTab);
|
||||
_tabModel = new TabModel(togglableTab);
|
||||
if (initializeOnStart)
|
||||
{
|
||||
Initialize();
|
||||
@@ -153,7 +153,7 @@ namespace UVC.UI.Tab
|
||||
|
||||
// TabView에 설정 전달하여 초기화
|
||||
List<TabContentConfig> allConfigs = GetAllTabConfigs();
|
||||
tabView.InitializeTabs(_tabModel.Tabs, allConfigs, OnTabButtonSelected, closableTab);
|
||||
tabView.InitializeTabs(_tabModel.Tabs, allConfigs, OnTabButtonSelected, togglableTab);
|
||||
|
||||
// 모델 이벤트 구독
|
||||
_tabModel.OnTabChanged += HandleTabChanged;
|
||||
|
||||
@@ -40,11 +40,11 @@ namespace UVC.UI.Tab
|
||||
public event Action<int, object?>? OnTabChanged;
|
||||
|
||||
//활성화 탭 버튼을 클릭 시 해당 탭 비활성화 할지 여부
|
||||
private bool closableTab = false;
|
||||
private bool togglableTab = false;
|
||||
|
||||
public TabModel(bool closableTab = false)
|
||||
public TabModel(bool togglableTab = false)
|
||||
{
|
||||
this.closableTab = closableTab;
|
||||
this.togglableTab = togglableTab;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -56,7 +56,7 @@ namespace UVC.UI.Tab
|
||||
_tabs.Add(tab);
|
||||
|
||||
// 첫 번째 추가된 탭을 기본 활성화 탭으로 설정
|
||||
if (_activeTabIndex == -1 && _tabs.Count == 1 && !closableTab)
|
||||
if (_activeTabIndex == -1 && _tabs.Count == 1 && !togglableTab)
|
||||
{
|
||||
_activeTabIndex = 0;
|
||||
}
|
||||
@@ -79,7 +79,7 @@ namespace UVC.UI.Tab
|
||||
// 같은 탭을 다시 선택한 경우 무시
|
||||
if (_activeTabIndex == tabIndex)
|
||||
{
|
||||
if (!closableTab)
|
||||
if (!togglableTab)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace UVC.UI.Tab
|
||||
|
||||
|
||||
//활성화 탭 버튼을 클릭 시 해당 탭 비활성화 할지 여부
|
||||
private bool closableTab = false;
|
||||
private bool togglableTab = false;
|
||||
|
||||
/// <summary>
|
||||
/// 탭 시스템을 초기화합니다.
|
||||
@@ -59,9 +59,10 @@ namespace UVC.UI.Tab
|
||||
/// <param name="tabs">탭 데이터 목록</param>
|
||||
/// <param name="configs">탭 설정 목록 (TabController에서 전달)</param>
|
||||
/// <param name="onTabSelected">탭 선택 시 호출될 콜백</param>
|
||||
public void InitializeTabs(IReadOnlyList<TabData> tabs, List<TabContentConfig> configs, Action<int> onTabSelected, bool closableTab = false)
|
||||
/// <param name="togglableTab">전체를 비활성화 할 수 있는지</param>
|
||||
public void InitializeTabs(IReadOnlyList<TabData> tabs, List<TabContentConfig> configs, Action<int> onTabSelected, bool togglableTab = false)
|
||||
{
|
||||
this.closableTab = closableTab;
|
||||
this.togglableTab = togglableTab;
|
||||
// 기존 탭 정리
|
||||
ClearTabs();
|
||||
|
||||
@@ -223,7 +224,7 @@ namespace UVC.UI.Tab
|
||||
/// <param name="updateData">업데이트할 데이터 (선택적)</param>
|
||||
public async UniTask UpdateActiveTab(int tabIndex, int prevTabIndex, TabData? tabData, object? updateData = null)
|
||||
{
|
||||
if ((tabIndex < 0 && !closableTab) || tabIndex >= _tabConfigs.Count) return;
|
||||
if ((tabIndex < 0 && !togglableTab) || tabIndex >= _tabConfigs.Count) return;
|
||||
if (tabIndex > -1 && tabData != null)
|
||||
{
|
||||
var config = _tabConfigs[tabIndex];
|
||||
|
||||
Reference in New Issue
Block a user