From 59372d39303140ffb763295f8d43aa2839ec5d0a Mon Sep 17 00:00:00 2001 From: Julien Richard Date: Fri, 14 Jan 2022 18:22:14 +0100 Subject: [PATCH] Clean --- .../Drawing/EmojiContainer.cs | 43 ++++++++++++------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/src/Greenshot.Editor/Drawing/EmojiContainer.cs b/src/Greenshot.Editor/Drawing/EmojiContainer.cs index 2dfeb2484..a477e1b2f 100644 --- a/src/Greenshot.Editor/Drawing/EmojiContainer.cs +++ b/src/Greenshot.Editor/Drawing/EmojiContainer.cs @@ -24,13 +24,15 @@ using System.Drawing; using System.Drawing.Drawing2D; using System.Runtime.Serialization; using System.Windows; +using System.Windows.Controls.Primitives; using System.Windows.Forms; using System.Windows.Forms.Integration; using System.Windows.Media; using System.Windows.Media.Imaging; +using Emoji.Wpf; using Greenshot.Base.Interfaces.Drawing; using Greenshot.Editor.Helpers; -using log4net; +using Image = System.Drawing.Image; using Point = System.Drawing.Point; using Size = System.Windows.Size; @@ -42,14 +44,12 @@ namespace Greenshot.Editor.Drawing [Serializable] public class EmojiContainer : DrawableContainer, IEmojiContainer { - private static readonly ILog Log = LogManager.GetLogger(typeof(IconContainer)); - [NonSerialized] private static EmojiContainer _currentContainer; [NonSerialized] private static ElementHost _emojiPickerHost; - [NonSerialized] private static Emoji.Wpf.Picker _emojiPicker; + [NonSerialized] private static Picker _emojiPicker; [NonSerialized] private System.Windows.Controls.Image _image; - [NonSerialized] private bool _firstSelection = true; + [NonSerialized] private bool _justCreated = true; private string _emoji; @@ -99,14 +99,14 @@ namespace Greenshot.Editor.Drawing _emojiPickerHost.Top = displayRectangle.Top; _emojiPicker.Selection = Emoji; - _emojiPicker.ShowPopup = true; + _emojiPicker.ShowPopup(true); } private void CreatePickerControl() { if (_emojiPickerHost == null) { - _emojiPicker = new Emoji.Wpf.Picker(); + _emojiPicker = new Picker(); _emojiPicker.Picked += (_, args) => { _currentContainer.Emoji = args.Emoji; @@ -121,13 +121,9 @@ namespace Greenshot.Editor.Drawing private void HideEmojiPicker() { - if (_emojiPicker != null) - { - _emojiPicker.ShowPopup = false; - } + _emojiPicker?.ShowPopup(false); } - protected override void OnDeserialized(StreamingContext streamingContext) { base.OnDeserialized(streamingContext); @@ -138,7 +134,7 @@ namespace Greenshot.Editor.Drawing { CreateDefaultAdorners(); - // Create WPF control + // Create WPF control that will be used to render the emoji _image = new System.Windows.Controls.Image(); global::Emoji.Wpf.Image.SetSource(_image, Emoji); @@ -153,10 +149,11 @@ namespace Greenshot.Editor.Drawing { HideEmojiPicker(); } - else if (Status == EditStatus.IDLE && _firstSelection) + else if (Status == EditStatus.IDLE && _justCreated) { + // Show picker just after creation ShowEmojiPicker(); - _firstSelection = false; + _justCreated = false; } } } @@ -195,7 +192,7 @@ namespace Greenshot.Editor.Drawing private int GetRotationAngle() { - int rotationAngle = 0; + var rotationAngle = 0; if (Width < 0) { rotationAngle = Height > 0 ? 90 : 180; @@ -240,4 +237,18 @@ namespace Greenshot.Editor.Drawing return bitmap; } } + + internal static class PickerExtensions + { + public static void ShowPopup(this Picker picker, bool show) + { + foreach (var child in picker.Children) + { + if (child is ToggleButton button) + { + button.IsChecked = show; + } + } + } + } } \ No newline at end of file