Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

KeyMappings.h

Go to the documentation of this file.
00001 #ifndef _KEY_MAPPINGS_H_
00002 #define _KEY_MAPPINGS_H_
00003 
00004 #include <qwindowsystem_qws.h>
00005 #include <qmap.h>
00006 
00007 #include <qintdict.h>
00008 
00009 class MapInfo
00010 {
00011 public:
00012         MapInfo(){};
00013         MapInfo(int code, int mod = 0, int uni = 0,
00014                 int shift_uni = 0, int ctrl_uni = 0);
00015 
00016         static const QWSServer::KeyMap* findKeyMap(int code);
00017 
00018         int keycode;
00019         int modifiers;
00020         int unicode;
00021         int shift_unicode;
00022         int ctrl_unicode;
00023         bool isDefined;
00024 };
00025 
00026 class KeyMappings
00027 {
00028 public:
00029         typedef QWSServer::KeyMap KeyMap;
00030         typedef QMap<int, MapInfo> CodeMaps;
00031 
00032         KeyMappings();
00033         virtual ~KeyMappings();
00034 
00035         void setOriginal(int unicode, int modifiers);
00036         void setModifiers(int modifiers);
00037         void setUnicode(int unicode);
00038         void setKeycode(int keycode);
00039 
00040         int getUnicode();
00041         int getKeycode();
00042         int getModifiers();
00043         bool isDefined();
00044 
00045         void assign(int keycode, int keymask, int mapcode, int mapmodifiers = 0,
00046                 int unicode = 0, int shift_unicode = 0, int ctrl_unicode = 0);
00047         void assignModifier(const QString& type, const QString& state);
00048         void assignUnicode(const QString& kind, const QString& ch);
00049         void assignUnicode(int unicode);
00050         bool apply(int unicode, int keycode, int modifiers, int keymask, bool isPress);
00051         bool apply(int keycode, int keymask, bool isPress);
00052         void setCapsLock(bool on=true){
00053                 m_capslock = on;
00054         }
00055 
00056         void reset();
00057 
00058         void statistics();
00059 private:
00060         QMap<int, CodeMaps*> m_keymaps;
00061         MapInfo m_keyinfo;
00062         int m_modifiers;
00063         CodeMaps::Iterator m_it;
00064 
00065         bool m_capslock;
00066         bool m_isMapped;
00067 
00068         void init();
00069         void clear();
00070 };
00071 
00072 #endif /* _KEY_MAPPINGS_H_ */

Generated on Sat Nov 5 16:16:43 2005 for OPIE by  doxygen 1.4.2