Example #1
0
void wxTestableFrame::OnEvent(wxEvent& evt)
{
    m_count[evt.GetEventType()]++;

    if(! evt.IsCommandEvent() )
        evt.Skip();
}
Example #2
0
bool wxAuiMDIParentFrame::ProcessEvent(wxEvent& event)
{
    // stops the same event being processed repeatedly
    if (m_pLastEvt == &event)
        return false;
    m_pLastEvt = &event;

    // let the active child (if any) process the event first.
    bool res = false;
    if (m_pActiveChild &&
            event.IsCommandEvent() &&
            event.GetEventObject() != m_pClientWindow &&
            !(event.GetEventType() == wxEVT_ACTIVATE ||
              event.GetEventType() == wxEVT_SET_FOCUS ||
              event.GetEventType() == wxEVT_KILL_FOCUS ||
              event.GetEventType() == wxEVT_CHILD_FOCUS ||
              event.GetEventType() == wxEVT_COMMAND_SET_FOCUS ||
              event.GetEventType() == wxEVT_COMMAND_KILL_FOCUS )
       )
    {
        res = m_pActiveChild->GetEventHandler()->ProcessEvent(event);
    }

    if (!res)
    {
        // if the event was not handled this frame will handle it,
        // which is why we need the protection code at the beginning
        // of this method
        res = wxEvtHandler::ProcessEvent(event);
    }

    m_pLastEvt = NULL;

    return res;
}
        virtual bool ProcessEvent(wxEvent& event)
        {
            CPPUNIT_ASSERT_MESSAGE
            (
                "unexpected command event from SetSelection",
                !event.IsCommandEvent()
            );

            return wxEvtHandler::ProcessEvent(event);
        }
