Ejemplo n.º 1
0
 private static void OnMouseDown(object sender, MouseButtonEventArgs e)
 {
     PaintDotNet.UI.FrameworkElement visual = (PaintDotNet.UI.FrameworkElement)sender;
     if (!visual.IsMouseCaptured)
     {
         PresentationSource source = PresentationSource.FromVisual(visual);
         if ((source != null) && (source.PrimaryMouseDevice.Captured == null))
         {
             PointDouble position = e.GetPosition(visual);
             visual.CaptureMouse();
             visual.RaiseEvent(new MouseEventArgs(e.InputDevice, GestureBeginEvent, visual));
             if (visual.IsMouseCaptured)
             {
                 SetIsPressed(visual, true);
                 SetMouseCapturePoint(visual, position);
                 if (!GetAllowClick(visual))
                 {
                     SetIsDragging(visual, true);
                     visual.RaiseEvent(new MouseEventArgs(e.InputDevice, DragBeginEvent, visual));
                 }
             }
             else
             {
                 visual.RaiseEvent(new MouseEventArgs(e.InputDevice, GestureEndEvent, visual));
             }
             e.Handled = true;
         }
     }
 }
Ejemplo n.º 2
0
 private static void IsEnabledPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
 {
     PaintDotNet.UI.FrameworkElement target = (PaintDotNet.UI.FrameworkElement)sender;
     if (!((bool)e.NewValue))
     {
         target.RemoveHandler(UIElement.MouseDownEvent, new MouseButtonEventHandler(ClickDragBehavior.OnMouseDown));
         target.RemoveHandler(UIElement.MouseMoveEvent, new MouseEventHandler(ClickDragBehavior.OnMouseMove));
         target.RemoveHandler(UIElement.MouseUpEvent, new MouseButtonEventHandler(ClickDragBehavior.OnMouseUp));
         target.RemoveHandler(UIElement.LostMouseCaptureEvent, new MouseEventHandler(ClickDragBehavior.OnLostMouseCapture));
         target.RemoveHandler(UIElement.MouseLeaveEvent, new MouseEventHandler(ClickDragBehavior.OnMouseLeave));
         SetIsDragging(target, false);
     }
     else
     {
         target.AddHandler(UIElement.MouseDownEvent, new MouseButtonEventHandler(ClickDragBehavior.OnMouseDown));
         target.AddHandler(UIElement.MouseMoveEvent, new MouseEventHandler(ClickDragBehavior.OnMouseMove));
         target.AddHandler(UIElement.MouseUpEvent, new MouseButtonEventHandler(ClickDragBehavior.OnMouseUp));
         target.AddHandler(UIElement.LostMouseCaptureEvent, new MouseEventHandler(ClickDragBehavior.OnLostMouseCapture));
         target.AddHandler(UIElement.MouseLeaveEvent, new MouseEventHandler(ClickDragBehavior.OnMouseLeave));
     }
 }
Ejemplo n.º 3
0
 private static void OnMouseMove(object sender, MouseEventArgs e)
 {
     PaintDotNet.UI.FrameworkElement visual = (PaintDotNet.UI.FrameworkElement)sender;
     if (visual.IsMouseCaptured)
     {
         CompositionTarget compositionTarget = PresentationSource.FromVisual(visual).CompositionTarget;
         PointDouble       position          = e.GetPosition(visual);
         bool flag = visual.HitTestLocal(position);
         SetIsPressed(visual, flag);
         if (GetIsDragging(visual))
         {
             visual.RaiseEvent(new MouseEventArgs(e.InputDevice, DragMoveEvent, visual));
         }
         else if (GetAllowDrag(visual))
         {
             VectorDouble    num8;
             PointDouble     mouseCapturePoint = GetMouseCapturePoint(visual);
             PointDouble     pt             = e.GetPosition(visual);
             Matrix3x2Double matrixToDevice = compositionTarget.MatrixToDevice;
             PointDouble     num5           = matrixToDevice.Transform(mouseCapturePoint);
             VectorDouble    num7           = (VectorDouble)(matrixToDevice.Transform(pt) - num5);
             if (GetAllowClick(visual))
             {
                 num8 = new VectorDouble(PaintDotNet.UI.SystemParameters.MinimumHorizontalDragDistance, PaintDotNet.UI.SystemParameters.MinimumVerticalDragDistance);
             }
             else
             {
                 num8 = new VectorDouble(0.0, 0.0);
             }
             if ((Math.Abs(num7.X) >= num8.X) || (Math.Abs(num7.Y) >= num8.Y))
             {
                 SetIsDragging(visual, true);
                 visual.RaiseEvent(new MouseEventArgs(e.InputDevice, DragBeginEvent, visual));
             }
         }
         e.Handled = true;
     }
 }
