예제 #1
0
        public override bool IsPointInside(ref SharpDX.Point p)
        {
            var v1 = (Location)From.LineEnd;
            var v2 = (Location)To.LineEnd;

            return(Seal.Math.IsPointInSegment(ref p, ref v1, ref v2));
        }
예제 #2
0
 /// <summary>
 /// Checks, if specified <see cref="SharpDX.Point"/> is inside <see cref="SharpDX.RectangleF"/>.
 /// </summary>
 /// <param name="point">Coordinate <see cref="SharpDX.Point"/>.</param>
 /// <returns><c>true</c> if <see cref="SharpDX.Point"/> is inside <see cref="SharpDX.RectangleF"/>, otherwise <c>false</c>.</returns>
 public bool Contains(SharpDX.Point point)
 {
     if (point.X >= _left && point.X <= _right && point.Y >= _top && point.Y <= _bottom)
     {
         return(true);
     }
     return(false);
 }
예제 #3
0
 public override bool IsPointInside(ref SharpDX.Point p)
 {
     foreach (var f in Childs)
     {
         if (f.IsPointInside(ref p))
         {
             return(true);
         }
     }
     return(false);
 }
예제 #4
0
 public override bool IsPointInside(ref SharpDX.Point p)
 {
     foreach (var q in _points)
     {
         var dx = System.Math.Abs(q.X - p.X);
         var dy = System.Math.Abs(q.Y - p.Y);
         if (dx * dy < 5E-1)
         {
             return(true);
         }
     }
     return(false);
 }
예제 #5
0
        public override bool IsPointInside(ref SharpDX.Point p)
        {
            var px = Convert.ToInt32(p.X - _location.X);
            var py = Convert.ToInt32(p.Y - _location.Y);

            SharpDX.Point here = new SharpDX.Point(px, py);
            if (_path != null)
            {
                return(_path.StrokeContainsPoint(here, 1) || _path.FillContainsPoint(here));
            }
            else
            {
                return(false);
            }
        }
예제 #6
0
 public override void MouseDownAction(System.Windows.Forms.MouseEventArgs e)
 {
     SharpDX.Point p = new SharpDX.Point(e.X, e.Y);
     if (from == null)
     {
         from = Diagram.Get(p) as ILineEndable;
         if (from == null)
         {
             from = new EndLineMarker(Diagram.Get, 0);
             (from as EndLineMarker).Location = new Location(p.X, p.Y);
         }
         to = new EndLineMarker(Diagram.Get, 1);
         (to as EndLineMarker).Location = new Location(p.X, p.Y);
     }
 }
예제 #7
0
        public override void MouseUpAction(System.Windows.Forms.MouseEventArgs e)
        {
            var p      = new SharpDX.Point(e.X, e.Y);
            var figure = Diagram.Get(p) as ILineEndable;

            if (figure != null)
            {
                line = new Line(from, figure);
            }
            else
            {
                line = new Line(from, to);
            }
            Diagram.Add(line);
            from = null;
            to   = null;
            line = null;
        }
예제 #8
0
        public override bool IsPointInside(ref SharpDX.Point p)
        {
            Location p0 = (Location)From.LineEnd;
            Location pn;
            bool     check;

            foreach (var point in _points)
            {
                pn    = (Location)point;
                check = Seal.Math.IsPointInSegment(ref p, ref p0, ref pn);
                if (check)
                {
                    return(true);
                }
                p0 = pn;
            }
            pn = (Location)To.LineEnd;
            return(Seal.Math.IsPointInSegment(ref p, ref p0, ref pn));
        }
예제 #9
0
 private static extern bool ScreenToClient(IntPtr hWnd, ref SharpDX.Point point);
예제 #10
0
 /// <inheritdoc/>
 public void Draw(SharpDX.Direct2D1.Bitmap1 target, SharpDX.Rectangle drawRect, SharpDX.Point targetOrigin)
 {
     Draw_(target, drawRect, targetOrigin);
 }
예제 #11
0
 public bool Contains(ref SharpDX.Point p)
 {
     return(StrokeContainsPoint(p, 1) || FillContainsPoint(p));
 }
예제 #12
0
파일: MouseInfo.cs 프로젝트: ren-/PoeHud
 public MouseInfo(MouseButtons buttons, PointGdi position, int wheelDelta)
 {
     Buttons    = buttons;
     Position   = new PointDX(position.X, position.Y);
     WheelDelta = wheelDelta;
 }
예제 #13
0
 public Rectangle ToRectangle(Point point)
 {
     return(new Rectangle(point.X, point.Y, right - left, bottom - top));
 }
예제 #14
0
 public static extern bool ScreenToClient(IntPtr hWnd, ref Point lpPoint);
예제 #15
0
 public static DPoint ToDPoint(this SPoint P)
 {
     return(new DPoint(P.X, P.Y));
 }
예제 #16
0
 private static extern bool ClientToScreen(IntPtr hWnd, out Point lpPoint);
예제 #17
0
        public override bool OnMouseMove(DxWindow window, DxControl ctl, MouseEventArgs args, SharpDX.Point pt)
        {
            if (!IntersectTest(pt.X, pt.Y))
            {
                OnMouseLeave(window, ctl, args, pt);
                _currentHighlightItem = -1;

                return(false);
            }

            OnMouseEnter(window, ctl, args, pt);

            var f = false;

            for (var i = 0; i < (Items.Count > _maxItemsVisible ? _maxItemsVisible : Items.Count) && !f; i++)
            {
                if (pt.X < Rect.X + 4 || pt.X > Rect.X + Rect.Width - 17 || pt.Y < Rect.Y + 21 + i * 21 || pt.Y > Rect.Y + 21 + i * 21 + 21)
                {
                    continue;
                }

                _currentHighlightItem = i;
                f = true;
            }

            if (!f)
            {
                _currentHighlightItem = -1;
            }

            return(true);
        }
