* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
* \author Jean-Marc Lasgouttes
* \author John Levon
*
#include <config.h>
#include "KeySequence.h"
+#include "KeyMap.h"
#include "support/gettext.h"
-#include "KeyMap.h"
-#include "lfuns.h"
#include "frontends/KeySymbol.h"
modifiers.push_back(make_pair(mod, nmod));
sequence.push_back(key);
- if (curmap) {
+ if (curmap)
return curmap->lookup(key, mod, this);
- }
- static FuncRequest unknown(LFUN_UNKNOWN_ACTION);
- return unknown;
+ return FuncRequest::unknown;
}
i += 2;
continue;
case 'm': case 'M':
+#if defined(USE_MACOSX_PACKAGING) || defined(USE_META_KEYBINDING)
+ mod |= MetaModifier;
+ i += 2;
+ continue;
+#endif
+ case 'a': case 'A':
mod |= AltModifier;
i += 2;
continue;
i += 3;
continue;
case 'm': case 'M':
+#if defined(USE_MACOSX_PACKAGING) || defined(USE_META_KEYBINDING)
+ nmod |= MetaModifier;
+ i += 3;
+ continue;
+#endif
+ case 'a': case 'A':
nmod |= AltModifier;
i += 3;
continue;
}
}
- // empty sequence?
- if (sequence.size() == 0)
+ if (sequence.empty())
return 0;
// everything is fine
}
-docstring const KeySequence::print(outputFormat format) const
+docstring const KeySequence::print(outputFormat format, bool const untranslated) const
{
docstring buf;
for (size_t i = 0; i != length; ++i) {
switch (format) {
case Portable:
- buf += sequence[i].print(modifiers[i].first, false);
+ buf += sequence[i].print(modifiers[i].first, false, untranslated);
break;
case ForGui:
- buf += sequence[i].print(modifiers[i].first, true);
+ buf += sequence[i].print(modifiers[i].first, true, untranslated);
break;
case BindFile:
KeyModifier mod = modifiers[i].first;
if (mod & ControlModifier)
buf += "C-";
if (mod & AltModifier)
+#if defined(USE_MACOSX_PACKAGING) || defined(USE_META_KEYBINDING)
+ buf += "A-";
+ if (mod & MetaModifier)
+#endif
buf += "M-";
if (mod & ShiftModifier)
buf += "S-";
-
+
buf += from_utf8(sequence[i].getSymbolName());
break;
}
}
-void KeySequence::mark_deleted()
-{
- deleted_ = true;
-}
-
-
void KeySequence::reset()
{
- mark_deleted();
+ deleted_ = true;
curmap = stdmap;
}
}
+void KeySequence::removeKey()
+{
+ if (deleted_)
+ return;
+ sequence.pop_back();
+ modifiers.pop_back();
+ if (sequence.empty())
+ deleted_ = true;
+}
+
+
} // namespace lyx