diff options
Diffstat (limited to 'src/FbTk/KeyUtil.cc')
-rw-r--r-- | src/FbTk/KeyUtil.cc | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/FbTk/KeyUtil.cc b/src/FbTk/KeyUtil.cc index a24abad..f492fd2 100644 --- a/src/FbTk/KeyUtil.cc +++ b/src/FbTk/KeyUtil.cc | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | // $Id: KeyUtil.cc,v 1.7 2004/02/10 18:55:12 fluxgen Exp $ | 22 | // $Id: KeyUtil.cc,v 1.8 2004/09/01 00:08:14 akir Exp $ |
23 | 23 | ||
24 | #include "KeyUtil.hh" | 24 | #include "KeyUtil.hh" |
25 | #include "App.hh" | 25 | #include "App.hh" |
@@ -95,7 +95,6 @@ void KeyUtil::loadModmap() { | |||
95 | } | 95 | } |
96 | 96 | ||
97 | 97 | ||
98 | |||
99 | /** | 98 | /** |
100 | Grabs a key with the modifier | 99 | Grabs a key with the modifier |
101 | and with numlock,capslock and scrollock | 100 | and with numlock,capslock and scrollock |
@@ -156,6 +155,7 @@ void KeyUtil::grabKey(unsigned int key, unsigned int mod) { | |||
156 | /** | 155 | /** |
157 | @return keycode of keystr on success else 0 | 156 | @return keycode of keystr on success else 0 |
158 | */ | 157 | */ |
158 | |||
159 | unsigned int KeyUtil::getKey(const char *keystr) { | 159 | unsigned int KeyUtil::getKey(const char *keystr) { |
160 | if (!keystr) | 160 | if (!keystr) |
161 | return 0; | 161 | return 0; |
@@ -163,19 +163,22 @@ unsigned int KeyUtil::getKey(const char *keystr) { | |||
163 | XStringToKeysym(keystr)); | 163 | XStringToKeysym(keystr)); |
164 | } | 164 | } |
165 | 165 | ||
166 | |||
167 | struct t_modlist{ | ||
168 | char *str; | ||
169 | unsigned int mask; | ||
170 | bool operator == (const char *modstr) const { | ||
171 | return (strcasecmp(str, modstr) == 0 && mask !=0); | ||
172 | } | ||
173 | }; | ||
174 | |||
166 | /** | 175 | /** |
167 | @return the modifier for the modstr else zero on failure. | 176 | @return the modifier for the modstr else zero on failure. |
168 | */ | 177 | */ |
169 | unsigned int KeyUtil::getModifier(const char *modstr) { | 178 | unsigned int KeyUtil::getModifier(const char *modstr) { |
170 | if (!modstr) | 179 | if (!modstr) |
171 | return 0; | 180 | return 0; |
172 | struct t_modlist{ | 181 | const static struct t_modlist modlist[] = { |
173 | char *str; | ||
174 | unsigned int mask; | ||
175 | bool operator == (const char *modstr) const { | ||
176 | return (strcasecmp(str, modstr) == 0 && mask !=0); | ||
177 | } | ||
178 | } modlist[] = { | ||
179 | {"SHIFT", ShiftMask}, | 182 | {"SHIFT", ShiftMask}, |
180 | {"CONTROL", ControlMask}, | 183 | {"CONTROL", ControlMask}, |
181 | {"MOD1", Mod1Mask}, | 184 | {"MOD1", Mod1Mask}, |