mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-03 19:54:13 +13:00
Create node inside ShapeManager
This commit is contained in:
parent
168e57c96b
commit
c5a68e9945
3 changed files with 16 additions and 55 deletions
|
@ -46,6 +46,7 @@ public abstract class BaseRegionForm : Form
|
||||||
public Rectangle ScreenRectangle0Based { get; private set; }
|
public Rectangle ScreenRectangle0Based { get; private set; }
|
||||||
public RegionResult Result { get; private set; }
|
public RegionResult Result { get; private set; }
|
||||||
public int MonitorIndex { get; set; }
|
public int MonitorIndex { get; set; }
|
||||||
|
public List<DrawableObject> DrawableObjects { get; private set; }
|
||||||
|
|
||||||
protected Image backgroundImage;
|
protected Image backgroundImage;
|
||||||
protected TextureBrush darkBackgroundBrush, lightBackgroundBrush;
|
protected TextureBrush darkBackgroundBrush, lightBackgroundBrush;
|
||||||
|
@ -56,7 +57,6 @@ public abstract class BaseRegionForm : Form
|
||||||
protected Stopwatch timerStart, timerFPS;
|
protected Stopwatch timerStart, timerFPS;
|
||||||
protected int frameCount;
|
protected int frameCount;
|
||||||
protected bool pause, isKeyAllowed;
|
protected bool pause, isKeyAllowed;
|
||||||
protected List<DrawableObject> drawableObjects;
|
|
||||||
|
|
||||||
public BaseRegionForm()
|
public BaseRegionForm()
|
||||||
{
|
{
|
||||||
|
@ -67,7 +67,7 @@ public BaseRegionForm()
|
||||||
Icon = ShareXResources.Icon;
|
Icon = ShareXResources.Icon;
|
||||||
Cursor = Helpers.CreateCursor(Resources.Crosshair);
|
Cursor = Helpers.CreateCursor(Resources.Crosshair);
|
||||||
|
|
||||||
drawableObjects = new List<DrawableObject>();
|
DrawableObjects = new List<DrawableObject>();
|
||||||
Config = new RegionCaptureOptions();
|
Config = new RegionCaptureOptions();
|
||||||
timerStart = new Stopwatch();
|
timerStart = new Stopwatch();
|
||||||
timerFPS = new Stopwatch();
|
timerFPS = new Stopwatch();
|
||||||
|
@ -111,7 +111,7 @@ public void Prepare()
|
||||||
Prepare(new Screenshot());
|
Prepare(new Screenshot());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Must be called before show form</summary>
|
// Must be called before show form
|
||||||
public virtual void Prepare(Screenshot screenshot)
|
public virtual void Prepare(Screenshot screenshot)
|
||||||
{
|
{
|
||||||
backgroundImage = screenshot.CaptureFullscreen();
|
backgroundImage = screenshot.CaptureFullscreen();
|
||||||
|
@ -195,6 +195,7 @@ public void Pause()
|
||||||
public void Resume()
|
public void Resume()
|
||||||
{
|
{
|
||||||
pause = false;
|
pause = false;
|
||||||
|
|
||||||
Invalidate();
|
Invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -280,6 +281,7 @@ public virtual WindowInfo GetWindowInfo()
|
||||||
public void Close(RegionResult result)
|
public void Close(RegionResult result)
|
||||||
{
|
{
|
||||||
Result = result;
|
Result = result;
|
||||||
|
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,7 +295,7 @@ public void Close(RegionResult result)
|
||||||
|
|
||||||
InputManager.Update();
|
InputManager.Update();
|
||||||
|
|
||||||
DrawableObject[] objects = drawableObjects.OrderByDescending(x => x.Order).ToArray();
|
DrawableObject[] objects = DrawableObjects.OrderByDescending(x => x.Order).ToArray();
|
||||||
|
|
||||||
if (objects.All(x => !x.IsDragging))
|
if (objects.All(x => !x.IsDragging))
|
||||||
{
|
{
|
||||||
|
@ -343,7 +345,7 @@ protected virtual void Draw(Graphics g)
|
||||||
|
|
||||||
protected void DrawObjects(Graphics g)
|
protected void DrawObjects(Graphics g)
|
||||||
{
|
{
|
||||||
foreach (DrawableObject drawObject in drawableObjects)
|
foreach (DrawableObject drawObject in DrawableObjects)
|
||||||
{
|
{
|
||||||
if (drawObject.Visible)
|
if (drawObject.Visible)
|
||||||
{
|
{
|
||||||
|
@ -384,13 +386,6 @@ private void DrawFPS(Graphics g)
|
||||||
ImageHelpers.DrawTextWithOutline(g, text, textRectangle.Location, infoFontBig, Color.White, Color.Black);
|
ImageHelpers.DrawTextWithOutline(g, text, textRectangle.Location, infoFontBig, Color.White, Color.Black);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal NodeObject MakeNode()
|
|
||||||
{
|
|
||||||
NodeObject node = new NodeObject();
|
|
||||||
drawableObjects.Add(node);
|
|
||||||
return node;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IContainer components = null;
|
public IContainer components = null;
|
||||||
|
|
||||||
protected override void Dispose(bool disposing)
|
protected override void Dispose(bool disposing)
|
||||||
|
|
|
@ -30,53 +30,17 @@ namespace ShareX.ScreenCaptureLib
|
||||||
{
|
{
|
||||||
public static class InputManager
|
public static class InputManager
|
||||||
{
|
{
|
||||||
public static Point MousePosition
|
public static Point MousePosition => mouseState.Position;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return mouseState.Position;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Point PreviousMousePosition
|
public static Point PreviousMousePosition => oldMouseState.Position;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return oldMouseState.Position;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Point MousePosition0Based
|
public static Point MousePosition0Based => mouseState.ZeroBasedPosition;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return mouseState.ZeroBasedPosition;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Point PreviousMousePosition0Based
|
public static Point PreviousMousePosition0Based => oldMouseState.ZeroBasedPosition;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return oldMouseState.ZeroBasedPosition;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Point MouseVelocity
|
public static Point MouseVelocity => new Point(MousePosition0Based.X - PreviousMousePosition0Based.X, MousePosition0Based.Y - PreviousMousePosition0Based.Y);
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return new Point(MousePosition0Based.X - PreviousMousePosition0Based.X, MousePosition0Based.Y - PreviousMousePosition0Based.Y);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool IsMouseMoved
|
public static bool IsMouseMoved => MouseVelocity.X != 0 || MouseVelocity.Y != 0;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return MouseVelocity.X != 0 || MouseVelocity.Y != 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static MouseState mouseState = new MouseState();
|
private static MouseState mouseState = new MouseState();
|
||||||
private static MouseState oldMouseState;
|
private static MouseState oldMouseState;
|
||||||
|
|
|
@ -206,7 +206,9 @@ public ShapeManager(RectangleRegionForm form)
|
||||||
|
|
||||||
for (int i = 0; i < 8; i++)
|
for (int i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
Nodes[i] = form.MakeNode();
|
NodeObject node = new NodeObject();
|
||||||
|
form.DrawableObjects.Add(node);
|
||||||
|
Nodes[i] = node;
|
||||||
}
|
}
|
||||||
|
|
||||||
Nodes[(int)NodePosition.BottomRight].Order = 10;
|
Nodes[(int)NodePosition.BottomRight].Order = 10;
|
||||||
|
|
Loading…
Reference in a new issue