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 RegionResult Result { get; private set; }
|
||||
public int MonitorIndex { get; set; }
|
||||
public List<DrawableObject> DrawableObjects { get; private set; }
|
||||
|
||||
protected Image backgroundImage;
|
||||
protected TextureBrush darkBackgroundBrush, lightBackgroundBrush;
|
||||
|
@ -56,7 +57,6 @@ public abstract class BaseRegionForm : Form
|
|||
protected Stopwatch timerStart, timerFPS;
|
||||
protected int frameCount;
|
||||
protected bool pause, isKeyAllowed;
|
||||
protected List<DrawableObject> drawableObjects;
|
||||
|
||||
public BaseRegionForm()
|
||||
{
|
||||
|
@ -67,7 +67,7 @@ public BaseRegionForm()
|
|||
Icon = ShareXResources.Icon;
|
||||
Cursor = Helpers.CreateCursor(Resources.Crosshair);
|
||||
|
||||
drawableObjects = new List<DrawableObject>();
|
||||
DrawableObjects = new List<DrawableObject>();
|
||||
Config = new RegionCaptureOptions();
|
||||
timerStart = new Stopwatch();
|
||||
timerFPS = new Stopwatch();
|
||||
|
@ -111,7 +111,7 @@ public void Prepare()
|
|||
Prepare(new Screenshot());
|
||||
}
|
||||
|
||||
/// <summary>Must be called before show form</summary>
|
||||
// Must be called before show form
|
||||
public virtual void Prepare(Screenshot screenshot)
|
||||
{
|
||||
backgroundImage = screenshot.CaptureFullscreen();
|
||||
|
@ -195,6 +195,7 @@ public void Pause()
|
|||
public void Resume()
|
||||
{
|
||||
pause = false;
|
||||
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
|
@ -280,6 +281,7 @@ public virtual WindowInfo GetWindowInfo()
|
|||
public void Close(RegionResult result)
|
||||
{
|
||||
Result = result;
|
||||
|
||||
Close();
|
||||
}
|
||||
|
||||
|
@ -293,7 +295,7 @@ public void Close(RegionResult result)
|
|||
|
||||
InputManager.Update();
|
||||
|
||||
DrawableObject[] objects = drawableObjects.OrderByDescending(x => x.Order).ToArray();
|
||||
DrawableObject[] objects = DrawableObjects.OrderByDescending(x => x.Order).ToArray();
|
||||
|
||||
if (objects.All(x => !x.IsDragging))
|
||||
{
|
||||
|
@ -343,7 +345,7 @@ protected virtual void Draw(Graphics g)
|
|||
|
||||
protected void DrawObjects(Graphics g)
|
||||
{
|
||||
foreach (DrawableObject drawObject in drawableObjects)
|
||||
foreach (DrawableObject drawObject in DrawableObjects)
|
||||
{
|
||||
if (drawObject.Visible)
|
||||
{
|
||||
|
@ -384,13 +386,6 @@ private void DrawFPS(Graphics g)
|
|||
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;
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
|
|
|
@ -30,53 +30,17 @@ namespace ShareX.ScreenCaptureLib
|
|||
{
|
||||
public static class InputManager
|
||||
{
|
||||
public static Point MousePosition
|
||||
{
|
||||
get
|
||||
{
|
||||
return mouseState.Position;
|
||||
}
|
||||
}
|
||||
public static Point MousePosition => mouseState.Position;
|
||||
|
||||
public static Point PreviousMousePosition
|
||||
{
|
||||
get
|
||||
{
|
||||
return oldMouseState.Position;
|
||||
}
|
||||
}
|
||||
public static Point PreviousMousePosition => oldMouseState.Position;
|
||||
|
||||
public static Point MousePosition0Based
|
||||
{
|
||||
get
|
||||
{
|
||||
return mouseState.ZeroBasedPosition;
|
||||
}
|
||||
}
|
||||
public static Point MousePosition0Based => mouseState.ZeroBasedPosition;
|
||||
|
||||
public static Point PreviousMousePosition0Based
|
||||
{
|
||||
get
|
||||
{
|
||||
return oldMouseState.ZeroBasedPosition;
|
||||
}
|
||||
}
|
||||
public static Point PreviousMousePosition0Based => oldMouseState.ZeroBasedPosition;
|
||||
|
||||
public static Point MouseVelocity
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Point(MousePosition0Based.X - PreviousMousePosition0Based.X, MousePosition0Based.Y - PreviousMousePosition0Based.Y);
|
||||
}
|
||||
}
|
||||
public static Point MouseVelocity => new Point(MousePosition0Based.X - PreviousMousePosition0Based.X, MousePosition0Based.Y - PreviousMousePosition0Based.Y);
|
||||
|
||||
public static bool IsMouseMoved
|
||||
{
|
||||
get
|
||||
{
|
||||
return MouseVelocity.X != 0 || MouseVelocity.Y != 0;
|
||||
}
|
||||
}
|
||||
public static bool IsMouseMoved => MouseVelocity.X != 0 || MouseVelocity.Y != 0;
|
||||
|
||||
private static MouseState mouseState = new MouseState();
|
||||
private static MouseState oldMouseState;
|
||||
|
|
|
@ -206,7 +206,9 @@ public ShapeManager(RectangleRegionForm form)
|
|||
|
||||
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;
|
||||
|
|
Loading…
Reference in a new issue