]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/event.cpp
no message
[wxWidgets.git] / src / common / event.cpp
index d3cb798bdf81a1b0920c2b44deb1b537c43ea838..dd13024c2349f5eb2d2695b37f1bb107d0a1f253 100644 (file)
@@ -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,11 @@ wxEvent::wxEvent(int theId)
 wxCommandEvent::wxCommandEvent(wxEventType commandType, int theId)
 {
   m_eventType = commandType;
-  m_clientData = NULL;
+  m_clientData = (char *) NULL;
   m_extraLong = 0;
   m_commandInt = 0;
   m_id = theId;
-  m_commandString = NULL;
+  m_commandString = (char *) NULL;
 }
 
 /*
@@ -125,6 +134,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)
@@ -248,11 +262,11 @@ wxKeyEvent::wxKeyEvent(wxEventType type)
 
 wxEvtHandler::wxEvtHandler(void)
 {
-  m_clientData = NULL;
-  m_nextHandler = NULL;
-  m_previousHandler = NULL;
+  m_clientData = (char *) NULL;
+  m_nextHandler = (wxEvtHandler *) NULL;
+  m_previousHandler = (wxEvtHandler *) NULL;
   m_enabled = TRUE;
-  m_dynamicEvents = NULL;
+  m_dynamicEvents = (wxList *) NULL;
 }
 
 wxEvtHandler::~wxEvtHandler(void)
@@ -342,8 +356,11 @@ bool wxEvtHandler::ProcessEvent(wxEvent& event)
       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;