Example #4
0
bool wxRibbonPanel::ShouldSendEventToDummy(wxEvent& evt)
{
    // For an expanded panel, filter events between being sent up to the
    // floating top level window or to the dummy panel sitting in the ribbon
    // bar.

    // Child focus events should not be redirected, as the child would not be a
    // child of the window the event is redirected to. All other command events
    // seem to be suitable for redirecting.
    return evt.IsCommandEvent() && evt.GetEventType() != wxEVT_CHILD_FOCUS;
}
Example #5
0
// Extend event processing to call OnCommand
bool wxPropertyFormView::ProcessEvent(wxEvent& event)
{
    if (wxEvtHandler::ProcessEvent(event))
        return true;
    else if (event.IsCommandEvent() && !event.IsKindOf(CLASSINFO(wxUpdateUIEvent)) && event.GetEventObject())
    {
        OnCommand(* ((wxWindow*) event.GetEventObject()), (wxCommandEvent&) event);
        return true;
    }
    else
        return false;
}
Example #6
0
// Prevent recursive entry of CMainDocument::RequestRPC()
int CBOINCGUIApp::FilterEvent(wxEvent &event) {
    int theEventType;
    wxDialog* theRPCWaitDialog;
    wxObject* theObject;

    if (!m_pDocument) return -1;

    theEventType = event.GetEventType();

    if (m_pDocument->WaitingForRPC()) {
        // If in RPC Please Wait dialog, reject all command 
        // and timer events except: 
        //  - RPC Finished
        //  - those for that dialog or its children
        //  - Open Manager menu item from system tray icon

        if ((theEventType == wxEVT_COMMAND_MENU_SELECTED) && (event.GetId() == wxID_OPEN)) {
            return -1;        
        }

        theRPCWaitDialog = m_pDocument->GetRPCWaitDialog();
        theObject = event.GetEventObject();
        while (theObject) {
            if (!theObject->IsKindOf(CLASSINFO(wxWindow))) break;
            if (theObject == theRPCWaitDialog) return -1;
            theObject = ((wxWindow*)theObject)->GetParent();
        }
        // Continue with rest of filtering below
    } else {
        // Do limited filtering if shutting down to allow RPC 
        // completion events but not events which start new RPCs
        if (!m_bFilterEvents) return -1;
    }

    // Allow all except Command, Timer and Mouse Moved events
    if (event.IsCommandEvent()) {
        return false;
    }
    
    if (theEventType == wxEVT_TIMER) {
        return false;
    }
    
#ifdef __WXMSW__
    if (theEventType == wxEVT_TASKBAR_MOVE) {
        return false;
    }
#endif
   
    return -1;
}
Example #7
0
// Forward command events to the current rich text control, if any
bool IceNoteFrame::ProcessEvent(wxEvent& event)
{
    if (event.IsCommandEvent() && !event.IsKindOf(CLASSINFO(wxChildFocusEvent)))
    {
        // Problem: we can get infinite recursion because the events
        // climb back up to this frame, and repeat.
        // Assume that command events don't cause another command event
        // to be called, so we can rely on inCommand not being overwritten

        static int s_eventType = 0;
        static wxWindowID s_id = 0;

        if (s_id != event.GetId() && s_eventType != event.GetEventType())
        {
            s_eventType = event.GetEventType();
            s_id = event.GetId();

            wxWindow* focusWin = wxFindFocusDescendant(this);
            if (focusWin && focusWin->GetEventHandler()->ProcessEvent(event))
            {
                //s_command = NULL;
                s_eventType = 0;
                s_id = 0;
                return true;
            }

            s_eventType = 0;
            s_id = 0;
        }
        else
        {
            return false;
        }
    }

    return wxFrame::ProcessEvent(event);
}
Example #8
0
int PwsafeApp::FilterEvent(wxEvent& evt) {
    const wxEventType et = evt.GetEventType();

    // Clear idle flag for lock-on-idle timer
    // We need a whitelist rather than a blacklist because
    // undocumented events are passed through here as well...
    if ((et == wxEVT_COMMAND_BUTTON_CLICKED) ||
            (et == wxEVT_COMMAND_CHECKBOX_CLICKED) ||
            (et == wxEVT_COMMAND_CHOICE_SELECTED) ||
            (et == wxEVT_COMMAND_LISTBOX_SELECTED) ||
            (et == wxEVT_COMMAND_LISTBOX_DOUBLECLICKED) ||
            (et == wxEVT_COMMAND_TEXT_UPDATED) ||
            (et == wxEVT_COMMAND_TEXT_ENTER) ||
            (et == wxEVT_COMMAND_MENU_SELECTED) ||
            (et == wxEVT_COMMAND_SLIDER_UPDATED) ||
            (et == wxEVT_COMMAND_RADIOBOX_SELECTED) ||
            (et == wxEVT_COMMAND_RADIOBUTTON_SELECTED) ||
            (et == wxEVT_COMMAND_SCROLLBAR_UPDATED) ||
            (et == wxEVT_COMMAND_VLBOX_SELECTED) ||
            (et == wxEVT_COMMAND_COMBOBOX_SELECTED) ||
            (et == wxEVT_COMMAND_TOOL_RCLICKED) ||
            (et == wxEVT_COMMAND_TOOL_ENTER) ||
            (et == wxEVT_COMMAND_SPINCTRL_UPDATED) ||
            (et == wxEVT_LEFT_DOWN) ||
            (et == wxEVT_LEFT_UP) ||
            (et == wxEVT_MIDDLE_DOWN) ||
            (et == wxEVT_MIDDLE_UP) ||
            (et == wxEVT_RIGHT_DOWN) ||
            (et == wxEVT_RIGHT_UP) ||
            (et == wxEVT_MOTION) ||
            (et == wxEVT_ENTER_WINDOW) ||
            (et == wxEVT_LEAVE_WINDOW) ||
            (et == wxEVT_LEFT_DCLICK) ||
            (et == wxEVT_MIDDLE_DCLICK) ||
            (et == wxEVT_RIGHT_DCLICK) ||
            (et == wxEVT_SET_FOCUS) ||
            (et == wxEVT_MOUSEWHEEL) ||
            (et == wxEVT_NAVIGATION_KEY) ||
            (et == wxEVT_KEY_DOWN) ||
            (et == wxEVT_KEY_UP) ||
            (et == wxEVT_SCROLL_TOP) ||
            (et == wxEVT_SCROLL_BOTTOM) ||
            (et == wxEVT_SCROLL_LINEUP) ||
            (et == wxEVT_SCROLL_LINEDOWN) ||
            (et == wxEVT_SCROLL_PAGEUP) ||
            (et == wxEVT_SCROLL_PAGEDOWN) ||
            (et == wxEVT_SCROLL_THUMBTRACK) ||
            (et == wxEVT_SCROLL_THUMBRELEASE) ||
            (et == wxEVT_SCROLL_CHANGED) ||
            (et == wxEVT_SIZE) ||
            (et == wxEVT_MOVE) ||
            (et == wxEVT_ACTIVATE_APP) ||
            (et == wxEVT_ACTIVATE) ||
            (et == wxEVT_SHOW) ||
            (et == wxEVT_ICONIZE) ||
            (et == wxEVT_MAXIMIZE) ||
            (et == wxEVT_MENU_OPEN) ||
            (et == wxEVT_MENU_CLOSE) ||
            (et == wxEVT_MENU_HIGHLIGHT) ||
            (et == wxEVT_CONTEXT_MENU) ||
            (et == wxEVT_JOY_BUTTON_DOWN) ||
            (et == wxEVT_JOY_BUTTON_UP) ||
            (et == wxEVT_JOY_MOVE) ||
            (et == wxEVT_JOY_ZMOVE) ||
            (et == wxEVT_DROP_FILES) ||
            (et == wxEVT_COMMAND_TEXT_COPY) ||
            (et == wxEVT_COMMAND_TEXT_CUT) ||
            (et == wxEVT_COMMAND_TEXT_PASTE) ||
            (et == wxEVT_COMMAND_LEFT_CLICK) ||
            (et == wxEVT_COMMAND_LEFT_DCLICK) ||
            (et == wxEVT_COMMAND_RIGHT_CLICK) ||
            (et == wxEVT_COMMAND_RIGHT_DCLICK) ||
            (et == wxEVT_COMMAND_ENTER) ||
            (et == wxEVT_HELP) ||
            (et == wxEVT_DETAILED_HELP)) {
        RestartIdleTimer();
    }
    if (evt.IsCommandEvent() && evt.GetId() == wxID_HELP &&
            (et == wxEVT_COMMAND_BUTTON_CLICKED ||
             et == wxEVT_COMMAND_MENU_SELECTED)) {
        OnHelp(*wxDynamicCast(&evt, wxCommandEvent));
        return int(true);
    }
    return wxApp::FilterEvent(evt);
}
wxString CREventCaptureManager::GetEventDetails (wxEvent& event) const
{
    wxString evtObjName, evtObjHierarchy;
    // Print name of event object - is this XRC string ID?
    wxObject *obj = event.GetEventObject ();
    if ((event.GetEventType () == wxEVT_COMMAND_MENU_SELECTED) ||
            (event.GetEventType () == wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED)) {

        wxWindow *wdw = wxDynamicCast (obj, wxWindow);
        if (wdw != NULL) {

            evtObjName = wdw->GetName ();

            //wxASSERT (event.GetId () == XRCID (evtObjName));

            wxWindow *parent = wdw->GetParent ();
            if (parent) {

                evtObjHierarchy += "-> " + parent->GetName ();
            }
            parent = wdw->GetGrandParent ();
            if (parent) {

                evtObjHierarchy += " -> " + parent->GetName ();
            }

        } else {

            // Menus are different, they do not inherit from wxWindow:
            wxMenu *menu = wxDynamicCast (obj, wxMenu);
            if (menu != NULL) {

                evtObjName = menu->GetTitle ();
            }
        }

    } else if (obj != NULL) {

        wxWindow *wdw = wxDynamicCast (obj, wxWindow);
        if (wdw != NULL) {

            evtObjName = wdw->GetName ();

            // For command events this assertion is too strong, the event object
            // can also be a parent component!
            //wxASSERT (event.GetId () == XRCID (evtObjName));
            if (event.IsCommandEvent ()) {

                //wxWindow *child = wxWindow::FindWindowById (event.GetId (), wdw);
                wxWindow *child = wxWindow::FindWindowById (event.GetId ());
                wxASSERT ((event.GetId () == XRCID (evtObjName)) ||
                        (child != NULL));

            } else {

                wxASSERT (event.GetId () == XRCID (evtObjName));
            }

            wxWindow *parent = wdw->GetParent ();
            if (parent) {

                evtObjHierarchy += "-> " + parent->GetName ();
            }
            parent = wdw->GetGrandParent ();
            if (parent) {

                evtObjHierarchy += " -> " + parent->GetName ();
            }
        } else {

            // Menus are different, they do not inherit from wxWindow:
            wxMenu *menu = wxDynamicCast (obj, wxMenu);
            if (menu != NULL) {

                evtObjName = menu->GetTitle ();
            }
        }
    }

    // Timestamp is mostly 0 and therefore irrelevant; if it is a command event
    // or not is not important:
    //wxString evtInfo = wxString::Format ("[%d]: id %d cmd %d - EvtObj '%s' %s",
    wxString evtInfo = wxString::Format ("id %d, EvtObj '%s' %s",
            //event.GetTimestamp (),
            event.GetId (),
            //event.IsCommandEvent (),
            evtObjName.c_str (),
            evtObjHierarchy.c_str ());

    return evtInfo;
}