X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/46dc76ba3573649a9ed7c7aff6dc677f533eee11..5b6ec9803a058368a1b240a22d444c7301c5715a:/src/common/event.cpp diff --git a/src/common/event.cpp b/src/common/event.cpp index f05273d387..c84e70f38c 100644 --- a/src/common/event.cpp +++ b/src/common/event.cpp @@ -54,15 +54,24 @@ IMPLEMENT_DYNAMIC_CLASS(wxActivateEvent, wxEvent) IMPLEMENT_DYNAMIC_CLASS(wxInitDialogEvent, wxEvent) IMPLEMENT_DYNAMIC_CLASS(wxSysColourChangedEvent, wxEvent) IMPLEMENT_DYNAMIC_CLASS(wxIdleEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxUpdateUIEvent, wxEvent) +IMPLEMENT_DYNAMIC_CLASS(wxUpdateUIEvent, wxCommandEvent) IMPLEMENT_DYNAMIC_CLASS(wxNavigationKeyEvent, wxCommandEvent) +IMPLEMENT_DYNAMIC_CLASS(wxPaletteChangedEvent, wxEvent) +IMPLEMENT_DYNAMIC_CLASS(wxQueryNewPaletteEvent, wxEvent) const wxEventTable *wxEvtHandler::GetEventTable() const { return &wxEvtHandler::sm_eventTable; } const wxEventTable wxEvtHandler::sm_eventTable = - { NULL, &wxEvtHandler::sm_eventTableEntries[0] }; - -const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0, NULL } }; + { (const wxEventTable *) NULL, &wxEvtHandler::sm_eventTableEntries[0] }; + +const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0, +#ifdef __SGI_CC__ +// stupid SGI compiler --- offer aug 98 + 0L } +#else + NULL } +#endif +}; #endif @@ -78,12 +87,12 @@ const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0, NULL wxEvent::wxEvent(int theId) { m_eventType = wxEVT_NULL; - m_eventObject = NULL; - m_eventHandle = NULL; + m_eventObject = (wxObject *) NULL; + m_eventHandle = (char *) NULL; m_timeStamp = 0; m_id = theId; m_skipped = FALSE; - m_callbackUserData = NULL; + m_callbackUserData = (wxObject *) NULL; } /* @@ -94,11 +103,12 @@ wxEvent::wxEvent(int theId) wxCommandEvent::wxCommandEvent(wxEventType commandType, int theId) { m_eventType = commandType; - m_clientData = NULL; + m_clientData = (char *) NULL; + m_clientObject = (wxClientData *) NULL; m_extraLong = 0; m_commandInt = 0; m_id = theId; - m_commandString = NULL; + m_commandString = (char *) NULL; } /* @@ -125,6 +135,11 @@ wxMouseEvent::wxMouseEvent(wxEventType commandType) m_altDown = FALSE; m_controlDown = FALSE; m_shiftDown = FALSE; + m_leftDown = FALSE; + m_rightDown = FALSE; + m_middleDown = FALSE; + m_x = 0; + m_y = 0; } // True if was a button dclick event (1 = left, 2 = middle, 3 = right) @@ -222,8 +237,8 @@ bool wxMouseEvent::ButtonIsDown(int but) const // Find the logical position of the event given the DC wxPoint wxMouseEvent::GetLogicalPosition(const wxDC& dc) const { - wxPoint pt(dc.DeviceToLogicalX(m_x), dc.DeviceToLogicalY(m_y)); - return pt; + wxPoint pt(dc.DeviceToLogicalX(m_x), dc.DeviceToLogicalY(m_y)); + return pt; } @@ -248,11 +263,10 @@ wxKeyEvent::wxKeyEvent(wxEventType type) wxEvtHandler::wxEvtHandler(void) { - m_clientData = NULL; - m_nextHandler = NULL; - m_previousHandler = NULL; + m_nextHandler = (wxEvtHandler *) NULL; + m_previousHandler = (wxEvtHandler *) NULL; m_enabled = TRUE; - m_dynamicEvents = NULL; + m_dynamicEvents = (wxList *) NULL; } wxEvtHandler::~wxEvtHandler(void) @@ -305,14 +319,14 @@ bool wxEvtHandler::ProcessEvent(wxEvent& event) // chain of event handlers. if (IsKindOf(CLASSINFO(wxWindow))) { - wxWindow *win = (wxWindow *)this; - - // Can only use the validator of the window which - // is receiving the event - if ( (win == event.GetEventObject()) && - win->GetValidator() && - win->GetValidator()->ProcessEvent(event)) - return TRUE; + wxWindow *win = (wxWindow *)this; + + // Can only use the validator of the window which + // is receiving the event + if ( (win == event.GetEventObject()) && + win->GetValidator() && + win->GetValidator()->ProcessEvent(event)) + return TRUE; } // Search upwards through the inheritance hierarchy @@ -327,8 +341,8 @@ bool wxEvtHandler::ProcessEvent(wxEvent& event) // Try going down the event handler chain if ( GetNextHandler() ) { - if ( GetNextHandler()->ProcessEvent(event) ) - return TRUE; + if ( GetNextHandler()->ProcessEvent(event) ) + return TRUE; } // Carry on up the parent-child hierarchy, @@ -337,13 +351,16 @@ bool wxEvtHandler::ProcessEvent(wxEvent& event) if (IsKindOf(CLASSINFO(wxWindow)) && event.IsKindOf(CLASSINFO(wxCommandEvent))) { wxWindow *win = (wxWindow *)this; - wxWindow *parent = win->GetParent(); + wxWindow *parent = win->GetParent(); if (parent && !parent->IsBeingDeleted()) return win->GetParent()->GetEventHandler()->ProcessEvent(event); } - // Last try - application object - if (wxTheApp && this != wxTheApp && wxTheApp->ProcessEvent(event)) + // Last try - application object. + // Special case: don't pass wxEVT_IDLE to wxApp, since it'll always swallow it. + // wxEVT_IDLE is sent explicitly to wxApp so it will be processed appropriately + // via SearchEventTable. + if (wxTheApp && this != wxTheApp && (event.GetEventType() != wxEVT_IDLE) && wxTheApp->ProcessEvent(event)) return TRUE; else return FALSE; @@ -354,7 +371,13 @@ bool wxEvtHandler::SearchEventTable(wxEventTable& table, wxEvent& event) int i = 0; int commandId = event.GetId(); - while (table.entries[i].m_fn != NULL) + while (table.entries[i].m_fn != +#ifdef __SGI_CC__ + 0L +#else + NULL +#endif + ) { // wxEventType eventType = (wxEventType) table.entries[i].m_eventType; @@ -364,14 +387,14 @@ bool wxEvtHandler::SearchEventTable(wxEventTable& table, wxEvent& event) (table.entries[i].m_lastId != -1 && (commandId >= table.entries[i].m_id && commandId <= table.entries[i].m_lastId)))) { - event.Skip(FALSE); + event.Skip(FALSE); event.m_callbackUserData = table.entries[i].m_callbackUserData; - + (this->*((wxEventFunction) (table.entries[i].m_fn)))(event); - if ( event.GetSkipped() ) - return FALSE; - else + if ( event.GetSkipped() ) + return FALSE; + else return TRUE; } i ++; @@ -381,8 +404,8 @@ bool wxEvtHandler::SearchEventTable(wxEventTable& table, wxEvent& event) void wxEvtHandler::Connect( int id, int lastId, int eventType, - wxObjectEventFunction func, - wxObject *userData ) + wxObjectEventFunction func, + wxObject *userData ) { wxEventTableEntry *entry = new wxEventTableEntry; entry->m_id = id; @@ -418,14 +441,14 @@ bool wxEvtHandler::SearchDynamicEventTable( wxEvent& event ) (entry->m_lastId != -1 && (commandId >= entry->m_id && commandId <= entry->m_lastId)))) { - event.Skip(FALSE); + event.Skip(FALSE); event.m_callbackUserData = entry->m_callbackUserData; - + (this->*((wxEventFunction) (entry->m_fn)))(event); - if (event.GetSkipped()) - return FALSE; - else + if (event.GetSkipped()) + return FALSE; + else return TRUE; } };