Create node inside ShapeManager

This commit is contained in:
Jaex 2016-08-17 09:35:38 +03:00
parent 168e57c96b
commit c5a68e9945
3 changed files with 16 additions and 55 deletions

View file

@ -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 @@ protected new virtual void 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))
{
@ -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)

View file

@ -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;

View file

@ -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;