mirror of
https://github.com/greenshot/greenshot
synced 2025-07-06 04:52:16 -07:00
Add shortcuts (0-9, +/-) for foreground color, background color, line thickness, bold and shadow (#338) (#366)
Co-authored-by: meschi89 <45665020+meschi89@users.noreply.github.com>
This commit is contained in:
parent
8985eb58fa
commit
f98cbd1c44
18 changed files with 563 additions and 9 deletions
|
@ -111,6 +111,10 @@ namespace Greenshot.Base.Interfaces.Drawing
|
|||
bool HasIntersectingFilters(Rectangle clipRectangle);
|
||||
bool IntersectsWith(Rectangle clipRectangle);
|
||||
void Draw(Graphics g, Bitmap bitmap, RenderMode renderMode, Rectangle clipRectangle);
|
||||
void SetForegroundColor(Color color);
|
||||
void SetBackgroundColor(Color color);
|
||||
int IncreaseLineThickness(int increaseBy);
|
||||
bool FlipShadow();
|
||||
void Invalidate();
|
||||
void PullElementsToTop(IDrawableContainerList elements);
|
||||
bool CanPushDown(IDrawableContainerList elements);
|
||||
|
|
|
@ -38,6 +38,10 @@ namespace Greenshot.Base.Interfaces
|
|||
event SurfaceMessageEventHandler SurfaceMessage;
|
||||
event SurfaceDrawingModeEventHandler DrawingModeChanged;
|
||||
event SurfaceElementEventHandler MovingElementChanged;
|
||||
event SurfaceForegroundColorEventHandler ForegroundColorChanged;
|
||||
event SurfaceBackgroundColorEventHandler BackgroundColorChanged;
|
||||
event SurfaceLineThicknessEventHandler LineThicknessChanged;
|
||||
event SurfaceShadowEventHandler ShadowChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Start value of the step-labels (counts)
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
* For more information see: https://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
|
||||
namespace Greenshot.Base.Interfaces
|
||||
{
|
||||
public class SurfaceBackgroundColorEventArgs : EventArgs
|
||||
{
|
||||
public Color Color { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
* For more information see: https://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Greenshot.Base.Interfaces
|
||||
{
|
||||
public delegate void SurfaceBackgroundColorEventHandler (object sender, SurfaceBackgroundColorEventArgs e);
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
* For more information see: https://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
|
||||
namespace Greenshot.Base.Interfaces
|
||||
{
|
||||
public class SurfaceForegroundColorEventArgs : EventArgs
|
||||
{
|
||||
public Color Color { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
* For more information see: https://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Greenshot.Base.Interfaces
|
||||
{
|
||||
public delegate void SurfaceForegroundColorEventHandler (object sender, SurfaceForegroundColorEventArgs e);
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
* For more information see: https://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
|
||||
namespace Greenshot.Base.Interfaces
|
||||
{
|
||||
public class SurfaceLineThicknessEventArgs : EventArgs
|
||||
{
|
||||
public int Thickness { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
* For more information see: https://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Greenshot.Base.Interfaces
|
||||
{
|
||||
public delegate void SurfaceLineThicknessEventHandler (object sender, SurfaceLineThicknessEventArgs e);
|
||||
}
|
31
src/Greenshot.Base/Interfaces/SurfaceShadowEventArgs.cs
Normal file
31
src/Greenshot.Base/Interfaces/SurfaceShadowEventArgs.cs
Normal file
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
* For more information see: https://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
|
||||
namespace Greenshot.Base.Interfaces
|
||||
{
|
||||
public class SurfaceShadowEventArgs : EventArgs
|
||||
{
|
||||
public bool HasShadow { get; set; }
|
||||
}
|
||||
}
|
25
src/Greenshot.Base/Interfaces/SurfaceShadowEventHandler.cs
Normal file
25
src/Greenshot.Base/Interfaces/SurfaceShadowEventHandler.cs
Normal file
|
@ -0,0 +1,25 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom
|
||||
*
|
||||
* For more information see: https://getgreenshot.org/
|
||||
* The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Greenshot.Base.Interfaces
|
||||
{
|
||||
public delegate void SurfaceShadowEventHandler (object sender, SurfaceShadowEventArgs e);
|
||||
}
|
|
@ -30,6 +30,7 @@ using Greenshot.Base.Core;
|
|||
using Greenshot.Base.Interfaces;
|
||||
using Greenshot.Base.Interfaces.Drawing;
|
||||
using Greenshot.Editor.Configuration;
|
||||
using Greenshot.Editor.Drawing.Fields;
|
||||
using Greenshot.Editor.Forms;
|
||||
using Greenshot.Editor.Memento;
|
||||
|
||||
|
@ -430,6 +431,70 @@ namespace Greenshot.Editor.Drawing
|
|||
}
|
||||
}
|
||||
|
||||
public void SetForegroundColor(Color color)
|
||||
{
|
||||
var dcs = ToArray();
|
||||
var field = FieldType.LINE_COLOR;
|
||||
foreach (var dc in dcs)
|
||||
{
|
||||
if (dc is not AbstractFieldHolderWithChildren fh) continue;
|
||||
if (!fh.HasField(field)) continue;
|
||||
|
||||
fh.SetFieldValue(field, color);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetBackgroundColor(Color color)
|
||||
{
|
||||
var dcs = ToArray();
|
||||
var field = FieldType.FILL_COLOR;
|
||||
foreach (var dc in dcs)
|
||||
{
|
||||
if (dc is not AbstractFieldHolderWithChildren fh) continue;
|
||||
if (!fh.HasField(field)) continue;
|
||||
|
||||
fh.SetFieldValue(field, color);
|
||||
}
|
||||
}
|
||||
|
||||
public int IncreaseLineThickness(int increaseBy)
|
||||
{
|
||||
var dcs = ToArray();
|
||||
var field = FieldType.LINE_THICKNESS;
|
||||
var lastThickness = 0;
|
||||
foreach (var dc in dcs)
|
||||
{
|
||||
if (dc is not AbstractFieldHolderWithChildren fh) continue;
|
||||
if (!fh.HasField(field)) continue;
|
||||
|
||||
var currentThickness = (int)fh.GetFieldValue(field);
|
||||
var thickness = Math.Max(0, currentThickness + increaseBy);
|
||||
fh.SetFieldValue(field, thickness);
|
||||
lastThickness = thickness;
|
||||
}
|
||||
|
||||
return lastThickness;
|
||||
}
|
||||
|
||||
public bool FlipShadow()
|
||||
{
|
||||
var dcs = ToArray();
|
||||
var field = FieldType.SHADOW;
|
||||
var lastShadow = false;
|
||||
foreach (var dc in dcs)
|
||||
{
|
||||
if (dc is not AbstractFieldHolderWithChildren fh) continue;
|
||||
if (!fh.HasField(field)) continue;
|
||||
|
||||
var currentShadow = (bool)fh.GetFieldValue(field);
|
||||
var shadow = !currentShadow;
|
||||
fh.SetFieldValue(field, shadow);
|
||||
lastShadow = shadow;
|
||||
}
|
||||
|
||||
return lastShadow;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Indicates whether the given list of elements can be pushed down,
|
||||
/// i.e. whether there is at least one unselected element lower in hierarchy
|
||||
|
|
|
@ -112,6 +112,38 @@ namespace Greenshot.Editor.Drawing
|
|||
remove => _surfaceMessage -= value;
|
||||
}
|
||||
|
||||
[NonSerialized] private SurfaceForegroundColorEventHandler _foregroundColorChanged;
|
||||
|
||||
public event SurfaceForegroundColorEventHandler ForegroundColorChanged
|
||||
{
|
||||
add => _foregroundColorChanged += value;
|
||||
remove => _foregroundColorChanged -= value;
|
||||
}
|
||||
|
||||
[NonSerialized] private SurfaceBackgroundColorEventHandler _backgroundColorChanged;
|
||||
|
||||
public event SurfaceBackgroundColorEventHandler BackgroundColorChanged
|
||||
{
|
||||
add => _backgroundColorChanged += value;
|
||||
remove => _backgroundColorChanged -= value;
|
||||
}
|
||||
|
||||
[NonSerialized] private SurfaceLineThicknessEventHandler _lineThicknessChanged;
|
||||
|
||||
public event SurfaceLineThicknessEventHandler LineThicknessChanged
|
||||
{
|
||||
add => _lineThicknessChanged += value;
|
||||
remove => _lineThicknessChanged -= value;
|
||||
}
|
||||
|
||||
[NonSerialized] private SurfaceShadowEventHandler _shadowChanged;
|
||||
|
||||
public event SurfaceShadowEventHandler ShadowChanged
|
||||
{
|
||||
add => _shadowChanged += value;
|
||||
remove => _shadowChanged -= value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// inUndoRedo makes sure we don't undo/redo while in a undo/redo action
|
||||
/// </summary>
|
||||
|
@ -1060,6 +1092,74 @@ namespace Greenshot.Editor.Drawing
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Use to update UI when pressing a key to change the foreground color
|
||||
/// </summary>
|
||||
/// <param name="source">Who send</param>
|
||||
/// <param name="color">new color</param>
|
||||
public void UpdateForegroundColorEvent(object source, Color color)
|
||||
{
|
||||
if (_foregroundColorChanged != null)
|
||||
{
|
||||
var eventArgs = new SurfaceForegroundColorEventArgs
|
||||
{
|
||||
Color = color,
|
||||
};
|
||||
_foregroundColorChanged(source, eventArgs);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Use to update UI when pressing a key to change the background color
|
||||
/// </summary>
|
||||
/// <param name="source">Who send</param>
|
||||
/// <param name="color">new color</param>
|
||||
public void UpdateBackgroundColorEvent(object source, Color color)
|
||||
{
|
||||
if (_lineThicknessChanged != null)
|
||||
{
|
||||
var eventArgs = new SurfaceBackgroundColorEventArgs
|
||||
{
|
||||
Color = color,
|
||||
};
|
||||
_backgroundColorChanged(source, eventArgs);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Use to update UI when pressing a key to change the line thickness
|
||||
/// </summary>
|
||||
/// <param name="source">Who send</param>
|
||||
/// <param name="thickness">new thickness</param>
|
||||
public void UpdateLineThicknessEvent(object source, int thickness)
|
||||
{
|
||||
if (_lineThicknessChanged != null)
|
||||
{
|
||||
var eventArgs = new SurfaceLineThicknessEventArgs
|
||||
{
|
||||
Thickness = thickness,
|
||||
};
|
||||
_lineThicknessChanged(source, eventArgs);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Use to update UI when pressing the key to show/hide the shadow
|
||||
/// </summary>
|
||||
/// <param name="source">Who send</param>
|
||||
/// <param name="hasShadow">has shadow</param>
|
||||
public void UpdateShadowEvent(object source, bool hasShadow)
|
||||
{
|
||||
if (_shadowChanged != null)
|
||||
{
|
||||
var eventArgs = new SurfaceShadowEventArgs
|
||||
{
|
||||
HasShadow = hasShadow,
|
||||
};
|
||||
_shadowChanged(source, eventArgs);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Crop the surface
|
||||
/// </summary>
|
||||
|
@ -2212,6 +2312,87 @@ namespace Greenshot.Editor.Drawing
|
|||
case Keys.Escape:
|
||||
ConfirmSelectedConfirmableElements(false);
|
||||
break;
|
||||
case Keys.NumPad0:
|
||||
SetSelectedElementColor(Color.Orange, true, shiftModifier);
|
||||
break;
|
||||
case Keys.NumPad1:
|
||||
SetSelectedElementColor(Color.Red, true, shiftModifier);
|
||||
break;
|
||||
case Keys.NumPad2:
|
||||
SetSelectedElementColor(Color.FromArgb(0,255,0), true, shiftModifier); // Color.Green is #008000 and not #00FF00
|
||||
break;
|
||||
case Keys.NumPad3:
|
||||
SetSelectedElementColor(Color.Blue, true, shiftModifier);
|
||||
break;
|
||||
case Keys.NumPad4:
|
||||
SetSelectedElementColor(Color.Cyan, true, shiftModifier);
|
||||
break;
|
||||
case Keys.NumPad5:
|
||||
SetSelectedElementColor(Color.Magenta, true, shiftModifier);
|
||||
break;
|
||||
case Keys.NumPad6:
|
||||
SetSelectedElementColor(Color.Yellow, true, shiftModifier);
|
||||
break;
|
||||
case Keys.NumPad7:
|
||||
SetSelectedElementColor(Color.Black, true, shiftModifier);
|
||||
break;
|
||||
case Keys.NumPad8:
|
||||
SetSelectedElementColor(Color.Gray, true, shiftModifier);
|
||||
break;
|
||||
case Keys.NumPad9:
|
||||
SetSelectedElementColor(Color.White, true, shiftModifier);
|
||||
break;
|
||||
case Keys.D0:
|
||||
case Keys.D0 | Keys.Shift:
|
||||
SetSelectedElementColor(shiftModifier ? Color.Orange : Color.Transparent, false, shiftModifier);
|
||||
break;
|
||||
case Keys.D1:
|
||||
case Keys.D1 | Keys.Shift:
|
||||
SetSelectedElementColor(Color.Red, false, shiftModifier);
|
||||
break;
|
||||
case Keys.D2:
|
||||
case Keys.D2 | Keys.Shift:
|
||||
SetSelectedElementColor(Color.Green, false, shiftModifier);
|
||||
break;
|
||||
case Keys.D3:
|
||||
case Keys.D3 | Keys.Shift:
|
||||
SetSelectedElementColor(Color.Blue, false, shiftModifier);
|
||||
break;
|
||||
case Keys.D4:
|
||||
case Keys.D4 | Keys.Shift:
|
||||
SetSelectedElementColor(Color.Cyan, false, shiftModifier);
|
||||
break;
|
||||
case Keys.D5:
|
||||
case Keys.D5 | Keys.Shift:
|
||||
SetSelectedElementColor(Color.Magenta, false, shiftModifier);
|
||||
break;
|
||||
case Keys.D6:
|
||||
case Keys.D6 | Keys.Shift:
|
||||
SetSelectedElementColor(Color.Yellow, false, shiftModifier);
|
||||
break;
|
||||
case Keys.D7:
|
||||
case Keys.D7 | Keys.Shift:
|
||||
SetSelectedElementColor(Color.Black, false, shiftModifier);
|
||||
break;
|
||||
case Keys.D8:
|
||||
case Keys.D8 | Keys.Shift:
|
||||
SetSelectedElementColor(Color.Gray, false, shiftModifier);
|
||||
break;
|
||||
case Keys.D9:
|
||||
case Keys.D9 | Keys.Shift:
|
||||
SetSelectedElementColor(Color.White, false, shiftModifier);
|
||||
break;
|
||||
case Keys.Add:
|
||||
case Keys.Add | Keys.Shift:
|
||||
ChangeLineThickness(shiftModifier ? 5 : 1);
|
||||
break;
|
||||
case Keys.Subtract:
|
||||
case Keys.Subtract | Keys.Shift:
|
||||
ChangeLineThickness(shiftModifier ? -5 : -1);
|
||||
break;
|
||||
case Keys.Divide:
|
||||
FlipShadow();
|
||||
break;
|
||||
/*case Keys.Delete:
|
||||
RemoveSelectedElements();
|
||||
break;*/
|
||||
|
@ -2231,6 +2412,36 @@ namespace Greenshot.Editor.Drawing
|
|||
return false;
|
||||
}
|
||||
|
||||
// for laptops without numPads, also allow shift modifier
|
||||
private void SetSelectedElementColor(Color color, bool numPad, bool shift)
|
||||
{
|
||||
if (numPad || shift)
|
||||
{
|
||||
selectedElements.SetForegroundColor(color);
|
||||
UpdateForegroundColorEvent(this, color);
|
||||
}
|
||||
else
|
||||
{
|
||||
selectedElements.SetBackgroundColor(color);
|
||||
UpdateBackgroundColorEvent(this, color);
|
||||
}
|
||||
selectedElements.Invalidate();
|
||||
}
|
||||
|
||||
private void ChangeLineThickness(int increaseBy)
|
||||
{
|
||||
var newThickness = selectedElements.IncreaseLineThickness(increaseBy);
|
||||
UpdateLineThicknessEvent(this, newThickness);
|
||||
selectedElements.Invalidate();
|
||||
}
|
||||
|
||||
private void FlipShadow()
|
||||
{
|
||||
var shadow = selectedElements.FlipShadow();
|
||||
UpdateShadowEvent(this, shadow);
|
||||
selectedElements.Invalidate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Property for accessing the elements on the surface
|
||||
/// </summary>
|
||||
|
|
|
@ -230,6 +230,10 @@ namespace Greenshot.Editor.Forms
|
|||
_surface.DrawingModeChanged += Surface_DrawingModeChanged;
|
||||
_surface.SurfaceSizeChanged += SurfaceSizeChanged;
|
||||
_surface.SurfaceMessage += SurfaceMessageReceived;
|
||||
_surface.ForegroundColorChanged += ForegroundColorChanged;
|
||||
_surface.BackgroundColorChanged += BackgroundColorChanged;
|
||||
_surface.LineThicknessChanged += LineThicknessChanged;
|
||||
_surface.ShadowChanged += ShadowChanged;
|
||||
_surface.FieldAggregator.FieldChanged += FieldAggregatorFieldChanged;
|
||||
SurfaceSizeChanged(Surface, null);
|
||||
|
||||
|
@ -498,6 +502,46 @@ namespace Greenshot.Editor.Forms
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is called when the foreground color of the select element chances, used for shortcuts
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="eventArgs"></param>
|
||||
private void ForegroundColorChanged(object sender, SurfaceForegroundColorEventArgs eventArgs)
|
||||
{
|
||||
btnLineColor.SelectedColor = eventArgs.Color;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is called when the background color of the select element chances, used for shortcuts
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="eventArgs"></param>
|
||||
private void BackgroundColorChanged(object sender, SurfaceBackgroundColorEventArgs eventArgs)
|
||||
{
|
||||
btnFillColor.SelectedColor = eventArgs.Color;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is called when the line thickness of the select element chances, used for shortcuts
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="eventArgs"></param>
|
||||
private void LineThicknessChanged(object sender, SurfaceLineThicknessEventArgs eventArgs)
|
||||
{
|
||||
lineThicknessUpDown.Value = eventArgs.Thickness;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is called when the shadow of the select element chances, used for shortcuts
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="eventArgs"></param>
|
||||
private void ShadowChanged(object sender, SurfaceShadowEventArgs eventArgs)
|
||||
{
|
||||
shadowButton.Checked = eventArgs.HasShadow;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is called when the size of the surface chances, used for resizing and displaying the size information
|
||||
/// </summary>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<!--
|
||||
Note to translator: uncomment entry "about_translation" to have
|
||||
your efforts honored in the "About Greenshot" dialog
|
||||
TODO: remove newlines as in other files -> this leads to problems in multiline texts (or try xml:space=preserve)
|
||||
-->
|
||||
<resource name="about_translation">
|
||||
Dansk oversættelse af Jens Jacob Thomsen
|
||||
|
|
|
@ -77,7 +77,7 @@ schnell zu finden. Vielen Dank :)</resource>
|
|||
<resource name="editor_arrowheads_none">Keine</resource>
|
||||
<resource name="editor_arrowheads_start">Anfangspunkt</resource>
|
||||
<resource name="editor_autocrop">Automatisch zuschneiden</resource>
|
||||
<resource name="editor_backcolor">Hintergrundfarbe</resource>
|
||||
<resource name="editor_backcolor">Hintergrundfarbe (0-9)</resource>
|
||||
<resource name="editor_blur_radius">Weichzeichner-Radius</resource>
|
||||
<resource name="editor_bold">Fett</resource>
|
||||
<resource name="editor_border">Rand</resource>
|
||||
|
@ -110,7 +110,7 @@ schnell zu finden. Vielen Dank :)</resource>
|
|||
<resource name="editor_email">E-Mail</resource>
|
||||
<resource name="editor_file">Datei</resource>
|
||||
<resource name="editor_fontsize">Größe</resource>
|
||||
<resource name="editor_forecolor">Rahmenfarbe</resource>
|
||||
<resource name="editor_forecolor">Rahmenfarbe (NumPad0-9, Shift+0-9)</resource>
|
||||
<resource name="editor_grayscale">Graustufe</resource>
|
||||
<resource name="editor_highlight_area">Bereich hervorheben</resource>
|
||||
<resource name="editor_highlight_grayscale">Graustufen</resource>
|
||||
|
@ -146,7 +146,7 @@ schnell zu finden. Vielen Dank :)</resource>
|
|||
<resource name="editor_saveas">Speichern unter...</resource>
|
||||
<resource name="editor_selectall">Alle Objekte auswählen</resource>
|
||||
<resource name="editor_senttoprinter">Druckauftrag wurde an '{0}' gesendet.</resource>
|
||||
<resource name="editor_shadow">Schatten An/Aus</resource>
|
||||
<resource name="editor_shadow">Schatten An/Aus (/)</resource>
|
||||
<resource name="editor_storedtoclipboard">Bild wurde in Zwischenablage kopiert.</resource>
|
||||
<resource name="editor_thickness">Linienstärke</resource>
|
||||
<resource name="editor_title">Greenshot Editor</resource>
|
||||
|
|
|
@ -78,7 +78,7 @@ Also, we would highly appreciate if you checked whether a tracker item already e
|
|||
<resource name="editor_arrowheads_none">None</resource>
|
||||
<resource name="editor_arrowheads_start">Start point</resource>
|
||||
<resource name="editor_autocrop">Auto crop</resource>
|
||||
<resource name="editor_backcolor">Fill color</resource>
|
||||
<resource name="editor_backcolor">Fill color (0-9)</resource>
|
||||
<resource name="editor_blur_radius">Blur radius</resource>
|
||||
<resource name="editor_bold">Bold</resource>
|
||||
<resource name="editor_border">Border</resource>
|
||||
|
@ -111,7 +111,7 @@ Also, we would highly appreciate if you checked whether a tracker item already e
|
|||
<resource name="editor_email">E-Mail</resource>
|
||||
<resource name="editor_file">File</resource>
|
||||
<resource name="editor_fontsize">Size</resource>
|
||||
<resource name="editor_forecolor">Line color</resource>
|
||||
<resource name="editor_forecolor">Line color (NumPad0-9, Shift+0-9)</resource>
|
||||
<resource name="editor_grayscale">Grayscale</resource>
|
||||
<resource name="editor_highlight_area">Highlight area</resource>
|
||||
<resource name="editor_highlight_grayscale">Grayscale</resource>
|
||||
|
@ -147,7 +147,7 @@ Also, we would highly appreciate if you checked whether a tracker item already e
|
|||
<resource name="editor_saveas">Save as...</resource>
|
||||
<resource name="editor_selectall">Select all</resource>
|
||||
<resource name="editor_senttoprinter">Print job was sent to '{0}'.</resource>
|
||||
<resource name="editor_shadow">Drop shadow</resource>
|
||||
<resource name="editor_shadow">Drop shadow (/)</resource>
|
||||
<resource name="editor_storedtoclipboard">Image stored to clipboard.</resource>
|
||||
<resource name="editor_thickness">Line thickness</resource>
|
||||
<resource name="editor_title">Greenshot image editor</resource>
|
||||
|
|
|
@ -78,7 +78,7 @@ Controleer ook even of dit probleem mogelijk al gemeld is! Gebruik de zoekfuncti
|
|||
<resource name="editor_arrowheads_none">Geen</resource>
|
||||
<resource name="editor_arrowheads_start">Startpunt</resource>
|
||||
<resource name="editor_autocrop">Automatisch bijsnijden</resource>
|
||||
<resource name="editor_backcolor">Vulkleur</resource>
|
||||
<resource name="editor_backcolor">Vulkleur (0-9)</resource>
|
||||
<resource name="editor_blur_radius">Vervagingsradius</resource>
|
||||
<resource name="editor_bold">Vet</resource>
|
||||
<resource name="editor_border">Rand</resource>
|
||||
|
@ -111,7 +111,7 @@ Controleer ook even of dit probleem mogelijk al gemeld is! Gebruik de zoekfuncti
|
|||
<resource name="editor_email">E-mail</resource>
|
||||
<resource name="editor_file">Bestand</resource>
|
||||
<resource name="editor_fontsize">Grootte</resource>
|
||||
<resource name="editor_forecolor">Lijnkleur</resource>
|
||||
<resource name="editor_forecolor">Lijnkleur (NumPad0-9, Shift+0-9)</resource>
|
||||
<resource name="editor_grayscale">Grijstinten</resource>
|
||||
<resource name="editor_highlight_area">Gebied markeren</resource>
|
||||
<resource name="editor_highlight_grayscale">Grijstinten</resource>
|
||||
|
@ -147,7 +147,7 @@ Controleer ook even of dit probleem mogelijk al gemeld is! Gebruik de zoekfuncti
|
|||
<resource name="editor_saveas">Opslaan als…</resource>
|
||||
<resource name="editor_selectall">Alles selecteren</resource>
|
||||
<resource name="editor_senttoprinter">Afdruktaak verzonden naar '{0}'.</resource>
|
||||
<resource name="editor_shadow">Schaduw</resource>
|
||||
<resource name="editor_shadow">Schaduw (/)</resource>
|
||||
<resource name="editor_storedtoclipboard">Afbeelding opgeslagen op het klembord.</resource>
|
||||
<resource name="editor_thickness">Lijndikte</resource>
|
||||
<resource name="editor_title">Greenshot beeldbewerker</resource>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<!--
|
||||
Note to translator: uncomment entry "about_translation" to have
|
||||
your efforts honored in the "About Greenshot" dialog
|
||||
TODO: remove newlines as in other files -> this leads to problems in multiline texts (or try xml:space=preserve)
|
||||
-->
|
||||
<resource name="about_translation">
|
||||
Traducere în limba română - Radu Mogoș
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue