Beispiel #1
0
void XxWindow::HandleEvent (const XEvent &WinEvent)
{
    switch (WinEvent.type) {
    case ClientMessage:
        if (WinEvent.xclient.format == 32) {
            const long *l = WinEvent.xclient.data.l;
            if (*l == (long)GetWmDeleteWindow ()) OnDelete ();
        };
        break;
    case Expose:
        OnExpose
            ( WinEvent.xexpose.x
            , WinEvent.xexpose.y
            , WinEvent.xexpose.width
            , WinEvent.xexpose.height
            );
        break;
    case ButtonPress:
        OnButtonPress
            ( WinEvent.xbutton.button
            , WinEvent.xbutton.x
            , WinEvent.xbutton.y
            );
        break;
    case ButtonRelease:
        OnButtonRelease
            ( WinEvent.xbutton.button
            , WinEvent.xbutton.x
            , WinEvent.xbutton.y
            );
        break;
    case EnterNotify:
        OnEnterWindow
            ( WinEvent.xcrossing.x
            , WinEvent.xcrossing.y
            );
        break;
    case LeaveNotify:
        OnLeaveWindow
            ( WinEvent.xcrossing.x
            , WinEvent.xcrossing.y
            );
        break;
    case ResizeRequest:
        OnResize
            ( WinEvent.xresizerequest.width
            , WinEvent.xresizerequest.height
            );
        break;
    default:
        break;
    };
};
void CHardwareLayer::timerEvent(QTimerEvent *ev)
{
    if(ev->timerId()==timerKeyJoy)
    {
        struct input_event ev;
        //-F- Button check
        pollfd pollStruct = {fdKey,POLLIN,0};

        while(poll(&pollStruct,1,0))
        {
            if(read (fdKey, &ev, sizeof(ev))==sizeof(ev))
            {
                if(ev.value)
                {
                    OnButtonPress();
                    isButtonDown=true;
                }
                else
                {
                    OnButtonRelease();
                    isButtonDown=false;
                }
            }
        }

        //-F- Joystick check
        pollStruct.fd=fdJoy;

        while(poll(&pollStruct,1,0))
        {
            struct input_event ev;
            if(read (fdJoy, &ev, sizeof(ev))==sizeof(ev))
            {
                emit OnRotaryMoved(ev.value,isButtonDown);
            }
        }
    }
}