diff options
Diffstat (limited to 'libksirtet/lib/keys.h')
-rw-r--r-- | libksirtet/lib/keys.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/libksirtet/lib/keys.h b/libksirtet/lib/keys.h new file mode 100644 index 00000000..07c08419 --- /dev/null +++ b/libksirtet/lib/keys.h @@ -0,0 +1,42 @@ +#ifndef KEYS_H +#define KEYS_H + +#include <qmap.h> +#include <kaction.h> + +#include "mp_interface.h" + + +class KeyData : public QObject +{ + Q_OBJECT + public: + KeyData(uint maxNb, uint nbActions, const ActionData *, + QObject *parent); + void setKeycodes(uint nb, uint i, const int *keycodes); + + void setCurrentNb(uint nb); + void clear(); + void createActionCollection(uint index, QWidget *receiver); + void setEnabled(uint index, bool enabled); + void addKeys(KKeyDialog &); + void save(); + + void keyEvent(QKeyEvent *e, bool pressed); + + private: + uint _maxNb; + QMemArray<ActionData> _data; + QMap<int, QMap<int, QMemArray<int> > > _keycodes; + QMemArray<KActionCollection *> _cols; + struct SpecialData { + bool enabled; + QSignal *pressed, *released; + }; + QMap<KAction *, SpecialData> _specActions; + + QString group() const + { return QString("Keys (%1 humans)").arg(_cols.size()); } +}; + +#endif // KEYS_H |