#include "KeySequence.h"
-#include "gettext.h"
+#include "support/gettext.h"
#include "KeyMap.h"
#include "lfuns.h"
#include "frontends/KeySymbol.h"
-using std::make_pair;
-using std::string;
-
+using namespace std;
namespace lyx {
FuncRequest const & KeySequence::addkey(KeySymbol const & key,
- key_modifier::state mod, key_modifier::state nmod)
+ 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:
i = j;
addkey(key, mod, nmod);
- mod = key_modifier::none;
+ mod = NoModifier;
}
}
}
-docstring const KeySequence::print(bool forgui) const
+docstring const KeySequence::print(outputFormat format) const
{
docstring buf;
size_t const length = sequence.size();
for (size_t i = 0; i != length; ++i) {
- buf += sequence[i].print(modifiers[i].first, forgui);
+ switch (format) {
+ case Portable:
+ buf += sequence[i].print(modifiers[i].first, false);
+ break;
+ case ForGui:
+ buf += sequence[i].print(modifiers[i].first, true);
+ break;
+ case BindFile:
+ KeyModifier mod = modifiers[i].first;
+ if (mod & ControlModifier)
+ buf += "C-";
+ if (mod & AltModifier)
+ buf += "M-";
+ if (mod & ShiftModifier)
+ buf += "S-";
+
+ buf += from_utf8(sequence[i].getSymbolName());
+ break;
+ }
// append a blank
if (i + 1 != length)
buf += ' ';
docstring const KeySequence::printOptions(bool forgui) const
{
- docstring buf;
-
- buf += print(forgui);
+ docstring buf = print(forgui ? ForGui : Portable);
if (!curmap)
return buf;
buf += _(" options: ");
- buf += curmap->print(forgui);
+ buf += curmap->print(forgui ? ForGui : Portable);
return buf;
}
curmap = stdmap;
}
+
void KeySequence::clear()
{
sequence.clear();