Exemplo n.º 1
0
	KeyEvent FifechanManager::translateKeyEvent(const fcn::KeyEvent& fcnevt) {
		KeyEvent keyevt;
		if(fcnevt.getType() == fcn::KeyEvent::Pressed)
			keyevt.setType(KeyEvent::PRESSED);
		else if(fcnevt.getType() == fcn::KeyEvent::Released)
			keyevt.setType(KeyEvent::RELEASED);
		else {
			FL_WARN(_log, LMsg("FifechanManager::translateKeyEvent() - ") << "Unknown event type: " << fcnevt.getType());
			keyevt.setType(KeyEvent::UNKNOWN);
		}
		keyevt.setShiftPressed(fcnevt.isShiftPressed());
		keyevt.setControlPressed(fcnevt.isControlPressed());
		keyevt.setAltPressed(fcnevt.isAltPressed());
		keyevt.setMetaPressed(fcnevt.isMetaPressed());
		keyevt.setNumericPad(fcnevt.isNumericPad());

		// Convert from fifechan keyval to FIFE keyval
		int32_t keyval = fcnevt.getKey().getValue();
		keyval = convertFifechanKeyToFifeKey(keyval);

		keyevt.setKey(Key(static_cast<Key::KeyType>(keyval), keyval));

		return keyevt;
	}