Ejemplo n.º 4
0
 private static void OnMouseUp(object sender, MouseButtonEventArgs e)
 {
     PaintDotNet.UI.FrameworkElement target = (PaintDotNet.UI.FrameworkElement)sender;
     if (target.IsMouseCaptured)
     {
         target.ReleaseMouseCapture();
         if (GetIsDragging(target))
         {
             target.RaiseEvent(new MouseEventArgs(e.InputDevice, DragEndEvent, target));
         }
         else if (GetAllowClick(target))
         {
             PointDouble position = e.GetPosition(target);
             if (target.HitTestLocal(position))
             {
                 target.RaiseEvent(new MouseEventArgs(e.InputDevice, ClickedEvent, target));
             }
         }
         SetIsDragging(target, false);
         SetIsPressed(target, false);
         target.RaiseEvent(new RoutedEventArgs(GestureEndEvent, target));
         e.Handled = true;
     }
 }
 public CenterElementTransform(PaintDotNet.UI.FrameworkElement target) : this()
 {
     this.Target = target;
 }
Ejemplo n.º 6
0
 private static void OnLostMouseCapture(object sender, MouseEventArgs e)
 {
     PaintDotNet.UI.FrameworkElement element = (PaintDotNet.UI.FrameworkElement)sender;
 }
Ejemplo n.º 7
0
 private static void IsPressedPropertyChanged(object sender, DependencyPropertyChangedEventArgs e)
 {
     PaintDotNet.UI.FrameworkElement source = (PaintDotNet.UI.FrameworkElement)sender;
     source.RaiseEvent(new RoutedEventArgs(IsPressedChangedEvent, source));
 }
Ejemplo n.º 8
0
 private static PointDouble GetMouseCapturePoint(PaintDotNet.UI.FrameworkElement target) =>
 ((PointDouble)target.GetValue(MouseCapturePointProperty));
Ejemplo n.º 9
0
 public static bool GetIsPressed(PaintDotNet.UI.FrameworkElement target) =>
 ((bool)target.GetValue(IsPressedProperty));
Ejemplo n.º 10
0
 public static bool GetIsDragging(PaintDotNet.UI.FrameworkElement target) =>
 ((bool)target.GetValue(IsDraggingProperty));
Ejemplo n.º 11
0
 public static bool GetAllowDrag(PaintDotNet.UI.FrameworkElement target) =>
 ((bool)target.GetValue(AllowDragProperty));
Ejemplo n.º 12
0
 public static void AddIsPressedChangedHandler(PaintDotNet.UI.FrameworkElement target, RoutedEventHandler handler)
 {
     target.AddHandler(IsPressedChangedEvent, handler);
 }
Ejemplo n.º 13
0
 private static void SetMouseCapturePoint(PaintDotNet.UI.FrameworkElement target, PointDouble value)
 {
     target.SetValue(MouseCapturePointPropertyKey, value);
 }
Ejemplo n.º 14
0
 private static void SetIsPressed(PaintDotNet.UI.FrameworkElement target, bool value)
 {
     target.SetValue(IsPressedPropertyKey, BooleanUtil.GetBoxed(value));
 }
Ejemplo n.º 15
0
 public static void SetIsEnabled(PaintDotNet.UI.FrameworkElement target, bool value)
 {
     target.SetValue(IsEnabledProperty, BooleanUtil.GetBoxed(value));
 }
Ejemplo n.º 16
0
 public static void SetAllowDrag(PaintDotNet.UI.FrameworkElement target, bool value)
 {
     target.SetValue(AllowDragProperty, BooleanUtil.GetBoxed(value));
 }