[Scummvm-devel] RFC: Flexible keymapping via new EVENT_ (post 0.10) (Serhiy Batyuk)

Serhiy Batyuk sbatyuk at gmail.com
Sat Jul 14 11:44:28 CEST 2007


Here are the code snippets for the key mapping implementation. There is also
a place for virtual keyboard.

#include "backends/common/virtual-keyboard.h"
#include "backends/common/key-mapper.h"

OSystem_Common : public OSystem {

public:

  virtual bool pollMappedEvent(Common::Event &);

protected:

  virtual std::list<Common::KeyCode> getAvailableKeys() const = 0;

private:

  KeyMapper _keyMapper(getAvailableKeys());
  VirtualKeyboard _virtualKeyboard;

};

bool OSystem_Common::pollMappedEvent(Common::Event &event) {

  bool result = true;
  if (pollEvent(event)) { // calling virtual superclass function
    if (getFeatureState(kFeatureVirtualKeyboard) && (event.type ==
Common::EVENT_LBUTTONDOWN || event.type == Common::EVENT_LBUTTONUP)) { //
possible a virtual keyboard event
      _virtualKeyboard->resolve(event); // try to resolve a virtual keyboard
event
    }
    _keyMapper->resolve(event);
  } else {
    result = false;
  }
  return result;
}

==================================================================================================


in

  DefaultEventManager::pollEvent(Common::Event &event)

there will be

  result = _boss->pollMappedEvent(event);

instead of

  result = _boss->pollEvent(event);

-- 
Best regards,
Serhiy Batyuk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.scummvm.org/pipermail/scummvm-devel/attachments/20070714/fff0bc82/attachment.html>


More information about the Scummvm-devel mailing list