Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
Event.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd.
4 * SPDX-FileCopyrightText: (C) 2004 Chris Schoeneman
5 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
6 */
7
8#pragma once
9
10#include "EventTypes.h"
11#include "common/Common.h"
12
14
16{
17public:
18 EventData() = default;
19 virtual ~EventData() = default;
20};
21
23
26class Event
27{
28public:
29 using Flags = uint32_t;
31 {
32 inline static const Flags NoFlags = 0x00;
33 inline static const Flags DeliverImmediately = 0x01;
34 inline static const Flags DontFreeData = 0x02;
35 };
36
37 Event() = default;
38
40
48 Event(EventTypes type, void *target = nullptr, void *data = nullptr, Flags flags = EventFlags::NoFlags);
49
51
56 Event(EventTypes type, void *target, EventData *dataObject);
57
59
60
62
65 static void deleteData(const Event &);
66
68
72 void setDataObject(EventData *dataObject);
73
75
77
79
82 EventTypes getType() const;
83
85
88 void *getTarget() const;
89
91
94 void *getData() const;
95
97
102 EventData *getDataObject() const;
103
105
108 Flags getFlags() const;
109
111
112private:
113 EventTypes m_type = EventTypes::Unknown;
114 void *m_target = nullptr;
115 void *m_data = nullptr;
116 Flags m_flags = EventFlags::NoFlags;
117 EventData *m_dataObject = nullptr;
118};
static void FAR int int flags
Definition ArchNetworkWinsock.cpp:37
static int void FAR * data
Definition ArchNetworkWinsock.cpp:34
static int type
Definition ArchNetworkWinsock.cpp:44
Definition Event.h:16
virtual ~EventData()=default
EventData()=default
uint32_t Flags
Definition Event.h:29
void * getTarget() const
Get the event target.
Definition Event.cpp:35
EventData * getDataObject() const
Get the event data (non-POD)
Definition Event.cpp:45
void * getData() const
Get the event data (POD).
Definition Event.cpp:40
static void deleteData(const Event &)
Release event data.
Definition Event.cpp:55
EventTypes getType() const
Get event type.
Definition Event.cpp:30
void setDataObject(EventData *dataObject)
Set data (non-POD)
Definition Event.cpp:74
Flags getFlags() const
Get event flags.
Definition Event.cpp:50
Event()=default
EventTypes
Definition EventTypes.h:13
Definition Event.h:31
static const Flags NoFlags
No flags.
Definition Event.h:32
static const Flags DontFreeData
Don't free data in deleteData.
Definition Event.h:34
static const Flags DeliverImmediately
Dispatch and free event immediately.
Definition Event.h:33