From 1037dae02c47eb833f26c26e2e5a4e1f750a840b Mon Sep 17 00:00:00 2001 From: Nicke Manarin Date: Sun, 24 Mar 2024 14:15:00 -0300 Subject: [PATCH] Added more click events supported for mouse --- ScreenToGif.Model/Enums/MouseButtons.cs | 4 ++- ScreenToGif.Model/ScreenToGif.Domain.csproj | 2 +- ScreenToGif.Native/ScreenToGif.Native.csproj | 2 +- ScreenToGif.Util/ScreenToGif.Util.csproj | 2 +- ScreenToGif.Util/Settings/UserSettings.cs | 12 ++++++++ .../ScreenToGif.ViewModel.csproj | 2 +- .../Tasks/MouseEventsViewModel.cs | 28 ++++++++++++++++--- .../Localization/StringResources.en.xaml | 2 ++ .../Localization/StringResources.pt.xaml | 10 +++++-- ScreenToGif/Resources/Settings.xaml | 6 ++-- ScreenToGif/ScreenToGif.csproj | 2 +- .../UserControls/MouseClicksPanel.xaml | 16 ++++++++--- ScreenToGif/Windows/Editor.xaml | 19 ++++++++++--- ScreenToGif/Windows/Editor.xaml.cs | 17 +++++++++-- ScreenToGif/Windows/NewRecorder.xaml.cs | 6 +++- ScreenToGif/Windows/Recorder.xaml.cs | 4 +++ 16 files changed, 109 insertions(+), 25 deletions(-) diff --git a/ScreenToGif.Model/Enums/MouseButtons.cs b/ScreenToGif.Model/Enums/MouseButtons.cs index 0fba26de..94e2ac41 100644 --- a/ScreenToGif.Model/Enums/MouseButtons.cs +++ b/ScreenToGif.Model/Enums/MouseButtons.cs @@ -5,5 +5,7 @@ public enum MouseButtons None, Left, Middle, - Right + Right, + FirstExtra, + SecondExtra, } \ No newline at end of file diff --git a/ScreenToGif.Model/ScreenToGif.Domain.csproj b/ScreenToGif.Model/ScreenToGif.Domain.csproj index 2462f219..9ab0b2d5 100644 --- a/ScreenToGif.Model/ScreenToGif.Domain.csproj +++ b/ScreenToGif.Model/ScreenToGif.Domain.csproj @@ -6,7 +6,7 @@ embedded True AnyCPU;ARM64;x64;x86 - 2.40.2 + 2.41.0 true diff --git a/ScreenToGif.Native/ScreenToGif.Native.csproj b/ScreenToGif.Native/ScreenToGif.Native.csproj index b7742da6..9afd860b 100644 --- a/ScreenToGif.Native/ScreenToGif.Native.csproj +++ b/ScreenToGif.Native/ScreenToGif.Native.csproj @@ -6,7 +6,7 @@ True embedded AnyCPU;ARM64;x64;x86 - 2.40.2 + 2.41.0 10.0.17763.0 diff --git a/ScreenToGif.Util/ScreenToGif.Util.csproj b/ScreenToGif.Util/ScreenToGif.Util.csproj index b4337a88..031372f0 100644 --- a/ScreenToGif.Util/ScreenToGif.Util.csproj +++ b/ScreenToGif.Util/ScreenToGif.Util.csproj @@ -5,7 +5,7 @@ True embedded AnyCPU;ARM64;x64;x86 - 2.40.2 + 2.41.0 10.0.17763.0 diff --git a/ScreenToGif.Util/Settings/UserSettings.cs b/ScreenToGif.Util/Settings/UserSettings.cs index f681615d..91989816 100644 --- a/ScreenToGif.Util/Settings/UserSettings.cs +++ b/ScreenToGif.Util/Settings/UserSettings.cs @@ -2406,6 +2406,18 @@ public Color MiddleMouseButtonClicksColor set => SetValue(value); } + public Color FirstExtraMouseButtonClicksColor + { + get => (Color)GetValue(); + set => SetValue(value); + } + + public Color SecondExtraMouseButtonClicksColor + { + get => (Color)GetValue(); + set => SetValue(value); + } + public double MouseEventsWidth { get => (double)GetValue(); diff --git a/ScreenToGif.ViewModel/ScreenToGif.ViewModel.csproj b/ScreenToGif.ViewModel/ScreenToGif.ViewModel.csproj index 360159c7..bdbb45e3 100644 --- a/ScreenToGif.ViewModel/ScreenToGif.ViewModel.csproj +++ b/ScreenToGif.ViewModel/ScreenToGif.ViewModel.csproj @@ -5,7 +5,7 @@ disable embedded AnyCPU;ARM64;x64;x86 - 2.40.2 + 2.41.0 10.0.17763.0 diff --git a/ScreenToGif.ViewModel/Tasks/MouseEventsViewModel.cs b/ScreenToGif.ViewModel/Tasks/MouseEventsViewModel.cs index 349823b8..c98b63a1 100644 --- a/ScreenToGif.ViewModel/Tasks/MouseEventsViewModel.cs +++ b/ScreenToGif.ViewModel/Tasks/MouseEventsViewModel.cs @@ -7,10 +7,12 @@ namespace ScreenToGif.ViewModel.Tasks; public class MouseEventsViewModel : BaseTaskViewModel { + private Color _highlightForegroundColor; private Color _leftButtonForegroundColor; private Color _rightButtonForegroundColor; private Color _middleButtonForegroundColor; - private Color _highlightForegroundColor; + private Color _firstExtraButtonForegroundColor; + private Color _secondExtraButtonForegroundColor; private double _width; private double _height; @@ -43,6 +45,18 @@ public Color MiddleButtonForegroundColor set => SetProperty(ref _middleButtonForegroundColor, value); } + public Color FirstExtraButtonForegroundColor + { + get => _firstExtraButtonForegroundColor; + set => SetProperty(ref _firstExtraButtonForegroundColor, value); + } + + public Color SecondExtraButtonForegroundColor + { + get => _secondExtraButtonForegroundColor; + set => SetProperty(ref _secondExtraButtonForegroundColor, value); + } + public double Width { get => _width; @@ -58,9 +72,11 @@ public double Height public override string ToString() { return $"{LocalizationHelper.Get("S.MouseHighlight.Color")} #{HighlightForegroundColor.A:X2}{HighlightForegroundColor.R:X2}{HighlightForegroundColor.G:X2}{HighlightForegroundColor.B:X2}, " + - $"{LocalizationHelper.Get("S.MouseClicks.Color.Left")} #{LeftButtonForegroundColor.A:X2}{LeftButtonForegroundColor.R:X2}{LeftButtonForegroundColor.G:X2}{LeftButtonForegroundColor.B:X2}, " + - $"{LocalizationHelper.Get("S.MouseClicks.Color.Middle")} #{MiddleButtonForegroundColor.A:X2}{MiddleButtonForegroundColor.R:X2}{MiddleButtonForegroundColor.G:X2}{MiddleButtonForegroundColor.B:X2}, " + + $"{LocalizationHelper.Get("S.MouseClicks.Color.Left")} #{LeftButtonForegroundColor.A:X2}{LeftButtonForegroundColor.R:X2}{LeftButtonForegroundColor.G:X2}{LeftButtonForegroundColor.B:X2}, " + $"{LocalizationHelper.Get("S.MouseClicks.Color.Right")} #{RightButtonForegroundColor.A:X2}{RightButtonForegroundColor.R:X2}{RightButtonForegroundColor.G:X2}{RightButtonForegroundColor.B:X2}, " + + $"{LocalizationHelper.Get("S.MouseClicks.Color.Middle")} #{MiddleButtonForegroundColor.A:X2}{MiddleButtonForegroundColor.R:X2}{MiddleButtonForegroundColor.G:X2}{MiddleButtonForegroundColor.B:X2}, " + + $"{LocalizationHelper.Get("S.MouseClicks.Color.FirstExtra")} #{FirstExtraButtonForegroundColor.A:X2}{FirstExtraButtonForegroundColor.R:X2}{FirstExtraButtonForegroundColor.G:X2}{FirstExtraButtonForegroundColor.B:X2}, " + + $"{LocalizationHelper.Get("S.MouseClicks.Color.SecondExtra")} #{SecondExtraButtonForegroundColor.A:X2}{SecondExtraButtonForegroundColor.R:X2}{SecondExtraButtonForegroundColor.G:X2}{SecondExtraButtonForegroundColor.B:X2}, " + $"{LocalizationHelper.Get("S.FreeDrawing.Width")} {Width}, {LocalizationHelper.Get("S.FreeDrawing.Height")} {Height}"; } @@ -72,6 +88,8 @@ public static MouseEventsViewModel Default() LeftButtonForegroundColor = Color.FromArgb(120, 255, 255, 0), RightButtonForegroundColor = Color.FromArgb(120, 255, 0, 0), MiddleButtonForegroundColor = Color.FromArgb(120, 0, 255, 255), + FirstExtraButtonForegroundColor = Color.FromArgb(120, 255, 0, 128), + SecondExtraButtonForegroundColor = Color.FromArgb(120, 255, 128, 0), Height = 12, Width = 12 }; @@ -83,8 +101,10 @@ public static MouseEventsViewModel FromSettings() { HighlightForegroundColor = UserSettings.All.MouseHighlightColor, LeftButtonForegroundColor = UserSettings.All.LeftMouseButtonClicksColor, - MiddleButtonForegroundColor = UserSettings.All.MiddleMouseButtonClicksColor, RightButtonForegroundColor = UserSettings.All.RightMouseButtonClicksColor, + MiddleButtonForegroundColor = UserSettings.All.MiddleMouseButtonClicksColor, + FirstExtraButtonForegroundColor = UserSettings.All.FirstExtraMouseButtonClicksColor, + SecondExtraButtonForegroundColor = UserSettings.All.SecondExtraMouseButtonClicksColor, Height = UserSettings.All.MouseEventsHeight, Width = UserSettings.All.MouseEventsWidth }; diff --git a/ScreenToGif/Resources/Localization/StringResources.en.xaml b/ScreenToGif/Resources/Localization/StringResources.en.xaml index 54357fbc..85765ba4 100644 --- a/ScreenToGif/Resources/Localization/StringResources.en.xaml +++ b/ScreenToGif/Resources/Localization/StringResources.en.xaml @@ -1393,6 +1393,8 @@ Left button color: Middle button color: Right button color: + 1st extra button color: + 2nd extra button color: Image diff --git a/ScreenToGif/Resources/Localization/StringResources.pt.xaml b/ScreenToGif/Resources/Localization/StringResources.pt.xaml index e98ee64f..f55c9417 100644 --- a/ScreenToGif/Resources/Localization/StringResources.pt.xaml +++ b/ScreenToGif/Resources/Localization/StringResources.pt.xaml @@ -797,6 +797,8 @@ Suporta salvar a animação com um fundo transparente. Alta qualidade • Gráficos Melhor para gravações com menor quantidade de cores. + KGy SOFT • Padrão + Recomendado para gravações de tela normais. Usa quantizador Median Cut sem pontilhamento. KGy SOFT • Balanceado Boa qualidade para imagens semelhantes a fotos usando o quantizador de Wu sem pontilhamento. KGy SOFT • Alta qualidade @@ -1390,6 +1392,8 @@ Cor do botão esquerdo: Cor do botão do meio: Cor do botão direito: + Cor do 1º botão extra: + Cor do 2º botão extra: Não há cliques de mouse detectados no seu projeto. @@ -1608,7 +1612,7 @@ Pontilhado: Escala Bayer: - + Quantizador Cor de Fundo: Pixels com alfa (transparência) que são considerados opacos pelo quantizador selecionado serão misturados com esta cor antes de obter a cor quantizada. @@ -1623,6 +1627,8 @@ Nível de bits personalizado. Quando marcado, o nível de bits pode ser configurado manualmente. ⚠️ Aviso: O nível de bit mais alto pode exigir MUITA memória! Um valor mais alto significa mais precisão, maior espaço de cores de destino, processamento mais lento e maior uso de memória. Por exemplo, se 1, então o resultado não pode ter mais de 8 cores, ou quando 2, não mais de 64 cores. Para os quantizadores Octree e Wu, afeta também o número máximo de tons monocromáticos. Por exemplo, se 5 (que é o padrão para o quantizador Wu), apenas 32 tons monocromáticos podem ser diferenciados. ⚠️ Cuidado: O quantizador Wu consome pelo menos 650 MB com o valor mais alto. + Espaço de cor linear + Quando marcado, algumas operações (mistura de alfa com plano de fundo, quantização, pontilhamento, procurar cores próximas na palete) são feitas no espaço de cor linear ao invés de no sRGB. Trabalhar no espaço de cores linear é mais lento, mas proporciona um resultado de melhor qualidade, especialmente quando o quantizador usa apenas algumas cores. ⚠️ Observação: Ao usar apenas algumas cores, o brilho de uma visualização possivelmente redimensionada pode estar incorreto porque o WPF realiza o redimensionamento no espaço de cores sRGB. Preto e Branco Paleta fixa de 1 bpp com as cores preto e branco. Tons de cinza com 4 cores @@ -1702,7 +1708,7 @@ Repetições: Especifica quantas vezes a animação será reproduzida. Permitir quadros delta. - Quando marcado, os pixels inalterados tentam ser detectados durante a codificação. Ao usar com um quantizador otimizado, esta opção possibilita que um quadro tenha mais de 256 cores. Esta opção é ignorada se o quantizador não usar transparência e a opção Permitir Quadros Recortados estiver desmarcada. + Quando marcado, os pixels inalterados tentam ser detectados durante a codificação. Ao usar com um quantizador otimizado, esta opção possibilita que um quadro tenha mais de 256 cores. Esta opção é ignorada se o quantizador não usar transparência e a opção Permitir Quadros Recortados estiver desmarcada. ⚠️ Observação: Esta opção pode causar artefatos visíveis nas cores ou no padrão de pontilhamento. Tolerância Delta: Especifica a tolerância máxima ao detectar pixels alterados. Se 0, então nenhuma diferença é tolerada. Se 255, então pode haver quadros (ou mesmo todos eles) que são adicionados sem conteúdo. O intervalo razoável está entre 0 e 16 para um quantizador otimizado. Aqueles com cores fixas podem ser usados com valores um pouco maiores com dithering. Se a tolerância Delta for muito alta, o resultado pode ter baixa qualidade. Clique para redefinir a tolerância delta. diff --git a/ScreenToGif/Resources/Settings.xaml b/ScreenToGif/Resources/Settings.xaml index a19b0773..5cd52b0c 100644 --- a/ScreenToGif/Resources/Settings.xaml +++ b/ScreenToGif/Resources/Settings.xaml @@ -147,7 +147,7 @@ - + @@ -357,8 +357,10 @@ #00000000 #78FFFF00 - #7800FFFF #78FF0000 + #7800FFFF + #78FF0080 + #78FF8000 12 12 diff --git a/ScreenToGif/ScreenToGif.csproj b/ScreenToGif/ScreenToGif.csproj index 41966abd..faa9231d 100644 --- a/ScreenToGif/ScreenToGif.csproj +++ b/ScreenToGif/ScreenToGif.csproj @@ -141,7 +141,7 @@ OnBuildSuccess Nicke Manarin Nicke Manarin - 2.40.2 + 2.41.0 Copyright© Nicke Manarin 2023 https://www.screentogif.com Readme.md diff --git a/ScreenToGif/UserControls/MouseClicksPanel.xaml b/ScreenToGif/UserControls/MouseClicksPanel.xaml index 48045b09..27c31737 100644 --- a/ScreenToGif/UserControls/MouseClicksPanel.xaml +++ b/ScreenToGif/UserControls/MouseClicksPanel.xaml @@ -21,6 +21,8 @@ + + @@ -40,12 +42,18 @@ - - + + + + + + + - - + diff --git a/ScreenToGif/Windows/Editor.xaml b/ScreenToGif/Windows/Editor.xaml index d8c5fbf5..aac97732 100644 --- a/ScreenToGif/Windows/Editor.xaml +++ b/ScreenToGif/Windows/Editor.xaml @@ -2921,6 +2921,8 @@ + + @@ -2971,14 +2973,23 @@ - - + + + + + + + - - + +