AntiMicroX
dpadcontextmenu.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 DPADCONTEXTMENU_H
20 #define DPADCONTEXTMENU_H
21 
23 
24 #include <QActionGroup>
25 #include <QMenu>
26 
27 class JoyDPad;
28 class QWidget;
29 
30 class DPadContextMenu : public QMenu
31 {
32  Q_OBJECT
33 
34  public:
35  explicit DPadContextMenu(JoyDPad *dpad, QWidget *parent = nullptr);
36  void buildMenu();
37 
38  protected:
39  int getPresetIndex();
40 
41  private slots:
42  void setDPadPreset(QAction *action);
43  void setDPadMode(QAction *action);
45 
46  private:
48 
51 
52  void generateActionPreset(QAction *action, QString actionText, int currentPreset, int &presetMode,
53  QActionGroup *presetGroup);
54  void generateActionMode(QActionGroup *modesGroup, QAction *action, QString actionText, int currentPreset,
55  int presetMode);
56 };
57 
58 #endif // DPADCONTEXTMENU_H
JoyDPad::EightWayMode
@ EightWayMode
Definition: joydpad.h:34
JoyDPad::getJoyMode
JoyMode getJoyMode()
Definition: joydpad.cpp:211
JoyDPadButton::DpadLeftDown
@ DpadLeftDown
Definition: joydpadbutton.h:51
JoyButtonSlot::MouseDown
@ MouseDown
Definition: joybuttonslot.h:65
dpadcontextmenu.h
DPadContextMenu::DPadContextMenu
DPadContextMenu(JoyDPad *dpad, QWidget *parent=nullptr)
Definition: dpadcontextmenu.cpp:31
QtKeyMapperBase::AntKey_KP_7
@ AntKey_KP_7
Definition: qtkeymapperbase.h:80
DPadContextMenuHelper::setPendingSlots
void setPendingSlots(QHash< JoyDPadButton::JoyDPadDirections, JoyButtonSlot * > *tempSlots)
Definition: dpadcontextmenuhelper.cpp:35
JoyButtonSlot::getSlotMode
JoySlotInputAction getSlotMode() const
Definition: joybuttonslot.cpp:114
antkeymapper.h
DPadContextMenu::helper
DPadContextMenuHelper helper
Definition: dpadcontextmenu.h:50
JoyDPad::setJoyMode
void setJoyMode(JoyMode mode)
Definition: joydpad.cpp:204
JoyDPadButton::DpadDown
@ DpadDown
Definition: joydpadbutton.h:46
JoyDPadButton::DpadRightDown
@ DpadRightDown
Definition: joydpadbutton.h:49
QtKeyMapperBase::AntKey_KP_3
@ AntKey_KP_3
Definition: qtkeymapperbase.h:76
QtKeyMapperBase::AntKey_KP_9
@ AntKey_KP_9
Definition: qtkeymapperbase.h:82
JoyDPadButton::DpadLeft
@ DpadLeft
Definition: joydpadbutton.h:47
JoyDPadButton::DpadRight
@ DpadRight
Definition: joydpadbutton.h:45
JoyDPadButton::DpadUp
@ DpadUp
Definition: joydpadbutton.h:44
DPadContextMenuHelper
Definition: dpadcontextmenuhelper.h:26
QtKeyMapperBase::AntKey_KP_8
@ AntKey_KP_8
Definition: qtkeymapperbase.h:81
JoyButtonSlot::JoyMouseMovement
@ JoyMouseMovement
Definition: joybuttonslot.h:46
JoyButtonSlot
Represents action which can be performed after pressing button.
Definition: joybuttonslot.h:37
DPadContextMenu
Definition: dpadcontextmenu.h:30
DPadContextMenu::getHelper
DPadContextMenuHelper & getHelper()
Definition: dpadcontextmenu.cpp:430
AntKeyMapper::returnVirtualKey
int returnVirtualKey(int qkey)
Definition: antkeymapper.cpp:104
JoyDPadButton::DpadLeftUp
@ DpadLeftUp
Definition: joydpadbutton.h:50
JoyButtonSlot::JoyKeyboard
@ JoyKeyboard
Definition: joybuttonslot.h:44
DPadContextMenu::generateActionMode
void generateActionMode(QActionGroup *modesGroup, QAction *action, QString actionText, int currentPreset, int presetMode)
Definition: dpadcontextmenu.cpp:96
JoyButton::getAssignedSlots
QList< JoyButtonSlot * > * getAssignedSlots()
Definition: joybutton.cpp:2390
AntKeyMapper::getInstance
static AntKeyMapper * getInstance(QString handler="")
Definition: antkeymapper.cpp:80
JoyDPad::FourWayCardinal
@ FourWayCardinal
Definition: joydpad.h:35
DPadContextMenu::getPresetIndex
int getPresetIndex()
Find the appropriate menu item index for the currently assigned slots that are assigned to a DPad.
Definition: dpadcontextmenu.cpp:311
JoyDPad
Definition: joydpad.h:24
JoyButtonSlot::MouseUp
@ MouseUp
Definition: joybuttonslot.h:64
QtKeyMapperBase::AntKey_KP_6
@ AntKey_KP_6
Definition: qtkeymapperbase.h:79
inputdevice.h
DPadContextMenu::buildMenu
void buildMenu()
Generate the context menu that will be shown to a user when the person right clicks on the DPad setti...
Definition: dpadcontextmenu.cpp:45
JoyButtonSlot::getSlotCode
int getSlotCode() const
Definition: joybuttonslot.cpp:110
JoyDPadButton
Definition: joydpadbutton.h:27
JoyButtonSlot::MouseLeft
@ MouseLeft
Definition: joybuttonslot.h:66
JoyButtonSlot::MouseRight
@ MouseRight
Definition: joybuttonslot.h:67
JoyDPad::FourWayDiagonal
@ FourWayDiagonal
Definition: joydpad.h:36
common.h
QtKeyMapperBase::AntKey_KP_2
@ AntKey_KP_2
Definition: qtkeymapperbase.h:75
DPadContextMenu::generateActionPreset
void generateActionPreset(QAction *action, QString actionText, int currentPreset, int &presetMode, QActionGroup *presetGroup)
Definition: dpadcontextmenu.cpp:82
MouseDPadSettingsDialog
Definition: mousedpadsettingsdialog.h:30
mousedpadsettingsdialog.h
DPadContextMenu::dpad
JoyDPad * dpad
Definition: dpadcontextmenu.h:49
JoyDPad::JoyMode
JoyMode
Definition: joydpad.h:31
DPadContextMenu::openMouseSettingsDialog
void openMouseSettingsDialog()
Open a mouse settings dialog for changing the mouse speed settings for all DPad buttons.
Definition: dpadcontextmenu.cpp:424
DPadContextMenu::setDPadPreset
void setDPadPreset(QAction *action)
Assign the appropriate slots to DPad buttons based on the preset item that was chosen.
Definition: dpadcontextmenu.cpp:122
JoyDPad::getJoyButton
JoyDPadButton * getJoyButton(int index_local)
Definition: joydpad.cpp:50
QtKeyMapperBase::AntKey_KP_1
@ AntKey_KP_1
Definition: qtkeymapperbase.h:74
JoyDPadButton::DpadRightUp
@ DpadRightUp
Definition: joydpadbutton.h:48
QtKeyMapperBase::AntKey_KP_4
@ AntKey_KP_4
Definition: qtkeymapperbase.h:77
JoyDPad::StandardMode
@ StandardMode
Definition: joydpad.h:33
joydpad.h
PadderCommon::inputDaemonMutex
QMutex inputDaemonMutex
Definition: common.cpp:223
dpadcontextmenuhelper.h
DPadContextMenu::setDPadMode
void setDPadMode(QAction *action)
Set the appropriate mode for a DPad based on the item chosen.
Definition: dpadcontextmenu.cpp:112