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];
|
||||
|
@@ -94,13 +94,13 @@ TabBar Button:disabled {
|
||||
}
|
||||
|
||||
.gap-8 {
|
||||
margin-top:-8px;
|
||||
margin-top: -8px;
|
||||
margin-right: -8px;
|
||||
margin-bottom: -8px;
|
||||
margin-left: -8px;
|
||||
}
|
||||
|
||||
.gap-8 > *{
|
||||
.gap-8 > * {
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ TabBar Button:disabled {
|
||||
margin-left: -8px;
|
||||
}
|
||||
|
||||
.gap-x-8 > *{
|
||||
.gap-x-8 > * {
|
||||
margin-left: 8px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
@@ -119,7 +119,7 @@ TabBar Button:disabled {
|
||||
margin-bottom: -8px;
|
||||
}
|
||||
|
||||
.gap-y-8 > *{
|
||||
.gap-y-8 > * {
|
||||
margin-top: 8px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
@@ -504,3 +504,7 @@ Button.clear {
|
||||
border-top-color: rgba(0, 0, 0, 0);
|
||||
border-bottom-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
TabContainer > * {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user