Exemplo n.º 1
0
void InputListener::onEvent(const sf::Event& event)
{
	switch (event.type)
	{
		/* Window */
		case sf::Event::LostFocus:               onFocusLost();                                   break;
		case sf::Event::GainedFocus:             onFocusGained();                                 break;
		case sf::Event::Closed:                  onWindowClosed();                                break;
		case sf::Event::Resized:                 onWindowResized(event.size);                     break;
			
		/* Keyboard */
		case sf::Event::TextEntered:             onTextEntered(event.text);                       break;
		case sf::Event::KeyPressed:              onKeyPressed(event.key);                         break;
		case sf::Event::KeyReleased:             onKeyReleased(event.key);                        break;
			
		/* Mouse */
		case sf::Event::MouseEntered:            onMouseEntered();                                break;
		case sf::Event::MouseLeft:               onMouseLeft();                                   break;
		case sf::Event::MouseMoved:              onMouseMoved(event.mouseMove);                   break;
		case sf::Event::MouseWheelMoved:         onMouseWheelMoved(event.mouseWheel);             break;
		case sf::Event::MouseButtonPressed:      onMouseButtonPressed(event.mouseButton);         break;
		case sf::Event::MouseButtonReleased:     onMouseButtonReleased(event.mouseButton);        break;
			
		/* Joystick */
		case sf::Event::JoystickConnected:       onJoystickConnected(event.joystickConnect);      break;
		case sf::Event::JoystickDisconnected:    onJoystickDisconnected(event.joystickConnect);   break;
		case sf::Event::JoystickButtonPressed:   onJoystickButtonPressed(event.joystickButton);   break;
		case sf::Event::JoystickButtonReleased:  onJoystickButtonReleased(event.joystickButton);  break;
		case sf::Event::JoystickMoved:           onJoystickMoved(event.joystickMove);             break;
			
		default:
			Logger::log("Warning", "Unknow event type: %d", event.type);
			break;
	}
}
Exemplo n.º 2
0
bool Button::processEvent(const sf::Event& event,const sf::Vector2f& parent_pos) {
    bool res = false;
    if(event.type == sf::Event::MouseButtonReleased) {
        const sf::Vector2f pos = parent_pos + _position;
        const sf::Vector2f size = getSize();
        sf::FloatRect rect(pos.x, pos.y, size.x, size.y);
        if(rect.contains(event.mouseButton.x,event.mouseButton.y)) {
            onClick(event,*this);
            res = true;
        }
    } else if (event.type == sf::Event::MouseMoved) {
        const sf::Vector2f pos = parent_pos + _position;
        const sf::Vector2f size = getSize();
        sf::FloatRect rect(pos.x, pos.y, size.x, size.y);
        int old_status = _status;
        _status = Status::None;
        if(rect.contains(event.mouseMove.x,event.mouseMove.y))
            _status=Status::Hover;
        if((old_status & Status::Hover) and not (_status & Status::Hover))
            onMouseLeft();
        else if(not (old_status & Status::Hover) and (_status & Status::Hover))
            onMouseEntered();
    }
    return res;
}
Exemplo n.º 3
0
void DGLPixelRectangleView::onMouseOver(const QPoint& barePos) {
    QPoint currentPos = m_Scene->translate(barePos);
    if (m_Scene->inside(currentPos)) {

        std::pair<QColor, std::vector<AnyValue> > currColor =
                m_Scene->getColor(currentPos);

        std::ostringstream tmp;
        tmp << "(" << currentPos.x() << ", " << currentPos.y() << ") = [";
        for (size_t i = 0; i < currColor.second.size(); i++) {
            currColor.second[i].writeToSS(tmp, GLParamTypeMetadata());
            if (i != currColor.second.size() - 1) {
                tmp << ", ";
            }
        }
        tmp << "]";

        m_Ui->labelColorText->setText(QString::fromStdString(tmp.str()));
        QPalette pal;
        pal.setColor(m_Ui->widgetColor->backgroundRole(),
                     QColor(currColor.first));
        m_Ui->widgetColor->setPalette(pal);

    } else {
        onMouseLeft();
    }
}
Exemplo n.º 4
0
void SDLEventHandler::onWindowEvent(const SDL_WindowEvent& e)
{
    /*
     *SDL provides two "resize" events.
     * Warp Drive only provides treatment for the "resize request"
     * type, for the moment. Should it prove useful, this will be ammended
     */
    if (e.windowID != SDL_GetWindowID(DisplayManager::instance()->getScreen()))
    {
        return;
    }

    switch (e.event)
    {
        case SDL_WINDOWEVENT_SHOWN:
            onWindowShown(e);
            break;
        case SDL_WINDOWEVENT_HIDDEN:
            onWindowHidden(e);
            break;
        case SDL_WINDOWEVENT_EXPOSED:
            onWindowExposed(e);
            break;
        case SDL_WINDOWEVENT_MOVED:
            onWindowMoved(e);
            break;
        case SDL_WINDOWEVENT_SIZE_CHANGED:
            onWindowResized(e);
            break;
        case SDL_WINDOWEVENT_MINIMIZED:
            onWindowMinimized(e);
            break;
        case SDL_WINDOWEVENT_MAXIMIZED:
            onWindowMaximized(e);
            break;
        case SDL_WINDOWEVENT_RESTORED:
            onWindowRestored(e);
            break;
        case SDL_WINDOWEVENT_ENTER:
            onMouseEntered(e);
            break;
        case SDL_WINDOWEVENT_LEAVE:
            onMouseLeft(e);
            break;
        case SDL_WINDOWEVENT_FOCUS_GAINED:
            onKeyboardFocus(e);
            break;
        case SDL_WINDOWEVENT_FOCUS_LOST:
            onKeyboardFocusLost(e);
            break;
        case SDL_WINDOWEVENT_CLOSE:
            onWindowCloseRequest(e);
            break;
    default:
        // Unexpected event type!
        assert(0);
        break;
    }
}
Exemplo n.º 5
0
DGLPixelRectangleView::DGLPixelRectangleView(QWidget* _parent)
        : m_GraphicsView(_parent), m_Scene(NULL) {
    m_Ui = new Ui::DGLPixelRectangleView();
    m_Ui->setupUi(this);
    m_Ui->verticalLayout->insertWidget(0, &m_GraphicsView);
    m_Ui->widgetColor->setStyleSheet(
            "QWidget{background-color: palette(background);}");

    QPalette pal;
    pal.setColor(m_Ui->widgetColor->backgroundRole(), QColor(0, 0, 0, 0));
    m_Ui->widgetColor->setPalette(pal);

    m_Ui->widgetColor->setAutoFillBackground(true);

    // process Mouse events ourselves
    CONNASSERT(&m_GraphicsView, SIGNAL(onMouseOver(QPoint)), this,
               SLOT(onMouseOver(QPoint)));
    CONNASSERT(&m_GraphicsView, SIGNAL(onMouseLeft()), this,
               SLOT(onMouseLeft()));
}
Exemplo n.º 6
0
void DGLPixRectQGraphicsView::leaveEvent(QEvent* /*_event*/) {
    emit onMouseLeft();
}