AntiMicroX
joybuttonslot.h
Go to the documentation of this file.
1 /* antimicrox Gamepad to KB+M event mapper
2  * Copyright (C) 2015 Travis Nickles <nickles.travis@gmail.com>
3  * Copyright (C) 2020 Jagoda Górska <juliagoda.pl@protonmail>
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9 
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14 
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 #ifndef JOYBUTTONSLOT_H
20 #define JOYBUTTONSLOT_H
21 
22 #include <QElapsedTimer>
23 #include <QObject>
24 #include <QPointer>
25 #include <QTime>
26 #include <QVariant>
27 #include <QtWidgets/QApplication>
28 
29 class QXmlStreamReader;
30 class QXmlStreamWriter;
31 
37 class JoyButtonSlot : public QObject
38 {
39  Q_OBJECT
40 
41  public:
43  {
60  };
61 
63  {
64  MouseUp = 1,
68  };
70  {
75  };
77  {
78  MouseLB = 1,
81  };
82 
83  explicit JoyButtonSlot(QObject *parent = nullptr);
84  explicit JoyButtonSlot(int code, JoySlotInputAction mode, QObject *parent = nullptr);
85  explicit JoyButtonSlot(int code, int alias, JoySlotInputAction mode, QObject *parent = nullptr);
86  explicit JoyButtonSlot(JoyButtonSlot *slot, QObject *parent = nullptr);
87  explicit JoyButtonSlot(QString text, JoySlotInputAction mode, QObject *parent = nullptr);
89 
90  void setSlotCode(int code);
91  int getSlotCode() const;
92  void setSlotMode(JoySlotInputAction selectedMode);
94  QString movementString();
95  void setMouseSpeed(int value);
96  void setDistance(double distance);
97  double getMouseDistance();
98  QElapsedTimer *getMouseInterval();
99  void restartMouseInterval();
100  QString getXmlName();
101  QString getSlotString();
102  void setSlotCode(int code, int alias);
103  int getSlotCodeAlias() const;
104  void setPreviousDistance(double distance);
105  double getPreviousDistance() const;
106  double getDistance() const;
107  bool isModifierKey();
108 
109  bool isEasingActive() const;
110  void setEasingStatus(bool isActive);
111  QElapsedTimer *getEasingTime();
112 
113  void setTextData(QString textData);
114  QString getTextData() const;
115 
116  void setExtraData(QVariant data);
117  QVariant getExtraData() const;
118 
119  void setMixSlots(QList<JoyButtonSlot *> *slots);
120  QList<JoyButtonSlot *> *getMixSlots();
121 
122  template <typename T> void appendMiniSlot(T minislot)
123  {
125  mix_slots->append(minislot);
126  }
127 
128  void assignMixSlotsToNull();
129 
130  bool isValidSlot();
131 
132  void cleanMixSlots();
133 
135 
136  private:
137  void copyAssignments(const JoyButtonSlot &rhs);
138  void secureMixSlotsInit();
139 
143  QList<JoyButtonSlot *> *mix_slots;
144  double m_distance;
146  QElapsedTimer mouseInterval;
147  QElapsedTimer easingTime;
149  QString m_textData;
150  QVariant extraData;
151 };
152 
153 Q_DECLARE_METATYPE(JoyButtonSlot *)
154 Q_DECLARE_METATYPE(JoyButtonSlot::JoySlotInputAction)
155 
156 #endif // JOYBUTTONSLOT_H
JoyButtonSlot::JoyKeyPress
@ JoyKeyPress
Definition: joybuttonslot.h:53
JoyButtonSlot::copyAssignments
void copyAssignments(const JoyButtonSlot &rhs)
Deep-copies member variables from another JoyButtonSlot object into this object.
Definition: joybuttonslot.cpp:401
JoyButtonSlot::setTextData
void setTextData(QString textData)
Definition: joybuttonslot.cpp:383
JoyButtonSlot::setEasingStatus
void setEasingStatus(bool isActive)
Definition: joybuttonslot.cpp:379
JoyButtonSlot::getSlotString
QString getSlotString()
Definition: joybuttonslot.cpp:157
JoyButtonSlot::getEasingTime
QElapsedTimer * getEasingTime()
Definition: joybuttonslot.cpp:381
JoyButtonSlot::MouseDown
@ MouseDown
Definition: joybuttonslot.h:65
code
the intent is to exercise the right to control the distribution of derivative or collective works based on the Library In mere aggregation of another work not based on the Library with the you must alter all the notices that refer to this so that they refer to the ordinary GNU General Public instead of to this it is irreversible for that so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy This option is useful when you wish to copy part of the code of the Library into a program that is not a library You may copy and distribute the which must be distributed under the terms of Sections and above on a medium customarily used for software interchange If distribution of object code is made by offering access to copy from a designated then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code
Definition: lgpl-2.1.txt:237
JoyButtonSlot::operator=
JoyButtonSlot & operator=(JoyButtonSlot *slot)
Definition: joybuttonslot.cpp:499
JoyButtonSlot::appendMiniSlot
void appendMiniSlot(T minislot)
Definition: joybuttonslot.h:122
JoyButtonSlot::getMouseInterval
QElapsedTimer * getMouseInterval()
Definition: joybuttonslot.cpp:151
JoyButtonSlot::m_distance
double m_distance
Definition: joybuttonslot.h:144
JoyButtonSlot::JoyButtonSlot
JoyButtonSlot(QObject *parent=nullptr)
Definition: joybuttonslot.cpp:29
JoyButtonSlot::getXmlName
QString getXmlName()
Definition: joybuttonslot.cpp:155
JoyButtonSlot::MouseWheelRight
@ MouseWheelRight
Definition: joybuttonslot.h:74
JoyButtonSlot::setMouseSpeed
void setMouseSpeed(int value)
JoyButtonSlot::getSlotMode
JoySlotInputAction getSlotMode() const
Definition: joybuttonslot.cpp:114
antkeymapper.h
JoyButtonSlot::JoyMouseButton
@ JoyMouseButton
Definition: joybuttonslot.h:45
globalvariables.h
JoyButtonSlot::previousDistance
double previousDistance
Definition: joybuttonslot.h:145
JoyButtonSlot::MouseRB
@ MouseRB
Definition: joybuttonslot.h:80
JoyButtonSlot::JoyCycle
@ JoyCycle
Definition: joybuttonslot.h:49
JoyButtonSlot::JoySlotMouseDirection
JoySlotMouseDirection
Definition: joybuttonslot.h:62
JoyButtonSlot::JoySlotMouseWheelButton
JoySlotMouseWheelButton
Definition: joybuttonslot.h:69
JoyButtonSlot::easingActive
bool easingActive
Definition: joybuttonslot.h:148
JoyButtonSlot::restartMouseInterval
void restartMouseInterval()
Definition: joybuttonslot.cpp:153
keysymToKeyString
QString keysymToKeyString(int keysym, int alias)
Definition: event.cpp:763
JoyButtonSlot::JoyDistance
@ JoyDistance
Definition: joybuttonslot.h:50
JoyButtonSlot::isModifierKey
bool isModifierKey()
Definition: joybuttonslot.cpp:365
JoyButtonSlot::secureMixSlotsInit
void secureMixSlotsInit()
Definition: joybuttonslot.cpp:429
JoyButtonSlot::JoyDelay
@ JoyDelay
Definition: joybuttonslot.h:54
JoyButtonSlot::setPreviousDistance
void setPreviousDistance(double distance)
Definition: joybuttonslot.cpp:359
JoyButtonSlot::JoyMouseSpeedMod
@ JoyMouseSpeedMod
Definition: joybuttonslot.h:52
JoyButtonSlot::setExtraData
void setExtraData(QVariant data)
Definition: joybuttonslot.cpp:392
JoyButtonSlot::setDistance
void setDistance(double distance)
Definition: joybuttonslot.cpp:147
JoyButtonSlot::setMixSlots
void setMixSlots(QList< JoyButtonSlot * > *slots)
Definition: joybuttonslot.cpp:463
JoyButtonSlot::getMixSlots
QList< JoyButtonSlot * > * getMixSlots()
Definition: joybuttonslot.cpp:438
joybuttonslot.h
JoyButtonSlot::JoySetChange
@ JoySetChange
Definition: joybuttonslot.h:56
JoyButtonSlot::JoyMouseMovement
@ JoyMouseMovement
Definition: joybuttonslot.h:46
JoyButtonSlot::JoyMix
@ JoyMix
Definition: joybuttonslot.h:59
JoyButtonSlot
Represents action which can be performed after pressing button.
Definition: joybuttonslot.h:37
JoyButtonSlot::getMouseDistance
double getMouseDistance()
Definition: joybuttonslot.cpp:149
GlobalVariables::JoyButtonSlot::xmlName
static const QString xmlName
Definition: globalvariables.h:242
JoyButtonSlot::cleanMixSlots
void cleanMixSlots()
Definition: joybuttonslot.cpp:446
JoyButtonSlot::assignMixSlotsToNull
void assignMixSlotsToNull()
Definition: joybuttonslot.cpp:444
JoyButtonSlot::MouseMB
@ MouseMB
Definition: joybuttonslot.h:79
JoyButtonSlot::JoyKeyboard
@ JoyKeyboard
Definition: joybuttonslot.h:44
JoyButtonSlot::getTextData
QString getTextData() const
Definition: joybuttonslot.cpp:385
JoyButtonSlot::isEasingActive
bool isEasingActive() const
Definition: joybuttonslot.cpp:377
AntKeyMapper::getInstance
static AntKeyMapper * getInstance(QString handler="")
Definition: antkeymapper.cpp:80
GlobalVariables::JoyButtonSlot::MAXTEXTENTRYDISPLAYLENGTH
static const int MAXTEXTENTRYDISPLAYLENGTH
Definition: globalvariables.h:243
JoyButtonSlot::MouseWheelUp
@ MouseWheelUp
Definition: joybuttonslot.h:71
JoyButtonSlot::MouseWheelDown
@ MouseWheelDown
Definition: joybuttonslot.h:72
JoyButtonSlot::mix_slots
QList< JoyButtonSlot * > * mix_slots
Definition: joybuttonslot.h:143
event.h
JoyButtonSlot::MouseUp
@ MouseUp
Definition: joybuttonslot.h:64
JoyButtonSlot::JoyTextEntry
@ JoyTextEntry
Definition: joybuttonslot.h:57
inputdevice.h
JoyButtonSlot::isValidSlot
bool isValidSlot()
Definition: joybuttonslot.cpp:465
JoyButtonSlot::getSlotCode
int getSlotCode() const
Definition: joybuttonslot.cpp:110
JoyButtonSlot::MouseLeft
@ MouseLeft
Definition: joybuttonslot.h:66
JoyButtonSlot::easingTime
QElapsedTimer easingTime
Definition: joybuttonslot.h:147
JoyButtonSlot::setSlotMode
void setSlotMode(JoySlotInputAction selectedMode)
Definition: joybuttonslot.cpp:112
JoyButtonSlot::MouseRight
@ MouseRight
Definition: joybuttonslot.h:67
JoyButtonSlot::JoyPause
@ JoyPause
Definition: joybuttonslot.h:47
JoyButtonSlot::m_textData
QString m_textData
Definition: joybuttonslot.h:149
JoyButtonSlot::JoyExecute
@ JoyExecute
Definition: joybuttonslot.h:58
JoyButtonSlot::JoyLoadProfile
@ JoyLoadProfile
Definition: joybuttonslot.h:55
JoyButtonSlot::setSlotCode
void setSlotCode(int code)
Definition: joybuttonslot.cpp:86
JoyButtonSlot::mouseInterval
QElapsedTimer mouseInterval
Definition: joybuttonslot.h:146
JoyButtonSlot::getExtraData
QVariant getExtraData() const
Definition: joybuttonslot.cpp:394
JoyButtonSlot::MouseWheelLeft
@ MouseWheelLeft
Definition: joybuttonslot.h:73
JoyButtonSlot::getDistance
double getDistance() const
Definition: joybuttonslot.cpp:363
JoyButtonSlot::JoyRelease
@ JoyRelease
Definition: joybuttonslot.h:51
JoyButtonSlot::extraData
QVariant extraData
Definition: joybuttonslot.h:150
JoyButtonSlot::JoyHold
@ JoyHold
Definition: joybuttonslot.h:48
JoyButtonSlot::qkeyaliasCode
int qkeyaliasCode
Definition: joybuttonslot.h:141
JoyButtonSlot::~JoyButtonSlot
~JoyButtonSlot()
Definition: joybuttonslot.cpp:84
JoyButtonSlot::m_mode
JoySlotInputAction m_mode
Definition: joybuttonslot.h:142
JoyButtonSlot::JoySlotMouseButton
JoySlotMouseButton
Definition: joybuttonslot.h:76
JoyButtonSlot::getSlotCodeAlias
int getSlotCodeAlias() const
Definition: joybuttonslot.cpp:108
JoyButtonSlot::movementString
QString movementString()
Definition: joybuttonslot.cpp:116
JoyButtonSlot::JoySlotInputAction
JoySlotInputAction
Definition: joybuttonslot.h:42
number
it is up to the author donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License If the distribution and or use of the Library is restricted in certain countries either by patents or by copyrighted the original copyright holder who places the Library under this License may add an geographical distribution limitation excluding those so that distribution is permitted only in or among countries not thus excluded In such this License incorporates the limitation as if written in the body of this License The Free Software Foundation may publish revised and or new versions of the Lesser General Public License from time to time Such new versions will be similar in spirit to the present but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Library specifies a version number of this License which applies to it and any later you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation If the Library does not specify a license version number
Definition: lgpl-2.1.txt:423
JoyButtonSlot::MouseLB
@ MouseLB
Definition: joybuttonslot.h:78
JoyButtonSlot::getPreviousDistance
double getPreviousDistance() const
Definition: joybuttonslot.cpp:361
PadderCommon::getProfileName
QString getProfileName(QFileInfo &profile)
Returns the "human-readable" name of the given profile.
Definition: common.h:204
JoyButtonSlot::deviceCode
int deviceCode
Definition: joybuttonslot.h:140