/**
* \file kbsequence.C
- * Copyright 1995-2002 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * \author John Levon <moz@compsoc.man.ac.uk>
+ * \author Lars Gullik Bjønnes
+ * \author Jean-Marc Lasgouttes
+ * \author John Levon
+ *
+ * Full author contact details are available in file CREDITS.
*/
#include <config.h>
-#include "gettext.h"
+#include "kbsequence.h"
-#ifdef __GNUG__
-#pragma implementation
-#endif
+#include "gettext.h"
+#include "kbmap.h"
+#include "lfuns.h"
-#include "frontends/mouse_state.h"
+#include "frontends/LyXKeySym.h"
#include "frontends/LyXKeySymFactory.h"
-#include "kbsequence.h"
-#include "kbmap.h"
-#include "commandtags.h"
-#include "debug.h"
using std::make_pair;
+using std::string;
-int kb_sequence::addkey(LyXKeySymPtr key,
- key_modifier::state mod, key_modifier::state nmod)
+FuncRequest const &
+kb_sequence::addkey(LyXKeySymPtr key,
+ key_modifier::state mod, key_modifier::state nmod)
{
// adding a key to a deleted sequence
// starts a new sequence
return curmap->lookup(key, mod, this);
}
- return LFUN_UNKNOWN_ACTION;
+ static FuncRequest unknown(LFUN_UNKNOWN_ACTION);
+ return unknown;
}
string::size_type i = 0;
key_modifier::state mod = key_modifier::none;
key_modifier::state nmod = key_modifier::none;
-
+
while (i < s.length()) {
if (s[i] == ' ')
++i;
LyXKeySymPtr key(LyXKeySymFactory::create());
key->init(tbuf);
-
+
if ( ! key->isOK() ) {
return j;
}
// return buf;
KeySequence::size_type i, length = sequence.size();
-
+
for (i = 0; i < length; ++i) {
- buf += kb_keymap::printKeysym(sequence[i], modifiers[i].first);
+ buf += sequence[i]->print(modifiers[i].first);
// append a blank
if (i + 1 < length) {
}
-LyXKeySymPtr kb_sequence::getsym() const
-{
- if (sequence.size() == 0)
- return LyXKeySymPtr(LyXKeySymFactory::create());
- return sequence.back();
-}
-
-
-char kb_sequence::getLastKeyEncoded() const
-{
- return getsym()->getISOEncoded();
-}
-
-
void kb_sequence::reset()
{
mark_deleted();