Ejemplo n.º 1
0
        public PointerPointProperties(RawInputModifiers modifiers, PointerUpdateKind kind)
        {
            PointerUpdateKind = kind;

            IsLeftButtonPressed   = modifiers.HasAllFlags(RawInputModifiers.LeftMouseButton);
            IsMiddleButtonPressed = modifiers.HasAllFlags(RawInputModifiers.MiddleMouseButton);
            IsRightButtonPressed  = modifiers.HasAllFlags(RawInputModifiers.RightMouseButton);
            IsXButton1Pressed     = modifiers.HasAllFlags(RawInputModifiers.XButton1MouseButton);
            IsXButton2Pressed     = modifiers.HasAllFlags(RawInputModifiers.XButton2MouseButton);

            // The underlying input source might be reporting the previous state,
            // so make sure that we reflect the current state

            if (kind == PointerUpdateKind.LeftButtonPressed)
            {
                IsLeftButtonPressed = true;
            }
            if (kind == PointerUpdateKind.LeftButtonReleased)
            {
                IsLeftButtonPressed = false;
            }
            if (kind == PointerUpdateKind.MiddleButtonPressed)
            {
                IsMiddleButtonPressed = true;
            }
            if (kind == PointerUpdateKind.MiddleButtonReleased)
            {
                IsMiddleButtonPressed = false;
            }
            if (kind == PointerUpdateKind.RightButtonPressed)
            {
                IsRightButtonPressed = true;
            }
            if (kind == PointerUpdateKind.RightButtonReleased)
            {
                IsRightButtonPressed = false;
            }
            if (kind == PointerUpdateKind.XButton1Pressed)
            {
                IsXButton1Pressed = true;
            }
            if (kind == PointerUpdateKind.XButton1Released)
            {
                IsXButton1Pressed = false;
            }
            if (kind == PointerUpdateKind.XButton2Pressed)
            {
                IsXButton2Pressed = true;
            }
            if (kind == PointerUpdateKind.XButton2Released)
            {
                IsXButton2Pressed = false;
            }
        }
 private DragDropEffects GetPreferredEffect(DragDropEffects effect, RawInputModifiers modifiers)
 {
     if (effect == DragDropEffects.Copy || effect == DragDropEffects.Move || effect == DragDropEffects.Link || effect == DragDropEffects.None)
     {
         return(effect); // No need to check for the modifiers.
     }
     if (effect.HasAllFlags(DragDropEffects.Link) && modifiers.HasAllFlags(RawInputModifiers.Alt))
     {
         return(DragDropEffects.Link);
     }
     if (effect.HasAllFlags(DragDropEffects.Copy) && modifiers.HasAllFlags(RawInputModifiers.Control))
     {
         return(DragDropEffects.Copy);
     }
     return(DragDropEffects.Move);
 }