From b25ecc412177745bf36609d23ee8765a95d3c772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ayta=C3=A7=20Kayadelen?= Date: Wed, 30 Nov 2022 23:54:37 +0300 Subject: [PATCH] fix layouts from previous commit --- .../Settings/KeyboardLayoutManager.cs | 146 ++++++++++++------ .../Keycaps/Control_ColorizedKeycap.xaml.cs | 7 +- .../Control_ColorizedKeycapBlank.xaml.cs | 3 +- .../Keycaps/Control_DefaultKeycap.xaml.cs | 3 +- .../Control_DefaultKeycapBackglow.xaml.cs | 5 +- .../Control_DefaultKeycapBackglowOnly.xaml.cs | 5 +- .../Keycaps/Control_GhostKeycap.xaml.cs | 5 +- 7 files changed, 114 insertions(+), 60 deletions(-) diff --git a/Project-Aurora/Project-Aurora/Settings/KeyboardLayoutManager.cs b/Project-Aurora/Project-Aurora/Settings/KeyboardLayoutManager.cs index 419e87428..e5e244aec 100644 --- a/Project-Aurora/Project-Aurora/Settings/KeyboardLayoutManager.cs +++ b/Project-Aurora/Project-Aurora/Settings/KeyboardLayoutManager.cs @@ -23,17 +23,68 @@ namespace Aurora.Settings; [JsonObject(NamingStrategyType = typeof(SnakeCaseNamingStrategy))] public class KeyboardKey { + private DeviceKeys? _tag; + private double? _marginLeft; + private double? _marginTop; + private double? _width; + private double? _height; + private double? _fontSize; + private bool? _lineBreak; + private bool? _absoluteLocation; + [JsonProperty("visualName")] public string VisualName { get; private set; } - public DeviceKeys Tag { get; set; } = DeviceKeys.NONE; - public bool LineBreak { get; set; } - public double MarginLeft { get; set; } = 7; - public double MarginTop { get; set; } - public double Width { get; set; } = 30; - public double Height { get; set; } = 30; - public double? FontSize { get; set; } = 12; + + public DeviceKeys Tag + { + get => _tag.GetValueOrDefault(); + set => _tag = value; + } + + public bool LineBreak + { + get => _lineBreak.GetValueOrDefault(); + set => _lineBreak = value; + } + + public double MarginLeft + { + get => _marginLeft.GetValueOrDefault(); + set => _marginLeft = value; + } + + public double MarginTop + { + get => _marginTop.GetValueOrDefault(); + set => _marginTop = value; + } + + public double Width + { + get => _width.GetValueOrDefault(30); + set => _width = value; + } + + public double Height + { + get => _height.GetValueOrDefault(30); + set => _height = value; + } + + public double FontSize + { + get => _fontSize.GetValueOrDefault(12); + set => _fontSize = value; + } + public bool? Enabled { get; set; } = true; - public bool AbsoluteLocation { get; set; } + + public bool AbsoluteLocation + { + get => _absoluteLocation.GetValueOrDefault(); + set => _absoluteLocation = value; + } + public string Image { get; set; } = ""; public int ZIndex { get; set; } @@ -41,15 +92,15 @@ public void UpdateFromOtherKey(KeyboardKey otherKey) { if (otherKey == null) return; if (otherKey.VisualName != null) VisualName = otherKey.VisualName; - if (otherKey.Tag != DeviceKeys.NONE) - Tag = otherKey.Tag; - LineBreak = otherKey.LineBreak; - Width = otherKey.Width; - Height = otherKey.Height; - if (otherKey.FontSize != null) FontSize = otherKey.FontSize; - MarginLeft = otherKey.MarginLeft; - MarginTop = otherKey.MarginTop; + if (otherKey._tag != null) Tag = otherKey.Tag; + if (otherKey._lineBreak != null) LineBreak = otherKey.LineBreak; + if (otherKey._width != null) Width = otherKey.Width; + if (otherKey._height != null) Height = otherKey.Height; + if (otherKey._fontSize != null) FontSize = otherKey.FontSize; + if (otherKey._marginLeft != null) MarginLeft = otherKey.MarginLeft; + if (otherKey._marginTop != null) MarginTop = otherKey.MarginTop; if (otherKey.Enabled != null) Enabled = otherKey.Enabled; + if (otherKey._absoluteLocation != null) AbsoluteLocation = otherKey.AbsoluteLocation; } } @@ -93,7 +144,9 @@ public class VirtualGroup [JsonProperty("key_conversion")] public Dictionary KeyConversion { get; set; } - public VirtualGroup() { } + public VirtualGroup() + { + } public VirtualGroup(KeyboardKey[] keys) { @@ -126,8 +179,8 @@ public VirtualGroup(KeyboardKey[] keys) layoutHeight = currentHeight; } - _region.Width = (float)layoutWidth; - _region.Height = (float)layoutHeight; + _region.Width = (float) layoutWidth; + _region.Height = (float) layoutHeight; } public void AddFeature(KeyboardKey[] keys, KeyboardRegion insertionRegion = KeyboardRegion.TopLeft) @@ -163,19 +216,19 @@ public void AddFeature(KeyboardKey[] keys, KeyboardRegion insertionRegion = Keyb _keyText.Add(key.Tag, key.VisualName); if (key.Width + key.MarginLeft > _region.Width) - _region.Width = (float)(key.Width + key.MarginLeft); + _region.Width = (float) (key.Width + key.MarginLeft); else if (key.MarginLeft + addedWidth < 0) { - addedWidth = -(float)key.MarginLeft; - _region.Width -= (float)key.MarginLeft; + addedWidth = -(float) key.MarginLeft; + _region.Width -= (float) key.MarginLeft; } if (key.Height + key.MarginTop > _region.Height) - _region.Height = (float)(key.Height + key.MarginTop); + _region.Height = (float) (key.Height + key.MarginTop); else if (key.MarginTop + addedHeight < 0) { - addedHeight = -(float)key.MarginTop; - _region.Height -= (float)key.MarginTop; + addedHeight = -(float) key.MarginTop; + _region.Height -= (float) key.MarginTop; } } @@ -269,8 +322,8 @@ internal void RemoveKeys(DeviceKeys[] keysToRemove) _keyText.Remove(key.Tag); } - _region.Width = (float)layoutWidth; - _region.Height = (float)layoutHeight; + _region.Width = (float) layoutWidth; + _region.Height = (float) layoutHeight; } } @@ -609,10 +662,14 @@ private void LoadMouse(MouseOrientationType mouseOrientation, string mouseFeatur private Func _pixelToByte = DefaultPixelToByte; private static int DefaultPixelToByte(double pixel) - { return (int)Math.Round(pixel / (double)Global.Configuration.BitmapAccuracy); } + { + return (int) Math.Round(pixel / (double) Global.Configuration.BitmapAccuracy); + } private static int BestPixelToByte(double pixel) - { return (int)Math.Round(pixel); } + { + return (int) Math.Round(pixel); + } private int PixelToByte(double pixel) { @@ -622,13 +679,15 @@ private int PixelToByte(double pixel) private void Configuration_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (e is not {PropertyName: nameof(Configuration.BitmapAccuracy)}) return; - if(Global.Configuration.BitmapAccuracy == BitmapAccuracy.Best) + if (Global.Configuration.BitmapAccuracy == BitmapAccuracy.Best) { _pixelToByte = BestPixelToByte; - }else + } + else { _pixelToByte = DefaultPixelToByte; } + Global.LightingStateManager.PostUpdate += LightingStateManager_PostUpdate; } @@ -662,7 +721,8 @@ private void CalculateBitmap() if (key.AbsoluteLocation) { - _bitmapMap[key.Tag] = new BitmapRectangle(PixelToByte(xOffset), PixelToByte(yOffset), widthBit, heightBit); + _bitmapMap[key.Tag] = + new BitmapRectangle(PixelToByte(xOffset), PixelToByte(yOffset), widthBit, heightBit); brX = xOffset + width; brY = yOffset + height; } @@ -688,6 +748,7 @@ private void CalculateBitmap() curHeight = y; } } + if (brX > widthMax) widthMax = brX; if (brY > heightMax) heightMax = brY; } @@ -753,10 +814,11 @@ private Grid CreateUserControl(bool abstractKeycaps = false) break; } } - + newVirtualKeyboard.Children.Add(keycap); - if (key.Tag != DeviceKeys.NONE && !_virtualKeyboardMap.ContainsKey(key.Tag) && keycap is IKeycap && !abstractKeycaps) + if (key.Tag != DeviceKeys.NONE && !_virtualKeyboardMap.ContainsKey(key.Tag) && keycap is IKeycap && + !abstractKeycaps) _virtualKeyboardMap.Add(key.Tag, keycap as IKeycap); if (key.AbsoluteLocation) @@ -862,10 +924,10 @@ private Grid CreateUserControl(bool abstractKeycaps = false) VirtualKeyboard.Children.Clear(); VirtualKeyboard = newVirtualKeyboard; - Effects.grid_baseline_x = (float)baselineX; - Effects.grid_baseline_y = (float)baselineY; - Effects.grid_height = (float)newVirtualKeyboard.Height; - Effects.grid_width = (float)newVirtualKeyboard.Width; + Effects.grid_baseline_x = (float) baselineX; + Effects.grid_baseline_y = (float) baselineY; + Effects.grid_height = (float) newVirtualKeyboard.Height; + Effects.grid_width = (float) newVirtualKeyboard.Width; _virtualKbInvalid = false; } @@ -875,11 +937,9 @@ private Grid CreateUserControl(bool abstractKeycaps = false) private sealed class KeyboardLayout { - [JsonProperty("key_conversion")] - public Dictionary KeyConversion; + [JsonProperty("key_conversion")] public Dictionary KeyConversion; - [JsonProperty("keys")] - public KeyboardKey[] Keys; + [JsonProperty("keys")] public KeyboardKey[] Keys; } private void LoadCulture(string culture) @@ -894,7 +954,7 @@ private void LoadCulture(string culture) var content = File.ReadAllText(layoutPath, Encoding.UTF8); var keyboard = JsonConvert.DeserializeObject(content, - new JsonSerializerSettings { ObjectCreationHandling = ObjectCreationHandling.Replace })!; + new JsonSerializerSettings {ObjectCreationHandling = ObjectCreationHandling.Replace})!; _virtualKeyboardGroup = new VirtualGroup(keyboard.Keys); diff --git a/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_ColorizedKeycap.xaml.cs b/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_ColorizedKeycap.xaml.cs index 9d445d996..6d6295cff 100755 --- a/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_ColorizedKeycap.xaml.cs +++ b/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_ColorizedKeycap.xaml.cs @@ -50,13 +50,12 @@ public Control_ColorizedKeycap(KeyboardKey key, string image_path) { keyCap.Text = key.VisualName; keyCap.Tag = key.Tag; - if (key.FontSize != null) - keyCap.FontSize = key.FontSize.Value; - keyCap.Visibility = System.Windows.Visibility.Visible; + keyCap.FontSize = key.FontSize; + keyCap.Visibility = Visibility.Visible; } else { - keyCap.Visibility = System.Windows.Visibility.Hidden; + keyCap.Visibility = Visibility.Hidden; if (System.IO.File.Exists(image_path)) { diff --git a/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_ColorizedKeycapBlank.xaml.cs b/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_ColorizedKeycapBlank.xaml.cs index 4ddd8b7ad..b66436cc5 100644 --- a/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_ColorizedKeycapBlank.xaml.cs +++ b/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_ColorizedKeycapBlank.xaml.cs @@ -56,8 +56,7 @@ public Control_ColorizedKeycapBlank(KeyboardKey key, string image_path) { keyCap.Text = key.VisualName; keyCap.Tag = key.Tag; - if (key.FontSize != null) - keyCap.FontSize = key.FontSize.Value; + keyCap.FontSize = key.FontSize; } else { diff --git a/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_DefaultKeycap.xaml.cs b/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_DefaultKeycap.xaml.cs index 402305193..e1f0df755 100755 --- a/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_DefaultKeycap.xaml.cs +++ b/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_DefaultKeycap.xaml.cs @@ -57,8 +57,7 @@ public Control_DefaultKeycap(KeyboardKey key, string image_path) { keyCap.Text = key.VisualName; keyCap.Tag = key.Tag; - if (key.FontSize != null) - keyCap.FontSize = key.FontSize.Value; + keyCap.FontSize = key.FontSize; keyCap.Visibility = System.Windows.Visibility.Visible; } else diff --git a/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_DefaultKeycapBackglow.xaml.cs b/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_DefaultKeycapBackglow.xaml.cs index c52eaf9b8..08302ac6c 100755 --- a/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_DefaultKeycapBackglow.xaml.cs +++ b/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_DefaultKeycapBackglow.xaml.cs @@ -57,9 +57,8 @@ public Control_DefaultKeycapBackglow(KeyboardKey key, string image_path) { keyCap.Text = key.VisualName; keyCap.Tag = key.Tag; - if (key.FontSize != null) - keyCap.FontSize = key.FontSize.Value; - keyCap.Visibility = System.Windows.Visibility.Visible; + keyCap.FontSize = key.FontSize; + keyCap.Visibility = Visibility.Visible; } else { diff --git a/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_DefaultKeycapBackglowOnly.xaml.cs b/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_DefaultKeycapBackglowOnly.xaml.cs index 154e8a710..d9fc9d12f 100755 --- a/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_DefaultKeycapBackglowOnly.xaml.cs +++ b/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_DefaultKeycapBackglowOnly.xaml.cs @@ -57,9 +57,8 @@ public Control_DefaultKeycapBackglowOnly(KeyboardKey key, string image_path) { keyCap.Text = key.VisualName; keyCap.Tag = key.Tag; - if (key.FontSize != null) - keyCap.FontSize = key.FontSize.Value; - keyCap.Visibility = System.Windows.Visibility.Visible; + keyCap.FontSize = key.FontSize; + keyCap.Visibility = Visibility.Visible; } else { diff --git a/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_GhostKeycap.xaml.cs b/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_GhostKeycap.xaml.cs index 4416af8f7..6d5c1bd29 100644 --- a/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_GhostKeycap.xaml.cs +++ b/Project-Aurora/Project-Aurora/Settings/Keycaps/Control_GhostKeycap.xaml.cs @@ -56,12 +56,11 @@ public Control_GhostKeycap(KeyboardKey key, string image_path) { keyCap.Text = key.VisualName; keyCap.Tag = key.Tag; - if (key.FontSize != null) - keyCap.FontSize = key.FontSize.Value; + keyCap.FontSize = key.FontSize; } else { - keyCap.Visibility = System.Windows.Visibility.Hidden; + keyCap.Visibility = Visibility.Hidden; if (System.IO.File.Exists(image_path)) {