Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
VirtualButton.Mouse.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 namespace SiliconStudio.Paradox.Input
4 {
5  /// <summary>
6  /// Describes a virtual button (a key from a keyboard, a mouse button, an axis of a joystick...etc.).
7  /// </summary>
8  public partial class VirtualButton
9  {
10  /// <summary>
11  /// Mouse virtual button.
12  /// </summary>
13  public class Mouse : VirtualButton
14  {
15  private Mouse(string name, VirtualButtonType type, int id, bool isPositiveAndNegative = false) : base(name, type, id, isPositiveAndNegative)
16  {
17  }
18 
19  /// <summary>
20  /// Equivalent to <see cref="MouseButton.Left"/>.
21  /// </summary>
22  public static readonly Mouse Left = new Mouse("Mouse.Left", VirtualButtonType.Mouse, 0);
23 
24  /// <summary>
25  /// Equivalent to <see cref="MouseButton.Middle"/>.
26  /// </summary>
27  public static readonly Mouse Middle = new Mouse("Mouse.Middle", VirtualButtonType.Mouse, 1);
28 
29  /// <summary>
30  /// Equivalent to <see cref="MouseButton.Right"/>.
31  /// </summary>
32  public static readonly Mouse Right = new Mouse("Mouse.Right", VirtualButtonType.Mouse, 2);
33 
34  /// <summary>
35  /// Equivalent to <see cref="MouseButton.Extended1"/>.
36  /// </summary>
37  public static readonly Mouse Extended1 = new Mouse("Mouse.Extended1", VirtualButtonType.Mouse, 3);
38 
39  /// <summary>
40  /// Equivalent to <see cref="MouseButton.Extended2"/>.
41  /// </summary>
42  public static readonly Mouse Extended2 = new Mouse("Mouse.Extended2", VirtualButtonType.Mouse, 4);
43 
44  /// <summary>
45  /// Equivalent to X Axis of <see cref="InputManager.MousePosition"/>.
46  /// </summary>
47  public static readonly Mouse PositionX = new Mouse("Mouse.PositionX", VirtualButtonType.Mouse, 5, true);
48 
49  /// <summary>
50  /// Equivalent to Y Axis of <see cref="InputManager.MousePosition"/>.
51  /// </summary>
52  public static readonly Mouse PositionY = new Mouse("Mouse.PositionY", VirtualButtonType.Mouse, 6, true);
53 
54  public override float GetValue(InputManagerBase manager)
55  {
56  int index = (Id & TypeIdMask);
57  if (index < 5)
58  {
59  if (manager.IsMouseButtonDown((MouseButton)index))
60  {
61  return 1.0f;
62  }
63  }
64  else if (index == 5)
65  {
66  return manager.MousePosition.X;
67  }
68  else if (index == 6)
69  {
70  return manager.MousePosition.Y;
71  }
72 
73  return 0.0f;
74  }
75  }
76  }
77 }
MouseButton
Mouse buttons.
Definition: MouseButton.cs:10
Describes a virtual button (a key from a keyboard, a mouse button, an axis of a joystick...etc.).
bool IsMouseButtonDown(MouseButton mouseButton)
Determines whether the specified mouse button is being pressed down.
Interface for input management system, including keyboard, mouse, gamepads and touch.
override float GetValue(InputManagerBase manager)
Gets the value associated with this virtual button from an input manager.
VirtualButtonType
Type of a VirtualButton.