X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e6a6feba84957ca7bc7fab10741bc9beff06bd74..008a56c968ed7e0694e32e93c2dbf95dde2ba5c8:/src/common/event.cpp diff --git a/src/common/event.cpp b/src/common/event.cpp index 0483535a01..6e578317e2 100644 --- a/src/common/event.cpp +++ b/src/common/event.cpp @@ -190,6 +190,7 @@ DEFINE_EVENT_TYPE(wxEVT_SCROLL_PAGEUP) DEFINE_EVENT_TYPE(wxEVT_SCROLL_PAGEDOWN) DEFINE_EVENT_TYPE(wxEVT_SCROLL_THUMBTRACK) DEFINE_EVENT_TYPE(wxEVT_SCROLL_THUMBRELEASE) +DEFINE_EVENT_TYPE(wxEVT_SCROLL_ENDSCROLL) // Scroll events from wxWindow DEFINE_EVENT_TYPE(wxEVT_SCROLLWIN_TOP) @@ -386,6 +387,27 @@ wxMouseEvent::wxMouseEvent(wxEventType commandType) m_linesPerAction = 0; } +void wxMouseEvent::Assign(const wxMouseEvent& event) +{ + m_eventType = event.m_eventType; + + m_x = event.m_x; + m_y = event.m_y; + + m_leftDown = event.m_leftDown; + m_middleDown = event.m_middleDown; + m_rightDown = event.m_rightDown; + + m_controlDown = event.m_controlDown; + m_shiftDown = event.m_shiftDown; + m_altDown = event.m_altDown; + m_metaDown = event.m_metaDown; + + m_wheelRotation = event.m_wheelRotation; + m_wheelDelta = event.m_wheelDelta; + m_linesPerAction = event.m_linesPerAction; +} + // True if was a button dclick event (1 = left, 2 = middle, 3 = right) // or any button dclick event (but = -1) bool wxMouseEvent::ButtonDClick(int but) const @@ -523,9 +545,32 @@ wxKeyEvent::wxKeyEvent(wxEventType type) m_altDown = FALSE; m_keyCode = 0; m_scanCode = 0; +#if wxUSE_UNICODE + m_uniChar = 0; +#endif } - +wxKeyEvent::wxKeyEvent(const wxKeyEvent& evt) + : wxEvent(evt) +{ + m_x = evt.m_x; + m_y = evt.m_y; + + m_keyCode = evt.m_keyCode; + + m_controlDown = evt.m_controlDown; + m_shiftDown = evt.m_shiftDown; + m_altDown = evt.m_altDown; + m_metaDown = evt.m_metaDown; + m_scanCode = evt.m_scanCode; + m_rawCode = evt.m_rawCode; + m_rawFlags = evt.m_rawFlags; + +#if wxUSE_UNICODE + m_uniChar = evt.m_uniChar; +#endif +} + wxWindowCreateEvent::wxWindowCreateEvent(wxWindow *win) { SetEventType(wxEVT_CREATE); @@ -744,12 +789,32 @@ bool wxEvtHandler::ProcessEvent(wxEvent& event) info = CLASSINFO(wxWindow); #endif - wxASSERT_MSG( m_isWindow == IsKindOf(info), - wxString(GetClassInfo()->GetClassName()) + _T(" should [not] be a window but it is [not]") ); -#endif + if ( m_isWindow != IsKindOf(info) ) + { + wxString msg = GetClassInfo()->GetClassName(); + msg += _T(" should [not] be a window but it is [not]"); + + wxFAIL_MSG( msg ); + } + +#endif // __WXDEBUG__ #endif // wxUSE_GUI + // allow the application to hook into event processing + if ( wxTheApp ) + { + int rc = wxTheApp->FilterEvent(event); + if ( rc != -1 ) + { + wxASSERT_MSG( rc == 1 || rc == 0, + _T("unexpected wxApp::FilterEvent return value") ); + + return rc != 0; + } + //else: proceed normally + } + // An event handler can be enabled or disabled if ( GetEvtHandlerEnabled() ) {