2022-05-15 11:30:15 +00:00
|
|
|
using Avalonia.Data;
|
|
|
|
using Avalonia.Markup.Xaml;
|
|
|
|
using FluentAvalonia.UI.Controls;
|
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
namespace Ryujinx.Ava.Ui.Controls
|
|
|
|
{
|
2022-06-07 08:12:43 +00:00
|
|
|
internal class GlyphValueConverter : MarkupExtension
|
2022-05-15 11:30:15 +00:00
|
|
|
{
|
|
|
|
private string _key;
|
|
|
|
|
|
|
|
private static Dictionary<Glyph, string> _glyphs = new Dictionary<Glyph, string>
|
|
|
|
{
|
|
|
|
{ Glyph.List, char.ConvertFromUtf32((int)Symbol.List).ToString() },
|
|
|
|
{ Glyph.Grid, char.ConvertFromUtf32((int)Symbol.ViewAll).ToString() },
|
|
|
|
{ Glyph.Chip, char.ConvertFromUtf32(59748).ToString() }
|
|
|
|
};
|
|
|
|
|
|
|
|
public GlyphValueConverter(string key)
|
|
|
|
{
|
|
|
|
_key = key;
|
|
|
|
}
|
|
|
|
|
|
|
|
public string this[string key]
|
|
|
|
{
|
|
|
|
get
|
|
|
|
{
|
|
|
|
if (_glyphs.TryGetValue(Enum.Parse<Glyph>(key), out var val))
|
|
|
|
{
|
|
|
|
return val;
|
|
|
|
}
|
|
|
|
|
|
|
|
return string.Empty;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public override object ProvideValue(IServiceProvider serviceProvider)
|
|
|
|
{
|
|
|
|
Avalonia.Markup.Xaml.MarkupExtensions.ReflectionBindingExtension binding = new($"[{_key}]")
|
|
|
|
{
|
|
|
|
Mode = BindingMode.OneWay,
|
|
|
|
Source = this
|
|
|
|
};
|
|
|
|
|
|
|
|
return binding.ProvideValue(serviceProvider);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|