Exemplo n.º 1
0
void Keyboard::processEvent( const InputEvent& event )
{
    if( event.deviceType != InputDeviceType::Keyboard )
        return;

    const KeyEvent& keyEvent = static_cast<const KeyEvent&>(event);
    
    switch(keyEvent.eventType)
    {
    case KeyboardEventType::KeyPressed:
    {
        keyPressed(keyEvent);
        break;
    }
    case KeyboardEventType::KeyReleased:
    {
        keyReleased(keyEvent);
        break;
    }
    case KeyboardEventType::KeyText:
    {
        onKeyText(keyEvent);
        break;
    } }
}
Exemplo n.º 2
0
bool UIWidget::propagateOnKeyText(const std::string& keyText)
{
    // do a backup of children list, because it may change while looping it
    UIWidgetList children;
    for(const UIWidgetPtr& child : m_children) {
        // events on hidden or disabled widgets are discarded
        if(!child->isExplicitlyEnabled() || !child->isExplicitlyVisible())
            continue;

        // key events go only to containers or focused child
        if(child->isFocused())
            children.push_back(child);
    }

    for(const UIWidgetPtr& child : children) {
        if(child->propagateOnKeyText(keyText))
            return true;
    }

    return onKeyText(keyText);
}