Use Move to shift all shapes, override move method to move speech balloon tail

This commit is contained in:
Jaex 2016-09-05 19:27:35 +03:00
parent 30ee623852
commit e4d388c61f
2 changed files with 32 additions and 28 deletions

View file

@ -195,36 +195,33 @@ public void Prepare(Image img)
backgroundBrush = new TextureBrush(Image) { WrapMode = WrapMode.Clamp };
}
if (Config != null)
ShapeManager = new ShapeManager(this);
ShapeManager.WindowCaptureMode = Config.DetectWindows;
ShapeManager.IncludeControls = Config.DetectControls;
if (IsAnnotationMode)
{
ShapeManager = new ShapeManager(this);
ShapeManager.WindowCaptureMode = Config.DetectWindows;
ShapeManager.IncludeControls = Config.DetectControls;
ShapeManager.CurrentShapeTypeChanged += ShapeManager_CurrentShapeTypeChanged;
if (IsAnnotationMode)
ShapeManager_CurrentShapeTypeChanged(ShapeManager.CurrentShapeType);
}
if (Mode == RegionCaptureMode.OneClick || ShapeManager.WindowCaptureMode)
{
IntPtr handle = Handle;
TaskEx.Run(() =>
{
ShapeManager.CurrentShapeTypeChanged += ShapeManager_CurrentShapeTypeChanged;
WindowsRectangleList wla = new WindowsRectangleList();
wla.IgnoreHandle = handle;
wla.IncludeChildWindows = ShapeManager.IncludeControls;
ShapeManager.Windows = wla.GetWindowInfoListAsync(5000);
});
}
ShapeManager_CurrentShapeTypeChanged(ShapeManager.CurrentShapeType);
}
if (Mode == RegionCaptureMode.OneClick || ShapeManager.WindowCaptureMode)
{
IntPtr handle = Handle;
TaskEx.Run(() =>
{
WindowsRectangleList wla = new WindowsRectangleList();
wla.IgnoreHandle = handle;
wla.IncludeChildWindows = ShapeManager.IncludeControls;
ShapeManager.Windows = wla.GetWindowInfoListAsync(5000);
});
}
if (Config.UseCustomInfoText || Mode == RegionCaptureMode.ScreenColorPicker)
{
bmpBackgroundImage = new Bitmap(Image);
}
if (Config.UseCustomInfoText || Mode == RegionCaptureMode.ScreenColorPicker)
{
bmpBackgroundImage = new Bitmap(Image);
}
}
@ -1096,7 +1093,7 @@ public Image GetResultImage()
{
foreach (BaseShape shape in ShapeManager.Shapes)
{
shape.Rectangle = new Rectangle(shape.Rectangle.X - ImageRectangle.X, shape.Rectangle.Y - ImageRectangle.Y, shape.Rectangle.Width, shape.Rectangle.Height);
shape.Move(-ImageRectangle.X, -ImageRectangle.Y);
}
return GetOutputImage();

View file

@ -60,7 +60,7 @@ public override void OnCreated()
{
base.OnCreated();
TailPosition = Rectangle.Location.Add(-30, -30);
TailPosition = Rectangle.Location.Add(0, Rectangle.Height + 30);
}
public override void OnNodeVisible()
@ -82,6 +82,13 @@ public override void OnNodeUpdate()
}
}
public override void Move(int x, int y)
{
base.Move(x, y);
TailPosition = TailPosition.Add(x, y);
}
public override void OnDraw(Graphics g)
{
if (Rectangle.Width > 10 && Rectangle.Height > 10)