mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
Added step label use letters option
This commit is contained in:
parent
bb4f2420bc
commit
4971d98b45
6 changed files with 38 additions and 10 deletions
|
@ -1257,5 +1257,16 @@ public static string SafeStringFormat(IFormatProvider provider, string format, p
|
|||
|
||||
return format;
|
||||
}
|
||||
|
||||
public static string NumberToLetters(int num)
|
||||
{
|
||||
string result = "";
|
||||
while (--num >= 0)
|
||||
{
|
||||
result = (char)('A' + num % 26) + result;
|
||||
num /= 26;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2888,7 +2888,7 @@ internal static string ShapeType_RegionRectangle {
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Crop image.
|
||||
/// Looks up a localized string similar to Tool: Crop image.
|
||||
/// </summary>
|
||||
internal static string ShapeType_ToolCrop {
|
||||
get {
|
||||
|
|
|
@ -984,7 +984,7 @@ Would you like to download it?</value>
|
|||
<value>Drawing: Text (Background)</value>
|
||||
</data>
|
||||
<data name="ShapeType_ToolCrop" xml:space="preserve">
|
||||
<value>Crop image</value>
|
||||
<value>Tool: Crop image</value>
|
||||
</data>
|
||||
<data name="ShapeType_DrawingImageScreen" xml:space="preserve">
|
||||
<value>Drawing: Image (Screen)</value>
|
||||
|
|
|
@ -75,6 +75,7 @@ public class AnnotationOptions
|
|||
public int StepBorderSize { get; set; } = 0;
|
||||
public Color StepFillColor { get; set; } = PrimaryColor;
|
||||
public int StepFontSize { get; set; } = 18;
|
||||
public bool StepUseLetters { get; set; } = false;
|
||||
|
||||
// Blur effect
|
||||
public int BlurRadius { get; set; } = 15;
|
||||
|
|
|
@ -38,6 +38,7 @@ public class StepDrawingShape : EllipseDrawingShape
|
|||
|
||||
public int FontSize { get; set; }
|
||||
public int Number { get; set; }
|
||||
public bool UseLetters { get; set; }
|
||||
|
||||
public StepDrawingShape()
|
||||
{
|
||||
|
@ -62,6 +63,7 @@ public override void OnConfigLoad()
|
|||
FillColor = AnnotationOptions.StepFillColor;
|
||||
Shadow = AnnotationOptions.Shadow;
|
||||
FontSize = AnnotationOptions.StepFontSize;
|
||||
UseLetters = AnnotationOptions.StepUseLetters;
|
||||
}
|
||||
|
||||
public override void OnConfigSave()
|
||||
|
@ -71,6 +73,7 @@ public override void OnConfigSave()
|
|||
AnnotationOptions.StepFillColor = FillColor;
|
||||
AnnotationOptions.Shadow = Shadow;
|
||||
AnnotationOptions.StepFontSize = FontSize;
|
||||
AnnotationOptions.StepUseLetters = UseLetters;
|
||||
}
|
||||
|
||||
public override void OnDraw(Graphics g)
|
||||
|
@ -80,9 +83,11 @@ public override void OnDraw(Graphics g)
|
|||
|
||||
protected void DrawNumber(Graphics g)
|
||||
{
|
||||
string text = UseLetters ? Helpers.NumberToLetters(Number) : Number.ToString();
|
||||
|
||||
using (Font font = new Font(FontFamily.GenericSansSerif, FontSize, FontStyle.Bold))
|
||||
{
|
||||
Size textSize = g.MeasureString(Number.ToString(), font).ToSize();
|
||||
Size textSize = g.MeasureString(text, font).ToSize();
|
||||
int maxSize = Math.Max(textSize.Width, textSize.Height);
|
||||
int padding = 3;
|
||||
|
||||
|
@ -93,21 +98,21 @@ protected void DrawNumber(Graphics g)
|
|||
|
||||
if (Shadow)
|
||||
{
|
||||
DrawNumber(g, Number, font, ShadowColor, Rectangle.LocationOffset(ShadowOffset));
|
||||
DrawNumber(g, text, font, ShadowColor, Rectangle.LocationOffset(ShadowOffset));
|
||||
}
|
||||
|
||||
DrawNumber(g, Number, font, BorderColor, Rectangle);
|
||||
DrawNumber(g, text, font, BorderColor, Rectangle);
|
||||
}
|
||||
}
|
||||
|
||||
protected void DrawNumber(Graphics g, int number, Font font, Color textColor, Rectangle rect)
|
||||
protected void DrawNumber(Graphics g, string text, Font font, Color textColor, Rectangle rect)
|
||||
{
|
||||
using (StringFormat sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center })
|
||||
using (Brush textBrush = new SolidBrush(textColor))
|
||||
{
|
||||
g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
|
||||
rect = rect.LocationOffset(0, 1);
|
||||
g.DrawString(number.ToString(), font, textBrush, rect, sf);
|
||||
g.DrawString(text, font, textBrush, rect, sf);
|
||||
g.TextRenderingHint = TextRenderingHint.SystemDefault;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,8 +49,8 @@ internal partial class ShapeManager
|
|||
private ToolStripEx tsMain;
|
||||
private ToolStripButton tsbSaveImage, tsbBorderColor, tsbFillColor, tsbHighlightColor;
|
||||
private ToolStripDropDownButton tsddbShapeOptions;
|
||||
private ToolStripMenuItem tsmiArrowHeadsBothSide, tsmiShadow, tsmiUndo, tsmiDelete, tsmiDeleteAll, tsmiMoveTop, tsmiMoveUp, tsmiMoveDown, tsmiMoveBottom,
|
||||
tsmiRegionCapture, tsmiQuickCrop, tsmiTips, tsmiImageEditorBackgroundColor;
|
||||
private ToolStripMenuItem tsmiArrowHeadsBothSide, tsmiShadow, tsmiStepUseLetters, tsmiUndo, tsmiDelete, tsmiDeleteAll, tsmiMoveTop, tsmiMoveUp, tsmiMoveDown,
|
||||
tsmiMoveBottom, tsmiRegionCapture, tsmiQuickCrop, tsmiTips, tsmiImageEditorBackgroundColor;
|
||||
private ToolStripLabeledNumericUpDown tslnudBorderSize, tslnudCornerRadius, tslnudCenterPoints, tslnudBlurRadius, tslnudPixelateSize, tslnudStepFontSize;
|
||||
private ToolStripLabel tslDragLeft, tslDragRight;
|
||||
private ToolStripLabeledComboBox tscbCursorTypes;
|
||||
|
@ -535,6 +535,16 @@ internal void CreateToolbar()
|
|||
};
|
||||
tsddbShapeOptions.DropDownItems.Add(tslnudStepFontSize);
|
||||
|
||||
tsmiStepUseLetters = new ToolStripMenuItem("Use letters");
|
||||
tsmiStepUseLetters.Checked = false;
|
||||
tsmiStepUseLetters.CheckOnClick = true;
|
||||
tsmiStepUseLetters.Click += (sender, e) =>
|
||||
{
|
||||
AnnotationOptions.StepUseLetters = tsmiStepUseLetters.Checked;
|
||||
UpdateCurrentShape();
|
||||
};
|
||||
tsddbShapeOptions.DropDownItems.Add(tsmiStepUseLetters);
|
||||
|
||||
tsmiShadow = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_DropShadow);
|
||||
tsmiShadow.Checked = true;
|
||||
tsmiShadow.CheckOnClick = true;
|
||||
|
@ -1228,6 +1238,7 @@ private void UpdateMenu()
|
|||
tsbHighlightColor.Image = ImageHelpers.CreateColorPickerIcon(AnnotationOptions.HighlightColor, new Rectangle(0, 0, 16, 16));
|
||||
|
||||
tslnudStepFontSize.Content.Value = AnnotationOptions.StepFontSize;
|
||||
tsmiStepUseLetters.Checked = AnnotationOptions.StepUseLetters;
|
||||
|
||||
tsmiShadow.Checked = AnnotationOptions.Shadow;
|
||||
|
||||
|
@ -1315,7 +1326,7 @@ private void UpdateMenu()
|
|||
|
||||
tslnudCenterPoints.Visible = shapeType == ShapeType.DrawingLine || shapeType == ShapeType.DrawingArrow;
|
||||
tsmiArrowHeadsBothSide.Visible = shapeType == ShapeType.DrawingArrow;
|
||||
tslnudStepFontSize.Visible = shapeType == ShapeType.DrawingStep;
|
||||
tslnudStepFontSize.Visible = tsmiStepUseLetters.Visible = shapeType == ShapeType.DrawingStep;
|
||||
tscbCursorTypes.Visible = shapeType == ShapeType.DrawingCursor;
|
||||
tslnudBlurRadius.Visible = shapeType == ShapeType.EffectBlur;
|
||||
tslnudPixelateSize.Visible = shapeType == ShapeType.EffectPixelate;
|
||||
|
|
Loading…
Reference in a new issue