Gorgon Game Engine
Mouse.h
Go to the documentation of this file.
1 
3 #pragma once
4 
5 #include "../Types.h"
6 #include "../Enum.h"
7 
8 namespace Gorgon { namespace Input {
9 
10  namespace Mouse {
11 
19  Out,
23  Up,
27  Rotate
28  };
29 
32  None = 0 ,
33  Left = 0b1000000001 ,
34  Right = 0b1000000010 ,
35  Middle = 0b1000000100 ,
36  X1 = 0b1000001000 ,
37  X2 = 0b1000010000 ,
38  X3 = 0b1000100000 ,
39  X4 = 0b1001000000 ,
40  X5 = 0b1010000000 ,
41  X6 = 0b1100000000 ,
42  All = 0b1111111111,
43  };
44 
45  inline Button operator |(Button l, Button r) {
46  return Button((int)l | (int)r);
47  }
48 
49  inline Button operator &(Button l, Button r) {
50  return Button((int)l & (int)r);
51  }
52 
53  inline bool operator &&(Button l, Button r) {
54  return (int)(l&r) > 0;
55  }
56 
57  inline Button operator ~(Button l) {
58  return Button(~(unsigned)l);
59  }
60 
62  Button,
63  {Button::Left, "Left"},
64  {Button::Right, "Right"},
65  {Button::Middle, "Middle"},
66  {Button::X1, "X1"},
67  {Button::X2, "X2"},
68  {Button::X3, "X3"},
69  {Button::X4, "X4"},
70  {Button::X5, "X5"},
71  {Button::X6, "X6"},
72  );
73 
77  Zoom
78  };
79 
80  }
81 
82 }}
Gorgon::Input::Mouse::None
@ None
Definition: Mouse.h:32
Gorgon::Input::Mouse::Right
@ Right
Definition: Mouse.h:34
Gorgon::Input::Mouse::X5
@ X5
Definition: Mouse.h:40
Gorgon::Input::Mouse::Rotate
@ Rotate
Definition: Mouse.h:27
Gorgon::Input::Mouse::Vertical
@ Vertical
Definition: Mouse.h:75
Gorgon::Input::Mouse::Scroll_Hor
@ Scroll_Hor
Definition: Mouse.h:25
Gorgon::Input::Mouse::HitCheck
@ HitCheck
Checks if the coordinate hits the layer, always called first.
Definition: Mouse.h:15
Gorgon::Input::Mouse::Click
@ Click
Definition: Mouse.h:22
Gorgon::Input::Mouse::X2
@ X2
Definition: Mouse.h:37
Gorgon::Input::Mouse::DefineEnumStrings
DefineEnumStrings(Button, {Button::Left, "Left"}, {Button::Right, "Right"}, {Button::Middle, "Middle"}, {Button::X1, "X1"}, {Button::X2, "X2"}, {Button::X3, "X3"}, {Button::X4, "X4"}, {Button::X5, "X5"}, {Button::X6, "X6"},)
Gorgon::Input::Mouse::X3
@ X3
Definition: Mouse.h:38
Gorgon::Input::Mouse::Move
@ Move
Definition: Mouse.h:17
Gorgon::Input::Mouse::X1
@ X1
Definition: Mouse.h:36
Gorgon
Root namespace for Gorgon Game Engine.
Definition: Any.h:19
Gorgon::Input::Mouse::Scroll_Vert
@ Scroll_Vert
Definition: Mouse.h:24
Gorgon::Input::Mouse::X4
@ X4
Definition: Mouse.h:39
Gorgon::Input::Mouse::MovePressed
@ MovePressed
Move event while a button is pressed.
Definition: Mouse.h:18
Gorgon::Input::Mouse::All
@ All
Definition: Mouse.h:42
Gorgon::Input::Mouse::Zoom
@ Zoom
Definition: Mouse.h:26
Gorgon::Input::Mouse::operator|
Button operator|(Button l, Button r)
Definition: Mouse.h:45
Gorgon::Input::Mouse::Over
@ Over
Definition: Mouse.h:16
Gorgon::Input::Mouse::Left
@ Left
Definition: Mouse.h:33
Gorgon::Input::Mouse::DownPressed
@ DownPressed
Down event while a button is already pressed.
Definition: Mouse.h:21
ENUMCLASS
#define ENUMCLASS
Definition: Types.h:173
Gorgon::Input::Mouse::EventType
EventType
The type of a mouse event.
Definition: Mouse.h:14
Gorgon::Input::Mouse::Middle
@ Middle
Definition: Mouse.h:35
Gorgon::Input::Mouse::Down
@ Down
Definition: Mouse.h:20
Gorgon::Input::Mouse::Button
Button
Lists the mouse button constants.
Definition: Mouse.h:31
Gorgon::Input::Mouse::Horizontal
@ Horizontal
Definition: Mouse.h:76
Gorgon::Input::Mouse::Out
@ Out
Definition: Mouse.h:19
Gorgon::Input::Mouse::operator&
Button operator&(Button l, Button r)
Definition: Mouse.h:49
Gorgon::Input::Mouse::operator&&
bool operator&&(Button l, Button r)
Definition: Mouse.h:53
Gorgon::Input::Mouse::operator~
Button operator~(Button l)
Definition: Mouse.h:57
Gorgon::Input::Mouse::Up
@ Up
Definition: Mouse.h:23
Gorgon::Input::Mouse::ScrollType
ScrollType
Definition: Mouse.h:74
Gorgon::Input::Mouse::X6
@ X6
Definition: Mouse.h:41