Example #1
0
    bool onKeyboardEvent(const KeyboardEvent& event)
    {
        switch (event.state())
        {
        case KeyboardEvent::PRESSED:
            switch (event.key())
            {
            case KeyboardEvent::LEFT:
                m_left = 1;
                return true;

            case KeyboardEvent::RIGHT:
                m_right = 1;
                return true;

            default:
                break;
            }
            break;

        case KeyboardEvent::RELEASED:
            switch (event.key())
            {
            case KeyboardEvent::LEFT:
                m_left = 0;
                return true;

            case KeyboardEvent::RIGHT:
                m_right = 0;
                return true;

            default:
                break;
            }
            break;
        }

        return false;
    }
void MediaDocument::defaultEventHandler(Event* event)
{
    Node* targetNode = event->target()->toNode();
    if (!targetNode)
        return;

    if (event->type() == EventTypeNames::keydown && event->isKeyboardEvent()) {
        HTMLVideoElement* video = Traversal<HTMLVideoElement>::firstWithin(*targetNode);
        if (!video)
            return;

        KeyboardEvent* keyboardEvent = toKeyboardEvent(event);
        if (keyboardEvent->key() == " " || keyboardEvent->keyCode() == VKEY_MEDIA_PLAY_PAUSE) {
            // space or media key (play/pause)
            video->togglePlayState();
            event->setDefaultHandled();
        }
    }
}
const void Editor::keyboardListener(KeyboardEvent event){
	cout << (event.pressed() ? "press " : "release ") << event.key() << " " << event.first() << endl;
}
const void AnimationTester::keyboardListener(KeyboardEvent& event){
	if (event.isCancelled()){
		return;
	}
	if (event.pressed()){
		switch (event.key()){
		case Keyboard::Escape:
			window->close();
			break;
		case Keyboard::S:
			if (manager->inputManager->isPressed(Keyboard::LControl)){
				save();
			}
			break;
		case Keyboard::F5:
			load();
			break;
		case Keyboard::P:
			if (d != NULL && event.first()){
				if (repeat){
					if (d->nextAnimation == "idle"){
						d->nextAnimation = "animation";
					}
					else{
						d->nextAnimation = "idle";
					}
					logger::info("State: " + d->nextAnimation);
				}
				else{
					d->currentAnimation = "animation";
					d->startTime = world->time();
				}
			}
			break;
		case Keyboard::R:
			if (!(repeat = !repeat)){
				d->nextAnimation = "idle";
			}
			logger::info("Repeating: " + string(repeat ? "yes" : "no"));
			break;
		case Keyboard::Add:
			if (a != NULL){
				if (manager->inputManager->isPressed(sf::Keyboard::Key::LShift)){
					a->timing += sf::milliseconds(10);
				}
				else{
					a->timing += sf::milliseconds(1);
				}
				if (a->timing < milliseconds(1)){
					a->timing = milliseconds(1);
				}
				logger::info("Timing: " + to_string(a->timing.asMilliseconds()));
			}
			break;
		case Keyboard::Subtract:
			if (a != NULL){
				if (manager->inputManager->isPressed(sf::Keyboard::Key::LShift)){
					a->timing -= sf::milliseconds(10);
				}
				else{
					a->timing -= sf::milliseconds(1);
				}
				if (a->timing < milliseconds(1)){
					a->timing = milliseconds(1);
				}
				logger::info("Timing: " + to_string(a->timing.asMilliseconds()));
			}
			break;
		}
	}
}