void wxTestableFrame::OnEvent(wxEvent& evt) { m_count[evt.GetEventType()]++; if(! evt.IsCommandEvent() ) evt.Skip(); }
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); }
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; }
// 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; }
// 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; }
// 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); }
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; }