예제 #18
0
 public static extern bool GetCursorPos(out Point lpPoint);
예제 #19
0
        public override bool OnMouseDown(DxWindow window, DxControl ctl, MouseEventArgs args, SharpDX.Point pt)
        {
            if (!IntersectTest(pt.X, pt.Y) || !IsMouseOver)
            {
                if (Active)
                {
                    TopMost = false;
                    window.DrawOnTopList.Remove(this);
                }

                Active = false;
                return(false);
            }


            var oldActive = Active;

            if (pt.X >= Rect.X && pt.X <= Rect.X + Rect.Width && pt.Y >= Rect.Y && pt.Y <= Rect.Y + 21)
            {
                Active = !Active;
            }


            if (Active)
            {
                if (oldActive == false)
                {
                    _currentPosition = 0;
                }

                if (_currentHighlightItem != -1)
                {
                    if (MultiSelect)
                    {
                        if (SelectedIndexes.Contains(_currentHighlightItem + _currentPosition))
                        {
                            SelectedIndexes.Remove(_currentHighlightItem + _currentPosition);
                        }
                        else
                        {
                            SelectedIndexes.Add(_currentHighlightItem + _currentPosition);
                        }
                    }
                    else
                    {
                        SelectedIndexes.Clear();
                        SelectedIndexes.Add(_currentHighlightItem + _currentPosition);
                    }
                }

                if (!MultiSelect)
                {
                    if (oldActive)
                    {
                        Active = false;
                    }
                }
            }

            TopMost = Active;

            if (Active && !oldActive)
            {
                window.DrawOnTopList.Add(this);
            }
            else if (!Active && oldActive)
            {
                window.DrawOnTopList.Remove(this);
            }


            return(true);
        }
예제 #20
0
 /// <summary>
 /// Initializes a new instance of <see cref="OffsetTransform"/> class
 /// </summary>
 /// <param name="context">The effect context</param>
 /// <param name="offset">The offset transformation</param>
 /// <unmanaged>HRESULT ID2D1EffectContext::CreateOffsetTransform([In] POINT offset,[Out, Fast] ID2D1OffsetTransform** transform)</unmanaged>
 public OffsetTransform(EffectContext context, SharpDX.Point offset) : base(IntPtr.Zero)
 {
     context.CreateOffsetTransform(offset, this);
 }
예제 #21
0
        public override bool OnMouseWheel(DxWindow window, DxControl ctl, MouseEventArgs args, SharpDX.Point pt)
        {
            if (!IntersectTest(pt.X, pt.Y))
            {
                return(false);
            }
            if (!IsMouseOver)
            {
                return(false);
            }

            if (args.Delta > 0) // up
            {
                if (_currentPosition > 0)
                {
                    _currentPosition--;
                }
            }
            else
            {
                if (_currentPosition < Items.Count - _maxItemsVisible)
                {
                    _currentPosition++;
                }
            }

            return(false);
        }
예제 #22
0
 public abstract bool IsPointInside(ref SharpDX.Point p);
예제 #23
0
        public override bool OnMouseMove(DxWindow window, DxControl ctl, MouseEventArgs args, Point pt)
        {
            for (var i = DrawOnTopList.Count - 1; i >= 0; i--)
            {
                if (DrawOnTopList[i].OnMouseMove(window, DrawOnTopList[i], args, pt))
                {
                    return(true);
                }
            }

            return(base.OnMouseMove(window, ctl, args, pt));
        }
예제 #24
0
 private unsafe static int DrawImpl(IntPtr thisPtr, IntPtr target, IntPtr drawRect, SharpDX.Point targetOrigin)
 {
     try
     {
         var shadow   = ToShadow <SourceTransformShadow>(thisPtr);
         var callback = (SourceTransform)shadow.Callback;
         callback.Draw(new Bitmap1(target), *(SharpDX.Rectangle *)drawRect, targetOrigin);
     }
     catch (Exception exception)
     {
         return((int)SharpDX.Result.GetResultFromException(exception));
     }
     return(Result.Ok.Code);
 }
예제 #25
0
        public override bool IsPointInside(ref SharpDX.Point p)
        {
            var rect = new SharpDX.RectangleF(Location.X, Location.Y, drawingSize.Width, drawingSize.Height);

            return(rect.Contains(p));
        }
예제 #26
0
 public static extern bool GetCursorPos(out SharpDX.Point lpPoint);
예제 #27
0
 public Rectangle ToRectangle(Point point) => new Rectangle(point.X, point.Y, right - left, bottom - top);
예제 #28
0
 private static extern bool GetCursorPos(out SharpDX.Point pt);
예제 #29
0
 public bool Contains(ref SharpDX.Point p)
 {
     return(_rectangle.Contains(p));
 }
예제 #30
0
 public override bool IsPointInside(ref SharpDX.Point p)
 {
     return(geometry.Contains(ref p));
 }
예제 #31
0
파일: MouseInfo.cs 프로젝트: TomTer/PoeHud
 public MouseInfo(MouseButtons buttons, PointGdi position, int wheelDelta)
 {
     Buttons = buttons;
     Position = new PointDX(position.X, position.Y);
     WheelDelta = wheelDelta;
 }