From 36627ebf109f742ac288adac5d1e1bb5fcfb50f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Peyronnet?= Date: Sat, 24 Feb 2024 13:01:49 +0100 Subject: [PATCH] Added the possibility to use upper cases or lower cases for HEX (#385) --- ColorPicker/Classes/ColorInfo.cs | 14 +++++++++----- ColorPicker/Classes/Settings.cs | 2 ++ ColorPicker/Pages/SettingsPage.xaml | 10 ++++++++++ ColorPicker/Pages/SettingsPage.xaml.cs | 8 ++++++++ ColorPicker/Properties/Resources.Designer.cs | 11 ++++++++++- ColorPicker/Properties/Resources.en-US.resx | 3 +++ ColorPicker/Properties/Resources.fr-FR.resx | 3 +++ ColorPicker/Properties/Resources.resx | 3 +++ ColorPicker/Properties/Resources.zh-CN.resx | 3 +++ .../UserControls/ColorFrequenceItem.xaml.cs | 3 ++- ColorPicker/UserControls/ColorItem.xaml.cs | 2 +- 11 files changed, 54 insertions(+), 8 deletions(-) diff --git a/ColorPicker/Classes/ColorInfo.cs b/ColorPicker/Classes/ColorInfo.cs index afa89b6..83574cc 100644 --- a/ColorPicker/Classes/ColorInfo.cs +++ b/ColorPicker/Classes/ColorInfo.cs @@ -28,7 +28,7 @@ namespace ColorPicker.Classes public class ColorInfo(RGB rgb) { public RGB RGB { get; set; } = rgb; - public HEX HEX { get; set; } = ColorConverter.RgbToHex(rgb); + public HEX HEX { get; set; } = GetHex(rgb); public HSV HSV { get; set; } = ColorConverter.RgbToHsv(rgb); public HSL HSL { get; set; } = ColorConverter.RgbToHsl(rgb); public CMYK CMYK { get; set; } = ColorConverter.RgbToCmyk(rgb); @@ -37,10 +37,8 @@ public class ColorInfo(RGB rgb) public YUV YUV { get; set; } = ColorConverter.RgbToYuv(rgb); public DEC DEC { get; set; } = DEC.FromRgb(rgb); - public override string ToString() - { - return $"{Properties.Resources.RGB}: {RGB.R}{Global.Settings.RgbSeparator}{RGB.G}{Global.Settings.RgbSeparator}{RGB.B}\n" + - $"{Properties.Resources.HEX}: {(HEX.Value.StartsWith("#") ? "" : "#")}{HEX.Value}\n" + + public override string ToString() => $"{Properties.Resources.RGB}: {RGB.R}{Global.Settings.RgbSeparator}{RGB.G}{Global.Settings.RgbSeparator}{RGB.B}\n" + + $"{Properties.Resources.HEX}: {(HEX.Value.StartsWith('#') ? "" : "#")}{((Global.Settings.UseUpperCasesHex ?? false) ? HEX.Value.ToUpper() : HEX.Value.ToLower())}\n" + $"{Properties.Resources.HSV}: {HSV.H},{HSV.S},{HSV.V}\n" + $"{Properties.Resources.HSL}: {HSL.H},{HSL.S},{HSL.L}\n" + $"{Properties.Resources.CMYK}: {CMYK.C},{CMYK.M},{CMYK.Y},{CMYK.K}\n" + @@ -48,6 +46,12 @@ public override string ToString() $"{Properties.Resources.XYZ}: {XYZ.X:0.00}..; {XYZ.Y:0.00}..; {XYZ.Z:0.00}..\n" + $"{Properties.Resources.YIQ}: {YIQ.Y:0.00}..; {YIQ.I:0.00}..; {YIQ.Q:0.00}..\n" + $"{Properties.Resources.YUV}: {YUV.Y:0.00}..; {YUV.U:0.00}..; {YUV.V:0.00}.."; + + private static HEX GetHex(RGB rgb) + { + var hex = ColorConverter.RgbToHex(rgb); + hex.Value = (Global.Settings.UseUpperCasesHex ?? false) ? hex.Value.ToUpper() : hex.Value.ToLower(); + return hex; } } } diff --git a/ColorPicker/Classes/Settings.cs b/ColorPicker/Classes/Settings.cs index 614b1c1..f39fbee 100644 --- a/ColorPicker/Classes/Settings.cs +++ b/ColorPicker/Classes/Settings.cs @@ -48,6 +48,7 @@ public Settings() Model = "gpt-3.5-turbo"; SupportedModels = ["gpt-3.5-turbo", "gpt-4"]; RgbSeparator = ";"; + UseUpperCasesHex = false; } public Themes Theme { get; set; } @@ -69,5 +70,6 @@ public Settings() public string? Model { get; set; } public string[]? SupportedModels { get; set; } public string? RgbSeparator { get; set; } + public bool? UseUpperCasesHex { get; set; } } } diff --git a/ColorPicker/Pages/SettingsPage.xaml b/ColorPicker/Pages/SettingsPage.xaml index 81a9b4b..dfd732e 100644 --- a/ColorPicker/Pages/SettingsPage.xaml +++ b/ColorPicker/Pages/SettingsPage.xaml @@ -391,6 +391,16 @@ TextChanged="RgbSeparatorTxt_TextChanged" /> + - /// Looks up a localized string similar to Background color detail. + /// Looks up a localized string similar to Background color details. /// public static string BackgroundDetails { get { @@ -1851,6 +1851,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to Use upper cases for HEX color. + /// + public static string UseUpperCasesHex { + get { + return ResourceManager.GetString("UseUpperCasesHex", resourceCulture); + } + } + /// /// Looks up a localized string similar to Version. /// diff --git a/ColorPicker/Properties/Resources.en-US.resx b/ColorPicker/Properties/Resources.en-US.resx index ac74f66..726cf46 100644 --- a/ColorPicker/Properties/Resources.en-US.resx +++ b/ColorPicker/Properties/Resources.en-US.resx @@ -735,4 +735,7 @@ Background color details + + Use upper cases for HEX color + \ No newline at end of file diff --git a/ColorPicker/Properties/Resources.fr-FR.resx b/ColorPicker/Properties/Resources.fr-FR.resx index de52da4..2dc3311 100644 --- a/ColorPicker/Properties/Resources.fr-FR.resx +++ b/ColorPicker/Properties/Resources.fr-FR.resx @@ -739,4 +739,7 @@ Détails de la couleur d'arrière-plan + + Utiliser des majuscules pour les couleurs HEX + \ No newline at end of file diff --git a/ColorPicker/Properties/Resources.resx b/ColorPicker/Properties/Resources.resx index baabc8f..517238e 100644 --- a/ColorPicker/Properties/Resources.resx +++ b/ColorPicker/Properties/Resources.resx @@ -715,4 +715,7 @@ Background color details + + Use upper cases for HEX color + \ No newline at end of file diff --git a/ColorPicker/Properties/Resources.zh-CN.resx b/ColorPicker/Properties/Resources.zh-CN.resx index 9b07c85..e3e76e7 100644 --- a/ColorPicker/Properties/Resources.zh-CN.resx +++ b/ColorPicker/Properties/Resources.zh-CN.resx @@ -743,4 +743,7 @@ 背景颜色细节 + + 使用大写字母表示 HEX 颜色 + \ No newline at end of file diff --git a/ColorPicker/UserControls/ColorFrequenceItem.xaml.cs b/ColorPicker/UserControls/ColorFrequenceItem.xaml.cs index d02163a..dc9b644 100644 --- a/ColorPicker/UserControls/ColorFrequenceItem.xaml.cs +++ b/ColorPicker/UserControls/ColorFrequenceItem.xaml.cs @@ -23,6 +23,7 @@ MIT License */ using ColorHelper; +using ColorPicker.Classes; using ColorPicker.Windows; using System.Windows.Controls; using System.Windows.Input; @@ -49,7 +50,7 @@ public ColorFrequenceItem(RGB color, int freq) private void InitUI() { ColorBorder.Background = new SolidColorBrush { Color = System.Windows.Media.Color.FromRgb(Color.R, Color.G, Color.B) }; - ColorTxt.Text = $"#{ColorHelper.ColorConverter.RgbToHex(Color).Value}"; + ColorTxt.Text = $"#{((Global.Settings.UseUpperCasesHex ?? false) ? ColorHelper.ColorConverter.RgbToHex(Color).Value.ToUpper() : ColorHelper.ColorConverter.RgbToHex(Color).Value.ToLower())}"; FreqTxt.Text = Freq.ToString(); } diff --git a/ColorPicker/UserControls/ColorItem.xaml.cs b/ColorPicker/UserControls/ColorItem.xaml.cs index 826f967..eb6a7a8 100644 --- a/ColorPicker/UserControls/ColorItem.xaml.cs +++ b/ColorPicker/UserControls/ColorItem.xaml.cs @@ -41,7 +41,7 @@ public partial class ColorItem : UserControl public ColorItem(string hexColor) { InitializeComponent(); - HexColor = hexColor; + HexColor = (Global.Settings.UseUpperCasesHex ?? false) ? hexColor.ToUpper() : hexColor.ToLower(); ColorInfo = new(ColorHelper.ColorConverter.HexToRgb(new(HexColor))); InitUI();