1
This commit is contained in:
@@ -25,50 +25,48 @@ namespace BITKit.UX
|
||||
public new class UxmlFactory : UxmlFactory<TabContainer, UxmlTraits> { }
|
||||
public TabContainer()
|
||||
{
|
||||
RegisterCallback<AttachToPanelEvent>(OnAttachToPanel);
|
||||
RegisterCallback<DetachFromPanelEvent>(OnDetachFromPanel);
|
||||
RegisterCallback<GeometryChangedEvent>(OnGeometryChanged);
|
||||
RegisterCallback<AttachToPanelEvent>(RebuildOnEvent);
|
||||
RegisterCallback<DetachFromPanelEvent>(RebuildOnEvent);
|
||||
RegisterCallback<GeometryChangedEvent>(RebuildOnEvent);
|
||||
RegisterCallback<BlurEvent>(RebuildOnEvent);
|
||||
RegisterCallback<FocusEvent>(RebuildOnEvent);
|
||||
}
|
||||
|
||||
private void OnGeometryChanged(GeometryChangedEvent evt)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
|
||||
public string TabPath
|
||||
{
|
||||
get=>_tabPath;
|
||||
set
|
||||
{
|
||||
_tabPath = value;
|
||||
Rebuild();
|
||||
}
|
||||
}
|
||||
private string _tabPath;
|
||||
private TabBar _tabBar;
|
||||
private int _index;
|
||||
private void OnDetachFromPanel(DetachFromPanelEvent evt)
|
||||
private void RebuildOnEvent<T>(T evt)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
private void OnAttachToPanel(AttachToPanelEvent evt)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
|
||||
private void Rebuild()
|
||||
{
|
||||
if (_tabBar is not null)
|
||||
{
|
||||
_tabBar.OnTabChanged -= OnTabChanged;
|
||||
}
|
||||
_tabBar = panel.visualTree.Q<TabBar>(TabPath);
|
||||
var p = parent;
|
||||
while (p is not null)
|
||||
{
|
||||
_tabBar = p.Q<TabBar>(TabPath);
|
||||
if (_tabBar is not null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
p = p.parent;
|
||||
}
|
||||
if (_tabBar is not null)
|
||||
{
|
||||
_tabBar.OnTabChanged += OnTabChanged;
|
||||
}
|
||||
if (_index <=0)
|
||||
{
|
||||
_index = 1;
|
||||
_index = _tabBar.CurrentTab;
|
||||
}
|
||||
OnTabChanged(_index);
|
||||
}
|
||||
@@ -76,7 +74,7 @@ namespace BITKit.UX
|
||||
private void OnTabChanged(int obj)
|
||||
{
|
||||
_index = obj;
|
||||
if (childCount <= 0) return;
|
||||
if (childCount < 0) return;
|
||||
for (var i = 0; i < childCount; i++)
|
||||
{
|
||||
var visualElement = this[i];
|
||||
|
Reference in New Issue
Block a user