#include "frontends/KeySymbol.h"
-
-namespace lyx {
-
using std::make_pair;
using std::string;
-FuncRequest const &
-KeySequence::addkey(KeySymbolPtr key,
- key_modifier::state mod, key_modifier::state nmod)
+namespace lyx {
+
+FuncRequest const & KeySequence::addkey(KeySymbol const & key,
+ KeyModifier mod, KeyModifier nmod)
{
// adding a key to a deleted sequence
// starts a new sequence
return 1;
size_t i = 0;
- key_modifier::state mod = key_modifier::none;
- key_modifier::state nmod = key_modifier::none;
+ KeyModifier mod = NoModifier;
+ KeyModifier nmod = NoModifier;
while (i < s.length()) {
if (s[i] == ' ')
if (i + 1 < s.length() && s[i + 1] == '-') {
switch (s[i]) {
case 's': case 'S':
- mod |= key_modifier::shift;
+ mod |= ShiftModifier;
i += 2;
continue;
case 'c': case 'C':
- mod |= key_modifier::ctrl;
+ mod |= ControlModifier;
i += 2;
continue;
case 'm': case 'M':
- mod |= key_modifier::alt;
+ mod |= AltModifier;
i += 2;
continue;
default:
&& s[i + 2] == '-') {
switch (s[i + 1]) {
case 's': case 'S':
- nmod |= key_modifier::shift;
+ nmod |= ShiftModifier;
i += 3;
continue;
case 'c': case 'C':
- nmod |= key_modifier::ctrl;
+ nmod |= ControlModifier;
i += 3;
continue;
case 'm': case 'M':
- nmod |= key_modifier::alt;
+ nmod |= AltModifier;
i += 3;
continue;
default:
for (; j < s.length() && s[j] != ' '; ++j)
tbuf += s[j]; // (!!!check bounds :-)
- KeySymbolPtr key(createKeySymbol());
- key->init(tbuf);
+ KeySymbol key;
+ key.init(tbuf);
- if (!key->isOK())
+ if (!key.isOK())
return j;
i = j;
addkey(key, mod, nmod);
- mod = key_modifier::none;
+ mod = NoModifier;
}
}
size_t const length = sequence.size();
- for (size_t i = 0; i < length; ++i) {
- buf += sequence[i]->print(modifiers[i].first, forgui);
+ for (size_t i = 0; i != length; ++i) {
+ buf += sequence[i].print(modifiers[i].first, forgui);
// append a blank
- if (i + 1 < length)
+ if (i + 1 != length)
buf += ' ';
}
return buf;
docstring const KeySequence::printOptions(bool forgui) const
{
- docstring buf;
-
- buf += print(forgui);
+ docstring buf = print(forgui);
if (!curmap)
return buf;
curmap = stdmap;
}
+
void KeySequence::clear()
{
sequence.clear();