AntiMicroX
virtualkeyboardmousewidget.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 VIRTUALKEYBOARDMOUSEWIDGET_H
20 #define VIRTUALKEYBOARDMOUSEWIDGET_H
21 
22 #include <QMenu>
23 #include <QTabWidget>
24 
25 class JoyButton;
26 class JoyButtonSlot;
28 class QVBoxLayout;
29 class QPushButton;
30 class QWidget;
31 class InputDevice;
32 class QuickSetDialog;
34 
40 class VirtualKeyboardMouseWidget : public QTabWidget
41 {
42  Q_OBJECT
43 
44  public:
46  QuickSetDialog *quickSetDialog = nullptr, JoyButton *button = nullptr,
47  QWidget *parent = nullptr);
48  explicit VirtualKeyboardMouseWidget(bool isNumKeypad, QWidget *parent = nullptr);
49  bool isKeyboardTabVisible();
50  bool is_numlock_activated(); // RealSystemInfo class
51  bool isLaptop(); // RealSystemInfo class
52 
53  InputDevice *getJoystick() const;
55  QWidget *getKeyboardTab() const;
56  QWidget *getMouseTab() const;
57  QPushButton *getNoneButton() const;
58  QPushButton *getMouseSettingsPushButton() const;
59  QMenu *getOtherKeysMenu() const;
61 
62  static QHash<QString, QString> topRowKeys;
63 
64  protected:
66  QVBoxLayout *setupMainKeyboardLayout();
67  QVBoxLayout *setupAuxKeyboardLayout();
68  QVBoxLayout *setupKeyboardNumPadLayout();
69 
71  VirtualKeyPushButton *createNewKey(QString xcodestring);
72  QPushButton *createNoneKey();
73  void populateTopRowKeys();
74  void addFButtonToOthers(int qt_keycode, QString keycode_text);
75  QPushButton *createOtherKeysMenu();
76 
77  virtual void resizeEvent(QResizeEvent *event);
78 
79  signals:
80  void selectionFinished();
81  void selectionCleared();
82  void selectionMade(int keycode, int alias);
83  void selectionMade(JoyButtonSlot *slot);
84  void buttonDialogClosed();
85 
86  public slots:
93 
94  private slots:
95  void processSingleKeyboardSelection(int keycode, int alias);
96  void processAdvancedKeyboardSelection(int keycode, int alias);
99  void clearButtonSlots();
100  void clearButtonSlotsFinish();
102  void setButtonFontSizes();
103  void otherKeysActionSingle(QAction *action, bool triggered);
104  void otherKeysActionAdvanced(QAction *action, bool triggered);
105  void nullifyDialogPointer();
106 
107  private:
113  QWidget *keyboardTab;
114  QWidget *mouseTab;
115  QPushButton *noneButton;
119 };
120 
121 #endif // VIRTUALKEYBOARDMOUSEWIDGET_H
VirtualKeyPushButton
PushButton representing keyboard button on VirtualKeyboardMouseWidget.
Definition: virtualkeypushbutton.h:28
x11extras.h
VirtualKeyboardMouseWidget::setupMainKeyboardLayout
QVBoxLayout * setupMainKeyboardLayout()
Definition: virtualkeyboardmousewidget.cpp:165
VirtualMousePushButton::mouseSlotCreated
void mouseSlotCreated(JoyButtonSlot *tempslot)
VirtualKeyboardMouseWidget::getJoystick
InputDevice * getJoystick() const
Definition: virtualkeyboardmousewidget.cpp:1143
QuickSetDialog::getLastPressedButton
JoyButton * getLastPressedButton() const
Definition: quicksetdialog.cpp:472
QuickSetDialog
Definition: quicksetdialog.h:38
JoyButtonSlot::MouseDown
@ MouseDown
Definition: joybuttonslot.h:65
ButtonEditDialog::invokeMethodLastBtn
void invokeMethodLastBtn(JoyButton *lastJoyBtn, ButtonEditDialogHelper *helper, const char *invokeString, int code, int alias, int index, JoyButtonSlot::JoySlotInputAction mode, bool withClear, bool withTrue, Qt::ConnectionType connTypeForAlias, Qt::ConnectionType connTypeForNothing, Qt::ConnectionType connTypeForAll)
Definition: buttoneditdialog.cpp:577
VirtualKeyboardMouseWidget::buttonDialogClosed
void buttonDialogClosed()
VirtualKeyboardMouseWidget::selectionCleared
void selectionCleared()
VirtualKeyboardMouseWidget::selectionMade
void selectionMade(int keycode, int alias)
VirtualKeyboardMouseWidget::mouseSettingsPushButton
QPushButton * mouseSettingsPushButton
Definition: virtualkeyboardmousewidget.h:116
ButtonEditDialog::getInstance
static ButtonEditDialog * getInstance()
Definition: buttoneditdialog.cpp:113
virtualkeyboardmousewidget.h
VirtualKeyboardMouseWidget::setupAuxKeyboardLayout
QVBoxLayout * setupAuxKeyboardLayout()
Definition: virtualkeyboardmousewidget.cpp:390
VirtualKeyboardMouseWidget::clearButtonSlots
void clearButtonSlots()
Definition: virtualkeyboardmousewidget.cpp:892
VirtualKeyboardMouseWidget::setupMouseControlLayout
void setupMouseControlLayout()
Definition: virtualkeyboardmousewidget.cpp:491
JoyButtonSlot::getSlotMode
JoySlotInputAction getSlotMode() const
Definition: joybuttonslot.cpp:114
antkeymapper.h
JoyButtonSlot::JoyMouseButton
@ JoyMouseButton
Definition: joybuttonslot.h:45
VirtualKeyboardMouseWidget::processAdvancedKeyboardSelection
void processAdvancedKeyboardSelection(int keycode, int alias)
Definition: virtualkeyboardmousewidget.cpp:756
VirtualKeyPushButton::calculateFontSize
int calculateFontSize()
Definition: virtualkeypushbutton.cpp:185
VirtualKeyboardMouseWidget::isLaptop
bool isLaptop()
VirtualKeyPushButton::keycodeObtained
void keycodeObtained(int code, int alias)
VirtualKeyboardMouseWidget::establishVirtualKeyboardAdvancedSignalConnections
void establishVirtualKeyboardAdvancedSignalConnections()
Definition: virtualkeyboardmousewidget.cpp:837
PadderCommon::loadIcon
QIcon loadIcon(const QString &name, const QString &fallback_location)
Universal method for loading icons.
Definition: common.cpp:162
InputDevice
Abstract class representing a hardware input device, e.g a joystick or controller.
Definition: inputdevice.h:50
VirtualKeyboardMouseWidget::getOtherKeysMenu
QMenu * getOtherKeysMenu() const
Definition: virtualkeyboardmousewidget.cpp:1155
VirtualKeyboardMouseWidget::processSingleMouseSelection
void processSingleMouseSelection(JoyButtonSlot *tempslot)
Definition: virtualkeyboardmousewidget.cpp:761
VirtualKeyboardMouseWidget::lastPressedBtn
JoyButton * lastPressedBtn
Definition: virtualkeyboardmousewidget.h:111
VirtualKeyboardMouseWidget::enableMouseSettingButton
void enableMouseSettingButton()
Definition: virtualkeyboardmousewidget.cpp:960
quicksetdialog.h
mousebuttonsettingsdialog.h
keysymToKeyString
QString keysymToKeyString(int keysym, int alias)
Definition: event.cpp:763
VirtualKeyboardMouseWidget::processSingleKeyboardSelection
void processSingleKeyboardSelection(int keycode, int alias)
Definition: virtualkeyboardmousewidget.cpp:739
VirtualKeyboardMouseWidget::keyboardTab
QWidget * keyboardTab
Definition: virtualkeyboardmousewidget.h:113
ButtonEditDialog::setUpLastJoyButton
void setUpLastJoyButton(JoyButton *)
Definition: buttoneditdialog.cpp:627
VirtualKeyboardMouseWidget::establishVirtualKeyboardSingleSignalConnections
void establishVirtualKeyboardSingleSignalConnections()
Definition: virtualkeyboardmousewidget.cpp:810
system
this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system
Definition: lgpl-2.1.txt:398
JoyButtonSlot::JoyMouseMovement
@ JoyMouseMovement
Definition: joybuttonslot.h:46
JoyButtonSlot
Represents action which can be performed after pressing button.
Definition: joybuttonslot.h:37
AntKeyMapper::returnVirtualKey
int returnVirtualKey(int qkey)
Definition: antkeymapper.cpp:104
VirtualKeyboardMouseWidget::populateTopRowKeys
void populateTopRowKeys()
Definition: virtualkeyboardmousewidget.cpp:780
JoyButtonSlot::JoyKeyboard
@ JoyKeyboard
Definition: joybuttonslot.h:44
AntKeyMapper::getInstance
static AntKeyMapper * getInstance(QString handler="")
Definition: antkeymapper.cpp:80
VirtualKeyboardMouseWidget::otherKeysActionSingle
void otherKeysActionSingle(QAction *action, bool triggered)
Definition: virtualkeyboardmousewidget.cpp:1115
VirtualKeyboardMouseWidget::VirtualKeyboardMouseWidget
VirtualKeyboardMouseWidget(InputDevice *joystick, ButtonEditDialogHelper *helper, bool isNumKeypad, QuickSetDialog *quickSetDialog=nullptr, JoyButton *button=nullptr, QWidget *parent=nullptr)
Definition: virtualkeyboardmousewidget.cpp:54
VirtualKeyboardMouseWidget::createOtherKeysMenu
QPushButton * createOtherKeysMenu()
Definition: virtualkeyboardmousewidget.cpp:986
ButtonEditDialogHelper
Definition: buttoneditdialoghelper.h:26
VirtualKeyboardMouseWidget
Widget visualizing possible keyboard and mouse assignments.
Definition: virtualkeyboardmousewidget.h:40
event.h
VirtualKeyboardMouseWidget::openMouseSettingsDialog
void openMouseSettingsDialog()
Definition: virtualkeyboardmousewidget.cpp:934
JoyButtonSlot::MouseUp
@ MouseUp
Definition: joybuttonslot.h:64
VirtualKeyboardMouseWidget::selectionFinished
void selectionFinished()
VirtualKeyboardMouseWidget::createNoneKey
QPushButton * createNoneKey()
Definition: virtualkeyboardmousewidget.cpp:726
JoyButtonSlot::getSlotCode
int getSlotCode() const
Definition: joybuttonslot.cpp:110
VirtualKeyboardMouseWidget::getMouseSettingsPushButton
QPushButton * getMouseSettingsPushButton() const
Definition: virtualkeyboardmousewidget.cpp:1153
VirtualMousePushButton
PushButton representing mouse action in VirtualKeyboardMouseWidget.
Definition: virtualmousepushbutton.h:30
JoyButtonSlot::MouseLeft
@ MouseLeft
Definition: joybuttonslot.h:66
VirtualKeyboardMouseWidget::resizeEvent
virtual void resizeEvent(QResizeEvent *event)
Definition: virtualkeyboardmousewidget.cpp:964
JoyButton
Represents a single joystick button being part of a SetJoystick Contains multiple JoyButtonSlots whic...
Definition: joybutton.h:46
virtualmousepushbutton.h
virtualkeypushbutton.h
VirtualKeyboardMouseWidget::is_numlock_activated
bool is_numlock_activated()
JoyButton::buildActiveZoneSummaryString
void buildActiveZoneSummaryString()
Generate active zone string and notify other objects.
Definition: joybutton.cpp:1684
ButtonEditDialog::refreshForLastBtn
void refreshForLastBtn()
Definition: buttoneditdialog.cpp:525
JoyButtonSlot::MouseRight
@ MouseRight
Definition: joybuttonslot.h:67
VirtualKeyboardMouseWidget::setupKeyboardNumPadLayout
QVBoxLayout * setupKeyboardNumPadLayout()
Definition: virtualkeyboardmousewidget.cpp:428
VirtualKeyboardMouseWidget::otherKeysActionAdvanced
void otherKeysActionAdvanced(QAction *action, bool triggered)
Definition: virtualkeyboardmousewidget.cpp:1123
MouseButtonSettingsDialog
Definition: mousebuttonsettingsdialog.h:30
qtkeymapperbase.h
buttoneditdialog.h
VirtualKeyboardMouseWidget::createNewKey
VirtualKeyPushButton * createNewKey(QString xcodestring)
Definition: virtualkeyboardmousewidget.cpp:620
VirtualKeyboardMouseWidget::getCurrentQuickDialog
QuickSetDialog * getCurrentQuickDialog() const
Definition: virtualkeyboardmousewidget.cpp:1157
VirtualKeyboardMouseWidget::otherKeysMenu
QMenu * otherKeysMenu
Definition: virtualkeyboardmousewidget.h:117
VirtualKeyboardMouseWidget::withoutQuickSetDialog
bool withoutQuickSetDialog
Definition: virtualkeyboardmousewidget.h:108
VirtualKeyboardMouseWidget::getNoneButton
QPushButton * getNoneButton() const
Definition: virtualkeyboardmousewidget.cpp:1151
VirtualKeyboardMouseWidget::mouseTab
QWidget * mouseTab
Definition: virtualkeyboardmousewidget.h:114
VirtualKeyboardMouseWidget::disableMouseSettingButton
void disableMouseSettingButton()
Definition: virtualkeyboardmousewidget.cpp:962
VirtualKeyboardMouseWidget::joystick
InputDevice * joystick
Definition: virtualkeyboardmousewidget.h:110
VirtualKeyboardMouseWidget::processAdvancedMouseSelection
void processAdvancedMouseSelection(JoyButtonSlot *tempslot)
Definition: virtualkeyboardmousewidget.cpp:778
VirtualKeyboardMouseWidget::m_isNumKeypad
bool m_isNumKeypad
Definition: virtualkeyboardmousewidget.h:109
VirtualKeyboardMouseWidget::isKeyboardTabVisible
bool isKeyboardTabVisible()
Definition: virtualkeyboardmousewidget.cpp:932
VirtualKeyboardMouseWidget::establishVirtualMouseSignalConnections
void establishVirtualMouseSignalConnections()
Definition: virtualkeyboardmousewidget.cpp:864
VirtualKeyboardMouseWidget::currentQuickDialog
QuickSetDialog * currentQuickDialog
Definition: virtualkeyboardmousewidget.h:118
VirtualKeyboardMouseWidget::establishVirtualMouseAdvancedSignalConnections
void establishVirtualMouseAdvancedSignalConnections()
Definition: virtualkeyboardmousewidget.cpp:878
VirtualKeyboardMouseWidget::setupVirtualKeyboardLayout
void setupVirtualKeyboardLayout()
Definition: virtualkeyboardmousewidget.cpp:130
VirtualKeyboardMouseWidget::addFButtonToOthers
void addFButtonToOthers(int qt_keycode, QString keycode_text)
Definition: virtualkeyboardmousewidget.cpp:800
VirtualKeyboardMouseWidget::getMouseTab
QWidget * getMouseTab() const
Definition: virtualkeyboardmousewidget.cpp:1149
VirtualKeyboardMouseWidget::nullifyDialogPointer
void nullifyDialogPointer()
Definition: virtualkeyboardmousewidget.cpp:1131
VirtualKeyboardMouseWidget::clearButtonSlotsFinish
void clearButtonSlotsFinish()
Definition: virtualkeyboardmousewidget.cpp:912
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
VirtualKeyboardMouseWidget::noneButton
QPushButton * noneButton
Definition: virtualkeyboardmousewidget.h:115
VirtualKeyPushButton::getKeycode
int getKeycode() const
Definition: virtualkeypushbutton.cpp:202
VirtualKeyboardMouseWidget::setButtonFontSizes
void setButtonFontSizes()
Definition: virtualkeyboardmousewidget.cpp:972
VirtualKeyboardMouseWidget::helper
ButtonEditDialogHelper * helper
Definition: virtualkeyboardmousewidget.h:112
VirtualKeyboardMouseWidget::topRowKeys
static QHash< QString, QString > topRowKeys
Definition: virtualkeyboardmousewidget.h:62
VirtualKeyboardMouseWidget::getHelper
ButtonEditDialogHelper * getHelper() const
Definition: virtualkeyboardmousewidget.cpp:1145
VirtualKeyboardMouseWidget::getKeyboardTab
QWidget * getKeyboardTab() const
Definition: virtualkeyboardmousewidget.cpp:1147