| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-28 11:53:16 +02:00
										 |  |  | #include <Kernel/KeyCode.h>
 | 
					
						
							| 
									
										
										
										
											2019-04-10 16:56:55 +02:00
										 |  |  | #include <LibCore/CEvent.h>
 | 
					
						
							| 
									
										
										
										
											2019-05-28 11:53:16 +02:00
										 |  |  | #include <LibGUI/GWindowType.h>
 | 
					
						
							| 
									
										
										
										
											2019-07-18 10:15:00 +02:00
										 |  |  | #include <LibDraw/Point.h>
 | 
					
						
							|  |  |  | #include <LibDraw/Rect.h>
 | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-10 17:01:54 +02:00
										 |  |  | class CObject; | 
					
						
							| 
									
										
										
										
											2019-03-15 16:12:06 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-28 11:53:16 +02:00
										 |  |  | class GEvent : public CEvent { | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2019-06-07 17:13:23 +02:00
										 |  |  |     enum Type { | 
					
						
							| 
									
										
										
										
											2019-04-10 16:56:55 +02:00
										 |  |  |         Show = 1000, | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |         Hide, | 
					
						
							|  |  |  |         Paint, | 
					
						
							| 
									
										
										
										
											2019-04-20 17:37:28 +02:00
										 |  |  |         MultiPaint, | 
					
						
							| 
									
										
										
										
											2019-02-09 11:19:38 +01:00
										 |  |  |         Resize, | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |         MouseMove, | 
					
						
							|  |  |  |         MouseDown, | 
					
						
							| 
									
										
										
										
											2019-05-15 22:17:09 +02:00
										 |  |  |         MouseDoubleClick, | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |         MouseUp, | 
					
						
							| 
									
										
										
										
											2019-05-13 19:52:57 +02:00
										 |  |  |         MouseWheel, | 
					
						
							| 
									
										
										
										
											2019-02-20 10:12:19 +01:00
										 |  |  |         Enter, | 
					
						
							|  |  |  |         Leave, | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |         KeyDown, | 
					
						
							|  |  |  |         KeyUp, | 
					
						
							| 
									
										
										
										
											2019-02-20 10:12:19 +01:00
										 |  |  |         WindowEntered, | 
					
						
							|  |  |  |         WindowLeft, | 
					
						
							| 
									
										
										
										
											2019-01-09 04:15:17 +01:00
										 |  |  |         WindowBecameInactive, | 
					
						
							|  |  |  |         WindowBecameActive, | 
					
						
							| 
									
										
										
										
											2019-01-26 11:24:16 +01:00
										 |  |  |         FocusIn, | 
					
						
							|  |  |  |         FocusOut, | 
					
						
							| 
									
										
										
										
											2019-02-05 10:31:37 +01:00
										 |  |  |         WindowCloseRequest, | 
					
						
							| 
									
										
										
										
											2019-04-18 04:12:27 +02:00
										 |  |  |         ContextMenu, | 
					
						
							| 
									
										
										
										
											2019-05-25 13:40:57 +02:00
										 |  |  |         EnabledChange, | 
					
						
							| 
									
										
										
										
											2019-04-20 14:40:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         __Begin_WM_Events, | 
					
						
							| 
									
										
										
										
											2019-04-03 21:03:12 +02:00
										 |  |  |         WM_WindowRemoved, | 
					
						
							|  |  |  |         WM_WindowStateChanged, | 
					
						
							| 
									
										
										
										
											2019-04-20 14:40:38 +02:00
										 |  |  |         WM_WindowRectChanged, | 
					
						
							| 
									
										
										
										
											2019-07-28 10:18:49 +02:00
										 |  |  |         WM_WindowIconBitmapChanged, | 
					
						
							| 
									
										
										
										
											2019-04-20 14:40:38 +02:00
										 |  |  |         __End_WM_Events, | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-28 11:53:16 +02:00
										 |  |  |     GEvent() {} | 
					
						
							|  |  |  |     explicit GEvent(Type type) | 
					
						
							|  |  |  |         : CEvent(type) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     virtual ~GEvent() {} | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-10 16:56:55 +02:00
										 |  |  |     bool is_key_event() const { return type() == KeyUp || type() == KeyDown; } | 
					
						
							|  |  |  |     bool is_paint_event() const { return type() == Paint; } | 
					
						
							| 
									
										
										
										
											2019-04-07 14:36:10 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-03 21:03:12 +02:00
										 |  |  | class GWMEvent : public GEvent { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     GWMEvent(Type type, int client_id, int window_id) | 
					
						
							|  |  |  |         : GEvent(type) | 
					
						
							|  |  |  |         , m_client_id(client_id) | 
					
						
							|  |  |  |         , m_window_id(window_id) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     int client_id() const { return m_client_id; } | 
					
						
							|  |  |  |     int window_id() const { return m_window_id; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     int m_client_id { -1 }; | 
					
						
							|  |  |  |     int m_window_id { -1 }; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class GWMWindowRemovedEvent : public GWMEvent { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     GWMWindowRemovedEvent(int client_id, int window_id) | 
					
						
							|  |  |  |         : GWMEvent(GEvent::Type::WM_WindowRemoved, client_id, window_id) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class GWMWindowStateChangedEvent : public GWMEvent { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2019-06-02 14:58:02 +02:00
										 |  |  |     GWMWindowStateChangedEvent(int client_id, int window_id, const StringView& title, const Rect& rect, bool is_active, GWindowType window_type, bool is_minimized) | 
					
						
							| 
									
										
										
										
											2019-04-03 21:03:12 +02:00
										 |  |  |         : GWMEvent(GEvent::Type::WM_WindowStateChanged, client_id, window_id) | 
					
						
							|  |  |  |         , m_title(title) | 
					
						
							|  |  |  |         , m_rect(rect) | 
					
						
							| 
									
										
										
										
											2019-04-04 16:23:23 +02:00
										 |  |  |         , m_window_type(window_type) | 
					
						
							| 
									
										
										
										
											2019-04-13 16:59:55 +02:00
										 |  |  |         , m_active(is_active) | 
					
						
							| 
									
										
										
										
											2019-04-06 00:57:51 +02:00
										 |  |  |         , m_minimized(is_minimized) | 
					
						
							| 
									
										
										
										
											2019-04-03 21:03:12 +02:00
										 |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     String title() const { return m_title; } | 
					
						
							|  |  |  |     Rect rect() const { return m_rect; } | 
					
						
							| 
									
										
										
										
											2019-04-04 13:19:26 +02:00
										 |  |  |     bool is_active() const { return m_active; } | 
					
						
							| 
									
										
										
										
											2019-04-04 16:23:23 +02:00
										 |  |  |     GWindowType window_type() const { return m_window_type; } | 
					
						
							| 
									
										
										
										
											2019-04-06 00:57:51 +02:00
										 |  |  |     bool is_minimized() const { return m_minimized; } | 
					
						
							| 
									
										
										
										
											2019-04-03 21:03:12 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     String m_title; | 
					
						
							|  |  |  |     Rect m_rect; | 
					
						
							| 
									
										
										
										
											2019-04-04 16:23:23 +02:00
										 |  |  |     GWindowType m_window_type; | 
					
						
							| 
									
										
										
										
											2019-04-13 16:59:55 +02:00
										 |  |  |     bool m_active; | 
					
						
							| 
									
										
										
										
											2019-04-06 00:57:51 +02:00
										 |  |  |     bool m_minimized; | 
					
						
							| 
									
										
										
										
											2019-04-03 21:03:12 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-20 14:40:38 +02:00
										 |  |  | class GWMWindowRectChangedEvent : public GWMEvent { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     GWMWindowRectChangedEvent(int client_id, int window_id, const Rect& rect) | 
					
						
							|  |  |  |         : GWMEvent(GEvent::Type::WM_WindowRectChanged, client_id, window_id) | 
					
						
							|  |  |  |         , m_rect(rect) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Rect rect() const { return m_rect; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     Rect m_rect; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-28 10:18:49 +02:00
										 |  |  | class GWMWindowIconBitmapChangedEvent : public GWMEvent { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     GWMWindowIconBitmapChangedEvent(int client_id, int window_id, int icon_buffer_id, const Size& icon_size) | 
					
						
							|  |  |  |         : GWMEvent(GEvent::Type::WM_WindowIconBitmapChanged, client_id, window_id) | 
					
						
							|  |  |  |         , m_icon_buffer_id(icon_buffer_id) | 
					
						
							|  |  |  |         , m_icon_size(icon_size) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     int icon_buffer_id() const { return m_icon_buffer_id; } | 
					
						
							|  |  |  |     const Size& icon_size() const { return m_icon_size; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     int m_icon_buffer_id; | 
					
						
							|  |  |  |     Size m_icon_size; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-20 17:37:28 +02:00
										 |  |  | class GMultiPaintEvent final : public GEvent { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     explicit GMultiPaintEvent(const Vector<Rect, 32>& rects, const Size& window_size) | 
					
						
							|  |  |  |         : GEvent(GEvent::MultiPaint) | 
					
						
							|  |  |  |         , m_rects(rects) | 
					
						
							|  |  |  |         , m_window_size(window_size) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const Vector<Rect, 32>& rects() const { return m_rects; } | 
					
						
							|  |  |  |     Size window_size() const { return m_window_size; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     Vector<Rect, 32> m_rects; | 
					
						
							|  |  |  |     Size m_window_size; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-20 04:49:48 +01:00
										 |  |  | class GPaintEvent final : public GEvent { | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2019-02-26 10:50:25 +01:00
										 |  |  |     explicit GPaintEvent(const Rect& rect, const Size& window_size = Size()) | 
					
						
							| 
									
										
										
										
											2019-01-20 04:49:48 +01:00
										 |  |  |         : GEvent(GEvent::Paint) | 
					
						
							| 
									
										
										
										
											2018-10-12 19:39:48 +02:00
										 |  |  |         , m_rect(rect) | 
					
						
							| 
									
										
										
										
											2019-02-26 10:50:25 +01:00
										 |  |  |         , m_window_size(window_size) | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2018-10-12 19:39:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-26 10:50:25 +01:00
										 |  |  |     Rect rect() const { return m_rect; } | 
					
						
							|  |  |  |     Size window_size() const { return m_window_size; } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-12 19:39:48 +02:00
										 |  |  | private: | 
					
						
							|  |  |  |     Rect m_rect; | 
					
						
							| 
									
										
										
										
											2019-02-26 10:50:25 +01:00
										 |  |  |     Size m_window_size; | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-09 11:19:38 +01:00
										 |  |  | class GResizeEvent final : public GEvent { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     explicit GResizeEvent(const Size& old_size, const Size& size) | 
					
						
							|  |  |  |         : GEvent(GEvent::Resize) | 
					
						
							|  |  |  |         , m_old_size(old_size) | 
					
						
							|  |  |  |         , m_size(size) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const Size& old_size() const { return m_old_size; } | 
					
						
							|  |  |  |     const Size& size() const { return m_size; } | 
					
						
							| 
									
										
										
										
											2019-05-28 11:53:16 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-09 11:19:38 +01:00
										 |  |  | private: | 
					
						
							|  |  |  |     Size m_old_size; | 
					
						
							|  |  |  |     Size m_size; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-18 04:12:27 +02:00
										 |  |  | class GContextMenuEvent final : public GEvent { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     explicit GContextMenuEvent(const Point& position, const Point& screen_position) | 
					
						
							|  |  |  |         : GEvent(GEvent::ContextMenu) | 
					
						
							|  |  |  |         , m_position(position) | 
					
						
							|  |  |  |         , m_screen_position(screen_position) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const Point& position() const { return m_position; } | 
					
						
							|  |  |  |     const Point& screen_position() const { return m_screen_position; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     Point m_position; | 
					
						
							|  |  |  |     Point m_screen_position; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-20 04:49:48 +01:00
										 |  |  | class GShowEvent final : public GEvent { | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2019-01-20 04:49:48 +01:00
										 |  |  |     GShowEvent() | 
					
						
							|  |  |  |         : GEvent(GEvent::Show) | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-20 04:49:48 +01:00
										 |  |  | class GHideEvent final : public GEvent { | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2019-01-20 04:49:48 +01:00
										 |  |  |     GHideEvent() | 
					
						
							|  |  |  |         : GEvent(GEvent::Hide) | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-03 21:17:35 +02:00
										 |  |  | enum GMouseButton : u8 { | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |     None = 0, | 
					
						
							| 
									
										
										
										
											2019-01-21 02:18:16 +01:00
										 |  |  |     Left = 1, | 
					
						
							|  |  |  |     Right = 2, | 
					
						
							|  |  |  |     Middle = 4, | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-20 04:49:48 +01:00
										 |  |  | class GKeyEvent final : public GEvent { | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2019-07-03 21:17:35 +02:00
										 |  |  |     GKeyEvent(Type type, int key, u8 modifiers) | 
					
						
							| 
									
										
										
										
											2019-01-20 04:49:48 +01:00
										 |  |  |         : GEvent(type) | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |         , m_key(key) | 
					
						
							| 
									
										
										
										
											2019-03-03 12:32:15 +01:00
										 |  |  |         , m_modifiers(modifiers) | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     int key() const { return m_key; } | 
					
						
							| 
									
										
										
										
											2019-03-03 12:32:15 +01:00
										 |  |  |     bool ctrl() const { return m_modifiers & Mod_Ctrl; } | 
					
						
							|  |  |  |     bool alt() const { return m_modifiers & Mod_Alt; } | 
					
						
							|  |  |  |     bool shift() const { return m_modifiers & Mod_Shift; } | 
					
						
							| 
									
										
										
										
											2019-03-03 12:56:48 +01:00
										 |  |  |     bool logo() const { return m_modifiers & Mod_Logo; } | 
					
						
							| 
									
										
										
										
											2019-07-03 21:17:35 +02:00
										 |  |  |     u8 modifiers() const { return m_modifiers; } | 
					
						
							| 
									
										
										
										
											2018-10-12 20:55:06 +02:00
										 |  |  |     String text() const { return m_text; } | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							| 
									
										
										
										
											2019-07-17 18:28:30 +02:00
										 |  |  |     friend class GWindowServerConnection; | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |     int m_key { 0 }; | 
					
						
							| 
									
										
										
										
											2019-07-03 21:17:35 +02:00
										 |  |  |     u8 m_modifiers { 0 }; | 
					
						
							| 
									
										
										
										
											2018-10-12 20:55:06 +02:00
										 |  |  |     String m_text; | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-20 04:49:48 +01:00
										 |  |  | class GMouseEvent final : public GEvent { | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2019-05-13 19:52:57 +02:00
										 |  |  |     GMouseEvent(Type type, const Point& position, unsigned buttons, GMouseButton button, unsigned modifiers, int wheel_delta) | 
					
						
							| 
									
										
										
										
											2019-01-20 04:49:48 +01:00
										 |  |  |         : GEvent(type) | 
					
						
							| 
									
										
										
										
											2019-01-20 05:48:43 +01:00
										 |  |  |         , m_position(position) | 
					
						
							| 
									
										
										
										
											2019-01-20 07:03:38 +01:00
										 |  |  |         , m_buttons(buttons) | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |         , m_button(button) | 
					
						
							| 
									
										
										
										
											2019-03-08 17:53:02 +01:00
										 |  |  |         , m_modifiers(modifiers) | 
					
						
							| 
									
										
										
										
											2019-05-13 19:52:57 +02:00
										 |  |  |         , m_wheel_delta(wheel_delta) | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-12 01:20:06 +02:00
										 |  |  |     Point position() const { return m_position; } | 
					
						
							|  |  |  |     int x() const { return m_position.x(); } | 
					
						
							|  |  |  |     int y() const { return m_position.y(); } | 
					
						
							| 
									
										
										
										
											2019-01-20 04:49:48 +01:00
										 |  |  |     GMouseButton button() const { return m_button; } | 
					
						
							| 
									
										
										
										
											2019-01-20 07:03:38 +01:00
										 |  |  |     unsigned buttons() const { return m_buttons; } | 
					
						
							| 
									
										
										
										
											2019-03-08 17:53:02 +01:00
										 |  |  |     unsigned modifiers() const { return m_modifiers; } | 
					
						
							| 
									
										
										
										
											2019-05-13 19:52:57 +02:00
										 |  |  |     int wheel_delta() const { return m_wheel_delta; } | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							| 
									
										
										
										
											2018-10-12 01:20:06 +02:00
										 |  |  |     Point m_position; | 
					
						
							| 
									
										
										
										
											2019-01-20 07:03:38 +01:00
										 |  |  |     unsigned m_buttons { 0 }; | 
					
						
							| 
									
										
										
										
											2019-01-20 04:49:48 +01:00
										 |  |  |     GMouseButton m_button { GMouseButton::None }; | 
					
						
							| 
									
										
										
										
											2019-03-08 17:53:02 +01:00
										 |  |  |     unsigned m_modifiers { 0 }; | 
					
						
							| 
									
										
										
										
											2019-05-13 19:52:57 +02:00
										 |  |  |     int m_wheel_delta { 0 }; | 
					
						
							| 
									
										
										
										
											2018-10-10 15:12:38 +02:00
										 |  |  | }; |