mirror of
https://github.com/ShareX/ShareX.git
synced 2024-07-07 07:26:05 +12:00
Move key move/resize methods to ShapeManager from ResizeManager, Removed Show/Hide methods from ResizeManager instead using Visible property
This commit is contained in:
parent
7be1c5e519
commit
2622c2469c
|
@ -57,6 +57,8 @@ public bool Visible
|
|||
|
||||
if (shape != null)
|
||||
{
|
||||
UpdateNodePositions();
|
||||
|
||||
if (shape.NodeType == NodeType.Rectangle)
|
||||
{
|
||||
foreach (NodeObject node in nodes)
|
||||
|
@ -81,20 +83,23 @@ public bool Visible
|
|||
}
|
||||
|
||||
public bool IsResizing { get; private set; }
|
||||
public bool IsBottomRightResizing { get; set; }
|
||||
|
||||
public bool IsCursorOnNode
|
||||
{
|
||||
get
|
||||
{
|
||||
return Visible && nodes.Any(node => node.IsCursorHover);
|
||||
}
|
||||
}
|
||||
|
||||
private ShapeManager shapeManager;
|
||||
private NodeObject[] nodes;
|
||||
private bool isUpPressed, isDownPressed, isLeftPressed, isRightPressed;
|
||||
private Rectangle tempRect;
|
||||
|
||||
public ResizeManager(BaseRegionForm form, ShapeManager shapeManager)
|
||||
{
|
||||
this.shapeManager = shapeManager;
|
||||
|
||||
form.KeyDown += form_KeyDown;
|
||||
form.KeyUp += form_KeyUp;
|
||||
|
||||
nodes = new NodeObject[8];
|
||||
|
||||
for (int i = 0; i < 8; i++)
|
||||
|
@ -189,7 +194,7 @@ public void Update()
|
|||
{
|
||||
shapeManager.IsCreating = true;
|
||||
|
||||
Hide();
|
||||
Visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -202,131 +207,6 @@ public void Update()
|
|||
}
|
||||
}
|
||||
|
||||
private void form_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.Left:
|
||||
case Keys.A:
|
||||
isLeftPressed = true;
|
||||
break;
|
||||
case Keys.Right:
|
||||
case Keys.D:
|
||||
isRightPressed = true;
|
||||
break;
|
||||
case Keys.Up:
|
||||
case Keys.W:
|
||||
isUpPressed = true;
|
||||
break;
|
||||
case Keys.Down:
|
||||
case Keys.S:
|
||||
isDownPressed = true;
|
||||
break;
|
||||
case Keys.Menu:
|
||||
IsBottomRightResizing = true;
|
||||
break;
|
||||
}
|
||||
|
||||
int speed;
|
||||
|
||||
if (e.Shift)
|
||||
{
|
||||
speed = RegionCaptureOptions.MoveSpeedMaximum;
|
||||
}
|
||||
else
|
||||
{
|
||||
speed = RegionCaptureOptions.MoveSpeedMinimum;
|
||||
}
|
||||
|
||||
int x = 0;
|
||||
|
||||
if (isLeftPressed)
|
||||
{
|
||||
x -= speed;
|
||||
}
|
||||
|
||||
if (isRightPressed)
|
||||
{
|
||||
x += speed;
|
||||
}
|
||||
|
||||
int y = 0;
|
||||
|
||||
if (isUpPressed)
|
||||
{
|
||||
y -= speed;
|
||||
}
|
||||
|
||||
if (isDownPressed)
|
||||
{
|
||||
y += speed;
|
||||
}
|
||||
|
||||
if (x != 0 || y != 0)
|
||||
{
|
||||
BaseShape shape = shapeManager.CurrentShape;
|
||||
|
||||
if (shape == null || shapeManager.IsCreating)
|
||||
{
|
||||
Cursor.Position = Cursor.Position.Add(x, y);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (e.Control)
|
||||
{
|
||||
shape.Move(x, y);
|
||||
}
|
||||
else
|
||||
{
|
||||
shape.Resize(x, y, e.Alt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void form_KeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.Left:
|
||||
case Keys.A:
|
||||
isLeftPressed = false;
|
||||
break;
|
||||
case Keys.Right:
|
||||
case Keys.D:
|
||||
isRightPressed = false;
|
||||
break;
|
||||
case Keys.Up:
|
||||
case Keys.W:
|
||||
isUpPressed = false;
|
||||
break;
|
||||
case Keys.Down:
|
||||
case Keys.S:
|
||||
isDownPressed = false;
|
||||
break;
|
||||
case Keys.Menu:
|
||||
IsBottomRightResizing = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsCursorOnNode()
|
||||
{
|
||||
return Visible && nodes.Any(node => node.IsCursorHover);
|
||||
}
|
||||
|
||||
public void Show()
|
||||
{
|
||||
UpdateNodePositions();
|
||||
|
||||
Visible = true;
|
||||
}
|
||||
|
||||
public void Hide()
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
|
||||
private void UpdateNodePositions()
|
||||
{
|
||||
BaseShape shape = shapeManager.CurrentShape;
|
||||
|
|
|
@ -206,6 +206,7 @@ public AnnotationOptions AnnotationOptions
|
|||
private ToolStripSeparator tssObjectOptions, tssShapeOptions;
|
||||
private ToolStripMenuItem tsmiDeleteSelected, tsmiDeleteAll, tsmiBorderColor, tsmiFillColor, tsmiHighlightColor;
|
||||
private ToolStripLabeledNumericUpDown tslnudBorderSize, tslnudRoundedRectangleRadius, tslnudBlurRadius, tslnudPixelateSize;
|
||||
private bool isLeftPressed, isRightPressed, isUpPressed, isDownPressed;
|
||||
|
||||
public ShapeManager(RectangleRegionForm form)
|
||||
{
|
||||
|
@ -937,6 +938,22 @@ private void form_KeyDown(object sender, KeyEventArgs e)
|
|||
case Keys.Menu:
|
||||
IsSnapResizing = true;
|
||||
break;
|
||||
case Keys.Left:
|
||||
case Keys.A:
|
||||
isLeftPressed = true;
|
||||
break;
|
||||
case Keys.Right:
|
||||
case Keys.D:
|
||||
isRightPressed = true;
|
||||
break;
|
||||
case Keys.Up:
|
||||
case Keys.W:
|
||||
isUpPressed = true;
|
||||
break;
|
||||
case Keys.Down:
|
||||
case Keys.S:
|
||||
isDownPressed = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (form.Mode == RectangleRegionMode.Annotation && !IsCreating)
|
||||
|
@ -978,6 +995,62 @@ private void form_KeyDown(object sender, KeyEventArgs e)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int speed;
|
||||
|
||||
if (e.Shift)
|
||||
{
|
||||
speed = RegionCaptureOptions.MoveSpeedMaximum;
|
||||
}
|
||||
else
|
||||
{
|
||||
speed = RegionCaptureOptions.MoveSpeedMinimum;
|
||||
}
|
||||
|
||||
int x = 0;
|
||||
|
||||
if (isLeftPressed)
|
||||
{
|
||||
x -= speed;
|
||||
}
|
||||
|
||||
if (isRightPressed)
|
||||
{
|
||||
x += speed;
|
||||
}
|
||||
|
||||
int y = 0;
|
||||
|
||||
if (isUpPressed)
|
||||
{
|
||||
y -= speed;
|
||||
}
|
||||
|
||||
if (isDownPressed)
|
||||
{
|
||||
y += speed;
|
||||
}
|
||||
|
||||
if (x != 0 || y != 0)
|
||||
{
|
||||
BaseShape shape = CurrentShape;
|
||||
|
||||
if (shape == null || IsCreating)
|
||||
{
|
||||
Cursor.Position = Cursor.Position.Add(x, y);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (e.Control)
|
||||
{
|
||||
shape.Move(x, y);
|
||||
}
|
||||
else
|
||||
{
|
||||
shape.Resize(x, y, e.Alt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void form_KeyUp(object sender, KeyEventArgs e)
|
||||
|
@ -1004,6 +1077,22 @@ private void form_KeyUp(object sender, KeyEventArgs e)
|
|||
case Keys.Apps:
|
||||
OpenOptionsMenu();
|
||||
break;
|
||||
case Keys.Left:
|
||||
case Keys.A:
|
||||
isLeftPressed = false;
|
||||
break;
|
||||
case Keys.Right:
|
||||
case Keys.D:
|
||||
isRightPressed = false;
|
||||
break;
|
||||
case Keys.Up:
|
||||
case Keys.W:
|
||||
isUpPressed = false;
|
||||
break;
|
||||
case Keys.Down:
|
||||
case Keys.S:
|
||||
isDownPressed = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1058,7 +1147,7 @@ public void Update()
|
|||
|
||||
private void RegionSelection(Point position)
|
||||
{
|
||||
if (ResizeManager.IsCursorOnNode())
|
||||
if (ResizeManager.IsCursorOnNode)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -1297,7 +1386,7 @@ private void CheckHover()
|
|||
{
|
||||
CurrentHoverRectangle = Rectangle.Empty;
|
||||
|
||||
if (!ResizeManager.IsCursorOnNode() && !IsCreating && !IsMoving && !IsResizing)
|
||||
if (!ResizeManager.IsCursorOnNode && !IsCreating && !IsMoving && !IsResizing)
|
||||
{
|
||||
BaseShape shape = GetShapeIntersect();
|
||||
|
||||
|
@ -1395,14 +1484,14 @@ private void SelectShape()
|
|||
|
||||
if (shape != null && !CurrentRectangle.IsEmpty && shape.NodeType != NodeType.Point)
|
||||
{
|
||||
ResizeManager.Show();
|
||||
ResizeManager.Visible = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void DeselectShape()
|
||||
{
|
||||
CurrentShape = null;
|
||||
ResizeManager.Hide();
|
||||
ResizeManager.Visible = false;
|
||||
}
|
||||
|
||||
private void DeleteCurrentShape()
|
||||
|
|
Loading…
Reference in a new issue