summaryrefslogtreecommitdiffstats
path: root/libksirtet/lib/keys.h
diff options
context:
space:
mode:
Diffstat (limited to 'libksirtet/lib/keys.h')
-rw-r--r--libksirtet/lib/keys.h42
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