summaryrefslogtreecommitdiffstats
path: root/libksirtet/lib/keys.h
blob: 07c08419e6ab46f34f8a749673a4fd51b415acf3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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