mirror of
https://github.com/greenshot/greenshot
synced 2025-08-22 06:23:24 -07:00
Added Greenshot.Base.Controls.GreenshotDoubleClickButton
Added fix for BUG-2565
This commit is contained in:
parent
3e68a92e6c
commit
9696c3f92e
2 changed files with 25 additions and 19 deletions
12
src/Greenshot.Base/Controls/GreenshotDoubleClickButton.cs
Normal file
12
src/Greenshot.Base/Controls/GreenshotDoubleClickButton.cs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace Greenshot.Base.Controls
|
||||||
|
{
|
||||||
|
public class GreenshotDoubleClickButton : Button
|
||||||
|
{
|
||||||
|
public GreenshotDoubleClickButton()
|
||||||
|
{
|
||||||
|
SetStyle(ControlStyles.StandardClick | ControlStyles.StandardDoubleClick, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -26,6 +26,7 @@ using System.Drawing;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using Greenshot.Base.Controls;
|
||||||
using Greenshot.Base.IniFile;
|
using Greenshot.Base.IniFile;
|
||||||
using Greenshot.Editor.Configuration;
|
using Greenshot.Editor.Configuration;
|
||||||
using Greenshot.Editor.Controls;
|
using Greenshot.Editor.Controls;
|
||||||
|
@ -58,7 +59,6 @@ namespace Greenshot.Editor.Forms
|
||||||
private readonly List<Button> _recentColorButtons = new List<Button>();
|
private readonly List<Button> _recentColorButtons = new List<Button>();
|
||||||
private readonly ToolTip _toolTip = new ToolTip();
|
private readonly ToolTip _toolTip = new ToolTip();
|
||||||
private bool _updateInProgress;
|
private bool _updateInProgress;
|
||||||
private DateTime _lastClick = DateTime.Now;
|
|
||||||
|
|
||||||
public Color Color
|
public Color Color
|
||||||
{
|
{
|
||||||
|
@ -116,7 +116,7 @@ namespace Greenshot.Editor.Forms
|
||||||
|
|
||||||
private Button CreateColorButton(Color color, int x, int y, int w, int h)
|
private Button CreateColorButton(Color color, int x, int y, int w, int h)
|
||||||
{
|
{
|
||||||
Button b = new Button
|
Button b = new GreenshotDoubleClickButton
|
||||||
{
|
{
|
||||||
BackColor = color,
|
BackColor = color,
|
||||||
FlatStyle = FlatStyle.Flat,
|
FlatStyle = FlatStyle.Flat,
|
||||||
|
@ -126,10 +126,17 @@ namespace Greenshot.Editor.Forms
|
||||||
};
|
};
|
||||||
b.FlatAppearance.BorderSize = 0;
|
b.FlatAppearance.BorderSize = 0;
|
||||||
b.Click += ColorButtonClick;
|
b.Click += ColorButtonClick;
|
||||||
_toolTip.SetToolTip(b, ColorTranslator.ToHtml(color) + " | R:" + color.R + ", G:" + color.G + ", B:" + color.B);
|
b.DoubleClick += ColorButtonDoubleClick;
|
||||||
|
SetButtonTooltip(b, color);
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ColorButtonDoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ColorButtonClick(sender, e);
|
||||||
|
BtnApplyClick(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
private void CreateLastUsedColorButtonRow(int x, int y, int w, int h)
|
private void CreateLastUsedColorButtonRow(int x, int y, int w, int h)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 12; i++)
|
for (int i = 0; i < 12; i++)
|
||||||
|
@ -149,6 +156,7 @@ namespace Greenshot.Editor.Forms
|
||||||
{
|
{
|
||||||
_recentColorButtons[i].BackColor = EditorConfig.RecentColors[i];
|
_recentColorButtons[i].BackColor = EditorConfig.RecentColors[i];
|
||||||
_recentColorButtons[i].Enabled = true;
|
_recentColorButtons[i].Enabled = true;
|
||||||
|
SetButtonTooltip(_recentColorButtons[i], EditorConfig.RecentColors[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,25 +253,11 @@ namespace Greenshot.Editor.Forms
|
||||||
{
|
{
|
||||||
Button b = (Button)sender;
|
Button b = (Button)sender;
|
||||||
PreviewColor(b.BackColor, b);
|
PreviewColor(b.BackColor, b);
|
||||||
|
|
||||||
if (IsDoubleClick(_lastClick))
|
|
||||||
{
|
|
||||||
BtnApplyClick(this, e);
|
|
||||||
}
|
|
||||||
|
|
||||||
_lastClick = DateTime.Now;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool IsDoubleClick(DateTime lastClick)
|
private void SetButtonTooltip(Button colorButton, Color color)
|
||||||
{
|
{
|
||||||
TimeSpan diff = DateTime.Now - lastClick;
|
_toolTip.SetToolTip(colorButton, ColorTranslator.ToHtml(color) + " | R:" + color.R + ", G:" + color.G + ", B:" + color.B);
|
||||||
|
|
||||||
if ((diff.TotalMilliseconds) <= SystemInformation.DoubleClickTime)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BtnTransparentClick(object sender, EventArgs e)
|
private void BtnTransparentClick(object sender, EventArgs e)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue