31 lines
1.1 KiB
C#
31 lines
1.1 KiB
C#
using System;
|
|
using System.Globalization;
|
|
using Avalonia.Data.Converters;
|
|
using Avalonia.Media;
|
|
|
|
namespace ClaudeDo.Ui.Converters;
|
|
|
|
public sealed class CheckboxBorderConverter : IValueConverter
|
|
{
|
|
public static readonly CheckboxBorderConverter Instance = new();
|
|
|
|
private static readonly ISolidColorBrush Gray = new SolidColorBrush(Color.Parse("#475569"));
|
|
private static readonly ISolidColorBrush Orange = new SolidColorBrush(Color.Parse("#e67e22"));
|
|
private static readonly ISolidColorBrush Green = new SolidColorBrush(Color.Parse("#3d9474"));
|
|
private static readonly ISolidColorBrush Red = new SolidColorBrush(Color.Parse("#ef4444"));
|
|
|
|
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
|
{
|
|
return value?.ToString()?.ToLowerInvariant() switch
|
|
{
|
|
"running" => Orange,
|
|
"done" => Green,
|
|
"failed" => Red,
|
|
_ => Gray, // manual, queued
|
|
};
|
|
}
|
|
|
|
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
|
|
=> throw new NotSupportedException();
|
|
}
|