diff options
| author | Scott Moynes <smoynes@nexus.carleton.ca> | 2002-08-06 22:37:06 +0000 |
|---|---|---|
| committer | Scott Moynes <smoynes@nexus.carleton.ca> | 2002-08-06 22:37:06 +0000 |
| commit | 6d40002093a5d8e665d4f310ea028d22e93e88cb (patch) | |
| tree | 6a537e4ee4625df1b57a651357e913b8ff71a996 /util/epist/actions.cc | |
| parent | 00391787e32111fa5c9de606b5edf595846e7513 (diff) | |
Big fat merge for epist.
This adds a config parser, chaining, and a tonne of other stuff.
Still need to fix up build system for the lex and yacc stuff.
Diffstat (limited to 'util/epist/actions.cc')
| -rw-r--r-- | util/epist/actions.cc | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/util/epist/actions.cc b/util/epist/actions.cc index 35ddbb80..82e61ae3 100644 --- a/util/epist/actions.cc +++ b/util/epist/actions.cc @@ -23,13 +23,29 @@ #include "actions.hh" Action::Action(enum ActionType type, KeyCode keycode, unsigned int modifierMask, - int num) - : _type(type), _keycode(keycode), - _modifierMask(modifierMask), _numberParam(num) -{ } - -Action::Action(enum ActionType type, KeyCode keycode, unsigned int modifierMask, const std::string &str) - : _type(type), _keycode(keycode), - _modifierMask(modifierMask), _stringParam(str) -{ } + : _type(type), _keycode(keycode), _modifierMask(modifierMask) +{ + // These are the action types that take string arguments. This + // should probably be moved to a static member + ActionType str_types[] = { + execute, + nextWindowOfClass, + prevWindowOfClass, + nextWindowOfClassOnAllWorkspaces, + prevWindowOfClassOnAllWorkspaces, + noaction + }; + + for (int i = 0; str_types[i] != noaction; ++i) { + if (type == str_types[i]) { + _stringParam = str; + return; + } + } + + _numberParam = atoi( str.c_str() ); + + if (type == changeWorkspace) + _numberParam; +} |
