]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/event.h
fixed library order (important for static linking under Unix
[wxWidgets.git] / include / wx / event.h
index 7d82d855a325c0aade6bbe44c5aac852a1988178..e4882803227d9f8b12fb7d9b0ce691c45dfe5329 100644 (file)
@@ -273,6 +273,7 @@ BEGIN_DECLARE_EVENT_TYPES()
     DECLARE_EVENT_TYPE(wxEVT_UPDATE_UI, 440)
     DECLARE_EVENT_TYPE(wxEVT_SIZING, 441)
     DECLARE_EVENT_TYPE(wxEVT_MOVING, 442)
+    DECLARE_EVENT_TYPE(wxEVT_HIBERNATE, 443)
 
         // Generic command events
         // Note: a click is a higher-level event than button down/up
@@ -1288,6 +1289,7 @@ private:
 /*
  wxEVT_ACTIVATE
  wxEVT_ACTIVATE_APP
+ wxEVT_HIBERNATE
  */
 
 class WXDLLIMPEXP_CORE wxActivateEvent : public wxEvent
@@ -2105,7 +2107,10 @@ private:
 // event handler and related classes
 // ============================================================================
 
-typedef void (wxEvtHandler::*wxObjectEventFunction)(wxEvent&);
+// for backwards compatibility and to prevent eVC 4 for ARM from crashing with
+// internal compiler error when compiling wx, we define wxObjectEventFunction
+// as a wxObject method even though it can only be a wxEvtHandler one
+typedef void (wxObject::*wxObjectEventFunction)(wxEvent&);
 
 // we can't have ctors nor base struct in backwards compatibility mode or
 // otherwise we won't be able to initialize the objects with an agregate, so
@@ -2417,8 +2422,14 @@ protected:
 
 #if wxUSE_THREADS
 #if defined (__VISAGECPP__)
+    const wxCriticalSection& Lock() const { return m_eventsLocker; }
+    wxCriticalSection& Lock() { return m_eventsLocker; }
+
     wxCriticalSection   m_eventsLocker;
 #  else
+    const wxCriticalSection& Lock() const { return *m_eventsLocker; }
+    wxCriticalSection& Lock() { return *m_eventsLocker; }
+
     wxCriticalSection*  m_eventsLocker;
 #  endif
 #endif
@@ -2513,76 +2524,76 @@ typedef void (wxEvtHandler::*wxMouseCaptureChangedEventFunction)(wxMouseCaptureC
 
 
 #define wxCommandEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxCommandEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxCommandEventFunction, &func)
 #define wxScrollEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxScrollEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxScrollEventFunction, &func)
 #define wxScrollWinEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxScrollWinEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxScrollWinEventFunction, &func)
 #define wxSizeEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxSizeEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSizeEventFunction, &func)
 #define wxMoveEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxMoveEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxMoveEventFunction, &func)
 #define wxPaintEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxPaintEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxPaintEventFunction, &func)
 #define wxNcPaintEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxNcPaintEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxNcPaintEventFunction, &func)
 #define wxEraseEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxEraseEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxEraseEventFunction, &func)
 #define wxMouseEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxMouseEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxMouseEventFunction, &func)
 #define wxCharEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxCharEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxCharEventFunction, &func)
 #define wxKeyEventHandler(func) wxCharEventHandler(func)
 #define wxFocusEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxFocusEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxFocusEventFunction, &func)
 #define wxChildFocusEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxChildFocusEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxChildFocusEventFunction, &func)
 #define wxActivateEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxActivateEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxActivateEventFunction, &func)
 #define wxMenuEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxMenuEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxMenuEventFunction, &func)
 #define wxJoystickEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxJoystickEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxJoystickEventFunction, &func)
 #define wxDropFilesEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxDropFilesEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxDropFilesEventFunction, &func)
 #define wxInitDialogEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxInitDialogEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxInitDialogEventFunction, &func)
 #define wxSysColourChangedEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxSysColourChangedEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSysColourChangedEventFunction, &func)
 #define wxDisplayChangedEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxDisplayChangedEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxDisplayChangedEventFunction, &func)
 #define wxUpdateUIEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxUpdateUIEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxUpdateUIEventFunction, &func)
 #define wxIdleEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxIdleEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxIdleEventFunction, &func)
 #define wxCloseEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxCloseEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxCloseEventFunction, &func)
 #define wxShowEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxShowEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxShowEventFunction, &func)
 #define wxIconizeEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxIconizeEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxIconizeEventFunction, &func)
 #define wxMaximizeEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxMaximizeEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxMaximizeEventFunction, &func)
 #define wxNavigationKeyEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxNavigationKeyEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxNavigationKeyEventFunction, &func)
 #define wxPaletteChangedEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxPaletteChangedEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxPaletteChangedEventFunction, &func)
 #define wxQueryNewPaletteEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxQueryNewPaletteEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxQueryNewPaletteEventFunction, &func)
 #define wxWindowCreateEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxWindowCreateEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWindowCreateEventFunction, &func)
 #define wxWindowDestroyEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxWindowDestroyEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWindowDestroyEventFunction, &func)
 #define wxSetCursorEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxSetCursorEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSetCursorEventFunction, &func)
 #define wxNotifyEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxNotifyEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxNotifyEventFunction, &func)
 #define wxHelpEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxHelpEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxHelpEventFunction, &func)
 #define wxContextMenuEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxContextMenuEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxContextMenuEventFunction, &func)
 #define wxMouseCaptureChangedEventHandler(func) \
-    (wxObjectEventFunction)wxStaticCastEvent(wxMouseCaptureChangedEventFunction, &func)
+    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxMouseCaptureChangedEventFunction, &func)
 
 #endif // wxUSE_GUI
 
@@ -2677,6 +2688,7 @@ typedef void (wxEvtHandler::*wxMouseCaptureChangedEventFunction)(wxMouseCaptureC
 #define EVT_CHILD_FOCUS(func)  wx__DECLARE_EVT0(wxEVT_CHILD_FOCUS, wxChildFocusEventHandler(func))
 #define EVT_ACTIVATE(func)  wx__DECLARE_EVT0(wxEVT_ACTIVATE, wxActivateEventHandler(func))
 #define EVT_ACTIVATE_APP(func)  wx__DECLARE_EVT0(wxEVT_ACTIVATE_APP, wxActivateEventHandler(func))
+#define EVT_HIBERNATE(func)  wx__DECLARE_EVT0(wxEVT_HIBERNATE, wxActivateEventHandler(func))
 #define EVT_END_SESSION(func)  wx__DECLARE_EVT0(wxEVT_END_SESSION, wxCloseEventHandler(func))
 #define EVT_QUERY_END_SESSION(func)  wx__DECLARE_EVT0(wxEVT_QUERY_END_SESSION, wxCloseEventHandler(func))
 #define EVT_DROP_FILES(func)  wx__DECLARE_EVT0(wxEVT_DROP_FILES, wxDropFilesEventHandler(func))