rokojori_action_library/Runtime/UI/UIAppSettings/Headers/SelectSettingsPage.cs

56 lines
1000 B
C#
Raw Normal View History

2026-02-26 14:06:27 +00:00
using Godot;
using Rokojori;
using System.Collections.Generic;
using System.Linq;
namespace Rokojori;
[Tool]
[GlobalClass]
public partial class SelectSettingsPage:Action
{
[Export]
public UIAppSettings uiAppSettings;
[Export]
public AppSettingsCategory category;
[Export]
public Node uiStylable;
protected override void _OnTrigger()
{
uiAppSettings.header.pageSelectors.ForEach(
( ps )=>
{
var stylable = ps.uiStylable as UIStylePropertyContainerNode;
stylable.RemoveUISelectorFlag( UISelectorFlag.Active );
}
);
var ownStylable = uiStylable as UIStylePropertyContainerNode;
ownStylable.AddUISelectorFlag( UISelectorFlag.Active );
uiAppSettings.pages.ForEach(
( p )=>
{
var isActive = p.category == category;
p.SetVisibility( isActive );
if ( ! isActive )
{
return;
}
p.onActive?.Trigger();
p._OnActivated();
}
);
}
}