summaryrefslogtreecommitdiffstats
path: root/client/hot_keys.h
diff options
context:
space:
mode:
authorYaniv Kamay <ykamay@redhat.com>2009-09-19 21:25:46 +0300
committerYaniv Kamay <ykamay@redhat.com>2009-10-14 15:06:41 +0200
commitc1b79eb035fa158fb2ac3bc8e559809611070016 (patch)
tree3348dd749a700dedf87c9b16fe8be77c62928df8 /client/hot_keys.h
downloadspice-c1b79eb035fa158fb2ac3bc8e559809611070016.tar.gz
spice-c1b79eb035fa158fb2ac3bc8e559809611070016.tar.xz
spice-c1b79eb035fa158fb2ac3bc8e559809611070016.zip
fresh start
Diffstat (limited to 'client/hot_keys.h')
-rw-r--r--client/hot_keys.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/client/hot_keys.h b/client/hot_keys.h
new file mode 100644
index 00000000..15016f13
--- /dev/null
+++ b/client/hot_keys.h
@@ -0,0 +1,49 @@
+/*
+ Copyright (C) 2009 Red Hat, Inc.
+
+ 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; either version 2 of
+ the License, or (at your option) any later version.
+
+ 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 _H_HOT_KEYS
+#define _H_HOT_KEYS
+
+#include "common.h"
+#include "red_key.h"
+
+typedef std::map<std::string, int> CommandsMap;
+
+struct HotkeyKey {
+ RedKey main;
+ RedKey alter;
+};
+
+typedef std::vector<HotkeyKey> HotkeySet;
+typedef std::map<int, HotkeySet> HotKeys;
+
+class HotKeysParser {
+public:
+ HotKeysParser(const std::string& hotkeys, const CommandsMap& commands_map);
+ const HotKeys& get() { return _hot_keys;}
+
+private:
+ void add_hotkey(const std::string& hotkey, const CommandsMap& commands_map);
+ void parse_keys(int command_id, const std::string& hotkey);
+ void add_key(HotkeySet& keys, const char* key);
+
+private:
+ HotKeys _hot_keys;
+};
+
+#endif
+