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

57 lines
1.0 KiB
C#
Raw Normal View History

2026-02-26 14:06:27 +00:00
using Godot;
using Rokojori;
using System.Collections.Generic;
using System.Linq;
2026-05-22 12:25:02 +00:00
using Rokojori.Extensions;
2026-02-26 14:06:27 +00:00
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();
}
);
}
}