mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
If crop buttons out of client area then move them to inside crop rectangle
This commit is contained in:
parent
b34003a5dd
commit
f2bb4d7f6f
3 changed files with 28 additions and 18 deletions
|
@ -67,7 +67,7 @@ public override void OnDraw(Graphics g)
|
|||
|
||||
g.SmoothingMode = SmoothingMode.None;
|
||||
|
||||
using (Font font = new Font("Times New Roman", 18))
|
||||
using (Font font = new Font("Arial", 18))
|
||||
using (StringFormat sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center })
|
||||
{
|
||||
g.DrawString(Text, font, Brushes.Black, rect.LocationOffset(0, 4), sf);
|
||||
|
|
|
@ -35,6 +35,12 @@ public abstract class BaseTool : BaseShape
|
|||
{
|
||||
public override ShapeCategory ShapeCategory { get; } = ShapeCategory.Tool;
|
||||
|
||||
public abstract void OnDraw(Graphics g);
|
||||
public virtual void OnDraw(Graphics g)
|
||||
{
|
||||
if (IsValidShape)
|
||||
{
|
||||
Manager.DrawRegionArea(g, Rectangle, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -35,27 +35,31 @@ public class CropTool : BaseTool
|
|||
public override bool LimitRectangleToInsideCanvas { get; } = true;
|
||||
|
||||
private ButtonObject confirmButton, cancelButton;
|
||||
private Size buttonSize = new Size(80, 40);
|
||||
private int buttonOffset = 15;
|
||||
|
||||
public override void OnUpdate()
|
||||
{
|
||||
base.OnUpdate();
|
||||
|
||||
if (confirmButton != null)
|
||||
if (confirmButton != null && cancelButton != null)
|
||||
{
|
||||
confirmButton.Rectangle = new Rectangle(Rectangle.Right - cancelButton.Rectangle.Width - buttonOffset - confirmButton.Rectangle.Width,
|
||||
Rectangle.Bottom + buttonOffset, confirmButton.Rectangle.Width, confirmButton.Rectangle.Height);
|
||||
|
||||
cancelButton.Rectangle = new Rectangle(Rectangle.Right - cancelButton.Rectangle.Width,
|
||||
Rectangle.Bottom + buttonOffset, cancelButton.Rectangle.Width, cancelButton.Rectangle.Height);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnDraw(Graphics g)
|
||||
{
|
||||
if (IsValidShape)
|
||||
{
|
||||
Manager.DrawRegionArea(g, Rectangle, true);
|
||||
if (Rectangle.Bottom + buttonOffset + buttonSize.Height > Manager.Form.ClientArea.Bottom &&
|
||||
Rectangle.Width > buttonSize.Width * 2 + buttonOffset * 3 &&
|
||||
Rectangle.Height > buttonSize.Height + buttonOffset * 2)
|
||||
{
|
||||
confirmButton.Rectangle = new Rectangle(Rectangle.Right - buttonOffset * 2 - buttonSize.Width * 2,
|
||||
Rectangle.Bottom - buttonOffset - buttonSize.Height, buttonSize.Width, buttonSize.Height);
|
||||
cancelButton.Rectangle = new Rectangle(Rectangle.Right - buttonOffset - buttonSize.Width,
|
||||
Rectangle.Bottom - buttonOffset - buttonSize.Height, buttonSize.Width, buttonSize.Height);
|
||||
}
|
||||
else
|
||||
{
|
||||
confirmButton.Rectangle = new Rectangle(Rectangle.Right - buttonSize.Width * 2 - buttonOffset,
|
||||
Rectangle.Bottom + buttonOffset, buttonSize.Width, buttonSize.Height);
|
||||
cancelButton.Rectangle = new Rectangle(Rectangle.Right - buttonSize.Width,
|
||||
Rectangle.Bottom + buttonOffset, buttonSize.Width, buttonSize.Height);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -65,7 +69,7 @@ public override void OnCreated()
|
|||
{
|
||||
Text = "\u2714",
|
||||
ButtonColor = Color.ForestGreen,
|
||||
Rectangle = new Rectangle(0, 0, 80, 40),
|
||||
Rectangle = new Rectangle(new Point(), buttonSize),
|
||||
Visible = true
|
||||
};
|
||||
confirmButton.MousePressed += ConfirmButton_MousePressed;
|
||||
|
@ -75,7 +79,7 @@ public override void OnCreated()
|
|||
{
|
||||
Text = "\u2716",
|
||||
ButtonColor = Color.FromArgb(227, 45, 45),
|
||||
Rectangle = new Rectangle(0, 0, 80, 40),
|
||||
Rectangle = new Rectangle(new Point(), buttonSize),
|
||||
Visible = true
|
||||
};
|
||||
cancelButton.MousePressed += CancelButton_MousePressed;
|
||||
|
|
Loading…
Reference in a new issue