SettingExtensions.cs 705 B

12345678910111213141516
  1. namespace PixiEditor.Extensions.CommonApi.UserPreferences.Settings;
  2. public static class SettingExtensions
  3. {
  4. public static List<T> AsList<T>(this Setting<IEnumerable<T>> setting) =>
  5. setting.As(new List<T>());
  6. public static T[] AsArray<T>(this Setting<IEnumerable<T>> setting) =>
  7. setting.As(Array.Empty<T>());
  8. public static void AddListCallback<T>(this Setting<IEnumerable<T>> setting, Action<List<T>> callback) =>
  9. setting.ValueChanged += (_, value) => callback(value.ToList());
  10. public static void AddArrayCallback<T>(this Setting<IEnumerable<T>> setting, Action<T[]> callback) =>
  11. setting.ValueChanged += (_, value) => callback(value.ToArray());
  12. }