/ src / settings-ui / Settings.UI / SettingsXAML / Controls / ColorFormatEditor.xaml.cs
ColorFormatEditor.xaml.cs
  1  // Copyright (c) Microsoft Corporation
  2  // The Microsoft Corporation licenses this file to you under the MIT license.
  3  // See the LICENSE file in the project root for more information.
  4  
  5  using System;
  6  using System.Collections.Generic;
  7  using System.ComponentModel;
  8  using System.Security.Cryptography;
  9  using System.Windows.Input;
 10  
 11  using ManagedCommon;
 12  using Microsoft.PowerToys.Settings.UI.Helpers;
 13  using Microsoft.PowerToys.Settings.UI.Library;
 14  using Microsoft.PowerToys.Settings.UI.ViewModels;
 15  using Microsoft.UI.Xaml.Controls;
 16  using Microsoft.Windows.ApplicationModel.Resources;
 17  using Windows.System;
 18  
 19  namespace Microsoft.PowerToys.Settings.UI.Controls
 20  {
 21      public sealed partial class ColorFormatEditor : UserControl
 22      {
 23          public ColorFormatEditor()
 24          {
 25              this.InitializeComponent();
 26              LoadParameters();
 27          }
 28  
 29          public void LoadParameters()
 30          {
 31              ResourceLoader resourceLoader = ResourceLoaderInstance.ResourceLoader;
 32              ParametersItemsControl.ItemsSource = new List<ColorFormatParameter>
 33              {
 34                  new ColorFormatParameter() { Parameter = "%Re", Description = resourceLoader.GetString("Help_red") },
 35                  new ColorFormatParameter() { Parameter = "%Gr", Description = resourceLoader.GetString("Help_green") },
 36                  new ColorFormatParameter() { Parameter = "%Bl", Description = resourceLoader.GetString("Help_blue") },
 37                  new ColorFormatParameter() { Parameter = "%Al", Description = resourceLoader.GetString("Help_alpha") },
 38                  new ColorFormatParameter() { Parameter = "%Cy", Description = resourceLoader.GetString("Help_cyan") },
 39                  new ColorFormatParameter() { Parameter = "%Ma", Description = resourceLoader.GetString("Help_magenta") },
 40                  new ColorFormatParameter() { Parameter = "%Ye", Description = resourceLoader.GetString("Help_yellow") },
 41                  new ColorFormatParameter() { Parameter = "%Bk", Description = resourceLoader.GetString("Help_black_key") },
 42                  new ColorFormatParameter() { Parameter = "%Hu", Description = resourceLoader.GetString("Help_hue") },
 43                  new ColorFormatParameter() { Parameter = "%Si", Description = resourceLoader.GetString("Help_saturationI") },
 44                  new ColorFormatParameter() { Parameter = "%Sl", Description = resourceLoader.GetString("Help_saturationL") },
 45                  new ColorFormatParameter() { Parameter = "%Sb", Description = resourceLoader.GetString("Help_saturationB") },
 46                  new ColorFormatParameter() { Parameter = "%Br", Description = resourceLoader.GetString("Help_brightness") },
 47                  new ColorFormatParameter() { Parameter = "%In", Description = resourceLoader.GetString("Help_intensity") },
 48                  new ColorFormatParameter() { Parameter = "%Hn", Description = resourceLoader.GetString("Help_hueNat") },
 49                  new ColorFormatParameter() { Parameter = "%Ll", Description = resourceLoader.GetString("Help_lightnessNat") },
 50                  new ColorFormatParameter() { Parameter = "%Va", Description = resourceLoader.GetString("Help_value") },
 51                  new ColorFormatParameter() { Parameter = "%Wh", Description = resourceLoader.GetString("Help_whiteness") },
 52                  new ColorFormatParameter() { Parameter = "%Bn", Description = resourceLoader.GetString("Help_blackness") },
 53                  new ColorFormatParameter() { Parameter = "%Lc", Description = resourceLoader.GetString("Help_lightnessCIE") },
 54                  new ColorFormatParameter() { Parameter = "%Ca", Description = resourceLoader.GetString("Help_chromaticityACIE") },
 55                  new ColorFormatParameter() { Parameter = "%Cb", Description = resourceLoader.GetString("Help_chromaticityBCIE") },
 56                  new ColorFormatParameter() { Parameter = "%Lo", Description = resourceLoader.GetString("Help_lightnessOklab") },
 57                  new ColorFormatParameter() { Parameter = "%Oa", Description = resourceLoader.GetString("Help_chromaticityAOklab") },
 58                  new ColorFormatParameter() { Parameter = "%Ob", Description = resourceLoader.GetString("Help_chromaticityBOklab") },
 59                  new ColorFormatParameter() { Parameter = "%Oc", Description = resourceLoader.GetString("Help_chromaOklch") },
 60                  new ColorFormatParameter() { Parameter = "%Oh", Description = resourceLoader.GetString("Help_hueOklch") },
 61                  new ColorFormatParameter() { Parameter = "%Xv", Description = resourceLoader.GetString("Help_X_value") },
 62                  new ColorFormatParameter() { Parameter = "%Yv", Description = resourceLoader.GetString("Help_Y_value") },
 63                  new ColorFormatParameter() { Parameter = "%Zv", Description = resourceLoader.GetString("Help_Z_value") },
 64                  new ColorFormatParameter() { Parameter = "%Dv", Description = resourceLoader.GetString("Help_decimal_value_BGR") },
 65                  new ColorFormatParameter() { Parameter = "%Dr", Description = resourceLoader.GetString("Help_decimal_value_RGB") },
 66                  new ColorFormatParameter() { Parameter = "%Na", Description = resourceLoader.GetString("Help_color_name") },
 67              };
 68  
 69              ColorParametersItemsControl.ItemsSource = new List<ColorFormatParameter>
 70              {
 71                  new ColorFormatParameter() { Parameter = "b", Description = resourceLoader.GetString("Help_byte") },
 72                  new ColorFormatParameter() { Parameter = "h", Description = resourceLoader.GetString("Help_hexL1") },
 73                  new ColorFormatParameter() { Parameter = "H", Description = resourceLoader.GetString("Help_hexU1") },
 74                  new ColorFormatParameter() { Parameter = "x", Description = resourceLoader.GetString("Help_hexL2") },
 75                  new ColorFormatParameter() { Parameter = "X", Description = resourceLoader.GetString("Help_hexU2") },
 76                  new ColorFormatParameter() { Parameter = "f", Description = resourceLoader.GetString("Help_floatWith") },
 77                  new ColorFormatParameter() { Parameter = "F", Description = resourceLoader.GetString("Help_floatWithout") },
 78              };
 79          }
 80  
 81          private void NewColorName_TextChanged(object sender, TextChangedEventArgs e)
 82          {
 83              OnPropertyChanged();
 84          }
 85  
 86          private void NewColorFormatTextBox_TextChanged(object sender, TextChangedEventArgs e)
 87          {
 88              OnPropertyChanged();
 89          }
 90  
 91          public event EventHandler PropertyChanged;
 92  
 93          private void OnPropertyChanged()
 94          {
 95              PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("PropertyChanged"));
 96          }
 97      }
 98  
 99  #pragma warning disable SA1402 // File may only contain a single type
100      public class ColorFormatParameter
101  #pragma warning restore SA1402 // File may only contain a single type
102      {
103          public string Parameter { get; set; }
104  
105          public string Description { get; set; }
106      }
107  }