00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #pragma once
00016 #ifndef H_FB_PLUGINEVENTS_MOUSEEVENTS
00017 #define H_FB_PLUGINEVENTS_MOUSEEVENTS
00018
00019 #include "PluginEvent.h"
00020
00021 namespace FB {
00022
00028 class MouseEvent : public PluginEvent
00029 {
00030 public:
00031 enum ModifierState {
00032 ModifierState_None = 0,
00033 ModifierState_Shift = 1,
00034 ModifierState_Control = 2,
00035 ModifierState_Menu = 4
00036 };
00037 MouseEvent(int x, int y, uint32_t state = ModifierState_None) :m_x(x), m_y(y), m_state(state) { }
00038
00039 public:
00040 int m_x;
00041 int m_y;
00042 uint32_t m_state;
00043 };
00049 class MouseMoveEvent : public MouseEvent
00050 {
00051 public:
00052 MouseMoveEvent(int x, int y, uint32_t state = ModifierState_None) : MouseEvent(x, y, state) { }
00053
00054 public:
00055 };
00056
00062 class MouseButtonEvent : public MouseEvent
00063 {
00064 public:
00065 enum MouseButton {
00066 MouseButton_Left,
00067 MouseButton_Right,
00068 MouseButton_Middle,
00069 MouseButton_None
00070 };
00071 MouseButtonEvent(MouseButton btn, int x, int y, uint32_t state = ModifierState_None) : MouseEvent(x, y, state), m_Btn(btn) { }
00072
00073 public:
00074 MouseButton m_Btn;
00075 };
00076
00082 class MouseDownEvent : public MouseButtonEvent
00083 {
00084 public:
00085 MouseDownEvent(MouseButton btn, int x, int y, uint32_t state = ModifierState_None) : MouseButtonEvent(btn, x, y, state) { }
00086 };
00087
00093 class MouseDoubleClickEvent : public MouseButtonEvent
00094 {
00095 public:
00096 MouseDoubleClickEvent(MouseButton btn, int x, int y, uint32_t state = ModifierState_None) : MouseButtonEvent(btn, x, y, state) { }
00097 };
00098
00104 class MouseUpEvent : public MouseButtonEvent
00105 {
00106 public:
00107 MouseUpEvent(MouseButton btn, int x, int y, uint32_t state = ModifierState_None) : MouseButtonEvent(btn, x, y, state) { }
00108 };
00109
00115 class MouseScrollEvent : public MouseEvent
00116 {
00117 public:
00118 MouseScrollEvent(int x, int y, double dx, double dy, uint32_t state = ModifierState_None) : MouseEvent(x, y, state), m_dx(dx), m_dy(dy) { }
00119
00120 public:
00121 double m_dx;
00122 double m_dy;
00123 };
00124
00130 class MouseEnteredEvent : public MouseMoveEvent
00131 {
00132 public:
00133 MouseEnteredEvent(int x, int y) : MouseMoveEvent(x,y) { }
00134 };
00135
00141 class MouseExitedEvent : public MouseMoveEvent
00142 {
00143 public:
00144 MouseExitedEvent(int x, int y) : MouseMoveEvent(x,y) { }
00145 };
00146 };
00147
00148 #endif // H_FB_PLUGINEVENTS_MOUSEEVENTS
00149