/// <summary>
 /// Stops creating a region
 /// </summary>
 public void StopCreatingRegion()
 {
     if (_currently_creating_region != null)
     {
         RemoveSmallRegion();
     }
     _currently_creating_region = null;
 }
        /// <summary>
        /// Given a point, will create a new region if we did not click on a separate region
        /// </summary>
        /// <param name="p"></param>
        public void StartCreatingRegion(Point p)
        {
            if (InputPack.SelectedRegionBrush.SelectedEmulatedDevice == null || InputPack.SelectedRegionBrush.SelectedEmulatedKey == null)
            {
                return;
            }

            foreach (Data.RectRegion r in InputPack.EditingTexture.Regions)
            {
                if (p.X > r.ScaledX && p.X < (r.X + r.ScaledWidth) &&
                    p.Y > r.ScaledY && p.Y < (r.Y + r.ScaledHeight))
                {
                    _currently_creating_region = null;
                    return;
                }
            }

            if (InputPack.SelectedRegionBrush.FillRegion)
            {
                _currently_creating_region = new Data.RectRegion()
                {
                    ScaleFactor = InputPack.EditingTexture.ScaleFactor, X = 0, Y = 0, Height = InputPack.EditingTexture.ImageHeight, Width = InputPack.EditingTexture.ImageWidth, Device = InputPack.SelectedRegionBrush.SelectedEmulatedDevice, Key = InputPack.SelectedRegionBrush.SelectedEmulatedKey, OwnedTexture = InputPack.EditingTexture
                };
            }
            else
            {
                _currently_creating_region = new Data.RectRegion()
                {
                    ScaleFactor = InputPack.EditingTexture.ScaleFactor, X = p.X, Y = p.Y, Height = 1, Width = 1, Device = InputPack.SelectedRegionBrush.SelectedEmulatedDevice, Key = InputPack.SelectedRegionBrush.SelectedEmulatedKey, OwnedTexture = InputPack.EditingTexture
                };
            }
            InputPack.EditingTexture.Regions.Add(_currently_creating_region);

            if (InputPack.SelectedRegionBrush.FillRegion)
            {
                // No need to continue, operation is finished
                _currently_creating_region = null;
            }
        }