LANCommander/LANCommander.Packager/Models/WizardStepItem.cs
Pat Hartl 8917a2d79f
Some checks failed
LANCommander SDK Release / prep (push) Failing after 59s
LANCommander SDK Release / publish (push) Has been skipped
LANCommander Release / prep (push) Failing after 1m12s
LANCommander Release / build_server_linux_arm64 (push) Has been skipped
LANCommander Release / build_server_linux_x64 (push) Has been skipped
LANCommander Release / build_server_osx_arm64 (push) Has been skipped
LANCommander Release / build_server_osx_x64 (push) Has been skipped
LANCommander Release / build_server_win_arm64 (push) Has been skipped
LANCommander Release / build_server_win_x64 (push) Has been skipped
LANCommander Release / build_launcher_avalonia_linux_x64 (push) Has been skipped
LANCommander Release / build_launcher_avalonia_osx_arm64 (push) Has been skipped
LANCommander Release / build_launcher_avalonia_osx_x64 (push) Has been skipped
LANCommander Release / build_launcher_avalonia_win_x64 (push) Has been skipped
LANCommander Release / build_packager (push) Has been skipped
LANCommander Release / build_release (push) Has been skipped
Add package application for auto-building LCX files
2026-05-30 13:10:01 -05:00

46 lines
1.3 KiB
C#

using System.ComponentModel;
namespace LANCommander.Packager.Models;
public enum StepState { Pending, Current, Completed }
public class WizardStepItem : INotifyPropertyChanged
{
private StepState _state = StepState.Pending;
public int Index { get; init; }
public string Title { get; init; } = "";
public bool ShowTopLine => Index > 0;
public bool ShowBottomLine => Index < 6;
public StepState State
{
get => _state;
set
{
if (_state != value)
{
_state = value;
PropertyChanged?.Invoke(this, new(nameof(State)));
PropertyChanged?.Invoke(this, new(nameof(IsCurrent)));
PropertyChanged?.Invoke(this, new(nameof(IsCompleted)));
PropertyChanged?.Invoke(this, new(nameof(IsPending)));
PropertyChanged?.Invoke(this, new(nameof(TextOpacity)));
}
}
}
public bool IsCurrent => State == StepState.Current;
public bool IsCompleted => State == StepState.Completed;
public bool IsPending => State == StepState.Pending;
public double TextOpacity => State switch
{
StepState.Current => 1.0,
StepState.Completed => 0.7,
_ => 0.4
};
public event PropertyChangedEventHandler? PropertyChanged;
}