diff options
author | Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> | 2013-03-03 16:05:14 +0100 |
---|---|---|
committer | Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> | 2013-03-03 16:05:14 +0100 |
commit | 7964c3a67cf9659ea6d14fc1d04a889cd50e2153 (patch) | |
tree | 8d6cda7078fe3eea565b6abdffdba18b3529a653 /modmap.h | |
parent | d17d1996eb39b698681e74357de6abab0cd92cfa (diff) | |
download | vdr-plugin-inputdev-7964c3a67cf9659ea6d14fc1d04a889cd50e2153.tar.gz vdr-plugin-inputdev-7964c3a67cf9659ea6d14fc1d04a889cd50e2153.tar.bz2 |
implemented basic support for native (non-sms style) editing
Diffstat (limited to 'modmap.h')
-rw-r--r-- | modmap.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/modmap.h b/modmap.h new file mode 100644 index 0000000..75e1595 --- /dev/null +++ b/modmap.h @@ -0,0 +1,63 @@ +/* --*- c++ -*-- + * Copyright (C) 2013 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 and/or 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef HH_ENSC_VDR_INPUTDEV_MODMAP_HH +#define HH_ENSC_VDR_INPUTDEV_MODMAP_HH + +class ModifierMap { +public: + enum modifier { + modSHIFT, + modCONTROL, + modALT, + modMETA, + modNUMLOCK, + modCAPSLOCK, + modMODE, + + _modMAX, + }; + + ModifierMap(); + ~ModifierMap(); + + bool read_modmap(char const *fname); + bool translate(wchar_t &chr, unsigned int code, + unsigned long mask) const; + +private: + enum { + ktNORMAL, + ktSHIFT, + ktCONTROL, + ktMODE, + ktMODE_SHIFT, + ktUNUSED0, + ktUNUSED1, + ktUNUSED2, + + _ktMAX + }; + + typedef wchar_t *keytable_t; + + // same semantics like 'keycode' in xmodmap(1) + keytable_t keytables_[_ktMAX]; + + void set_default_tables(void); +}; + +#endif /* HH_ENSC_VDR_INPUTDEV_MODMAP_HH */ |