/*!
        \fn wcurses::Application::ProcessMouseEvent( MouseEvent* M )
     */
    bool Application::ProcessMouseEvent ( MouseEvent* M )
    {
        Debug << M->ToString().std();
        _curTarget=QueryTarget ( M );
        if(!_curTarget){
            Dbg << "error: could not get target widget!!"; DEND;
            return false;
        }

        if ( M->What() == event::MouseButtonClick ) return MouseButtonClick ( M );
        if ( M->What() == event::MouseButtonPress ) return MouseButtonPress ( M );
        if ( M->What() == event::MouseButtonDblClick ) return MouseButtonDblClick ( M );
        if ( M->What() == event::MouseButtonRelease ) return MouseButtonRelease ( M );
        //if ( M->What() == event::MouseButtonMove ) return MouseButton( M );
        Dbg << "Error: unknow  mouse event!!" << M->ToString().std();
        DEND;

        return false;
    }
示例#2
0
void TXT_WindowKeyPress(txt_window_t *window, int c)
{
    int i;

    // Is this a mouse button ?
    
    if (c >= TXT_MOUSE_BASE && c < TXT_MOUSE_BASE + TXT_MAX_MOUSE_BUTTONS)
    {
        MouseButtonPress(window, c);
        return;
    }

    // Try the window key spy

    if (window->key_listener != NULL)
    {
        // key listener can eat keys

        if (window->key_listener(window, c, window->key_listener_data))
        {
            return;
        }
    }

    // Send to the currently selected widget 

    if (TXT_WidgetKeyPress(window, c))
    {
        return;
    }

    // Try all of the action buttons

    for (i=0; i<3; ++i)
    {
        if (window->actions[i] != NULL
         && TXT_WidgetKeyPress(window->actions[i], c))
        {
            return;
        }
    }
}