]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/event.h
issue NUMPAD constants only for Key but not for Char events, fixes #15073
[wxWidgets.git] / include / wx / event.h
index e28d5c29708f993883195c7a2c7bb5ede552a6bc..5aad5c465ff4eebb65ca4a2492dfcec4fef2f5fa 100644 (file)
     #include "wx/meta/convertible.h"
 #endif
 
-#include "wx/meta/removeref.h"
+// Currently VC6 and VC7 are known to not be able to compile CallAfter() code,
+// so disable it for them.
+#if !defined(__VISUALC__) || wxCHECK_VISUALC_VERSION(8)
+    #include "wx/meta/removeref.h"
+
+    #define wxHAS_CALL_AFTER
+#endif
 
 // ----------------------------------------------------------------------------
 // forward declarations
@@ -1276,6 +1282,8 @@ private:
 // done asynchronously, i.e. at some later time, instead of immediately when
 // the event object is constructed.
 
+#ifdef wxHAS_CALL_AFTER
+
 // This is a base class used to process all method calls.
 class wxAsyncMethodCallEvent : public wxEvent
 {
@@ -1423,6 +1431,9 @@ private:
     const ParamType2 m_param2;
 };
 
+#endif // wxHAS_CALL_AFTER
+
+
 #if wxUSE_GUI
 
 
@@ -1851,18 +1862,23 @@ public:
     // Find the position of the event
     void GetPosition(wxCoord *xpos, wxCoord *ypos) const
     {
-        if (xpos) *xpos = m_x;
-        if (ypos) *ypos = m_y;
+        if (xpos)
+            *xpos = GetX();
+        if (ypos)
+            *ypos = GetY();
     }
 
+    // This version if provided only for backwards compatiblity, don't use.
     void GetPosition(long *xpos, long *ypos) const
     {
-        if (xpos) *xpos = (long)m_x;
-        if (ypos) *ypos = (long)m_y;
+        if (xpos)
+            *xpos = GetX();
+        if (ypos)
+            *ypos = GetY();
     }
 
     wxPoint GetPosition() const
-        { return wxPoint(m_x, m_y); }
+        { return wxPoint(GetX(), GetY()); }
 
     // Get X position
     wxCoord GetX() const;
@@ -1900,6 +1916,8 @@ public:
     }
 
 public:
+    // Do not use these fields directly, they are initialized on demand, so
+    // call GetX() and GetY() or GetPosition() instead.
     wxCoord       m_x, m_y;
 
     long          m_keyCode;
@@ -3294,6 +3312,7 @@ public:
         // NOTE: uses AddPendingEvent(); call only from secondary threads
 #endif
 
+#ifdef wxHAS_CALL_AFTER
     // Asynchronous method calls: these methods schedule the given method
     // pointer for a later call (during the next idle event loop iteration).
     //
@@ -3311,7 +3330,7 @@ public:
     }
 
     // Notice that we use P1 and not T1 for the parameter to allow passing
-    // parameters that are only convertible to the type taken by the method
+    // parameters that are convertible to the type taken by the method
     // instead of being exactly the same, to be closer to the usual method call
     // semantics.
     template <typename T, typename T1, typename P1>
@@ -3331,6 +3350,7 @@ public:
                 static_cast<T*>(this), method, x1, x2)
         );
     }
+#endif // wxHAS_CALL_AFTER
 
 
     // Connecting and disconnecting
@@ -4334,11 +4354,11 @@ WXDLLIMPEXP_CORE wxWindow* wxFindFocusDescendant(wxWindow* ancestor);
 #define DECLARE_EVENT_TABLE()                          wxDECLARE_EVENT_TABLE();
 #define BEGIN_EVENT_TABLE(a,b)                         wxBEGIN_EVENT_TABLE(a,b)
 #define BEGIN_EVENT_TABLE_TEMPLATE1(a,b,c)             wxBEGIN_EVENT_TABLE_TEMPLATE1(a,b,c)
-#define BEGIN_EVENT_TABLE_TEMPLATE2(a,b,c,d)           wxBEGIN_EVENT_TABLE_TEMPLATE1(a,b,c,d)
-#define BEGIN_EVENT_TABLE_TEMPLATE3(a,b,c,d,e)         wxBEGIN_EVENT_TABLE_TEMPLATE1(a,b,c,d,e)
-#define BEGIN_EVENT_TABLE_TEMPLATE4(a,b,c,d,e,f)       wxBEGIN_EVENT_TABLE_TEMPLATE1(a,b,c,d,e,f)
-#define BEGIN_EVENT_TABLE_TEMPLATE5(a,b,c,d,e,f,g)     wxBEGIN_EVENT_TABLE_TEMPLATE1(a,b,c,d,e,f,g)
-#define BEGIN_EVENT_TABLE_TEMPLATE6(a,b,c,d,e,f,g,h)   wxBEGIN_EVENT_TABLE_TEMPLATE1(a,b,c,d,e,f,g,h)
+#define BEGIN_EVENT_TABLE_TEMPLATE2(a,b,c,d)           wxBEGIN_EVENT_TABLE_TEMPLATE2(a,b,c,d)
+#define BEGIN_EVENT_TABLE_TEMPLATE3(a,b,c,d,e)         wxBEGIN_EVENT_TABLE_TEMPLATE3(a,b,c,d,e)
+#define BEGIN_EVENT_TABLE_TEMPLATE4(a,b,c,d,e,f)       wxBEGIN_EVENT_TABLE_TEMPLATE4(a,b,c,d,e,f)
+#define BEGIN_EVENT_TABLE_TEMPLATE5(a,b,c,d,e,f,g)     wxBEGIN_EVENT_TABLE_TEMPLATE5(a,b,c,d,e,f,g)
+#define BEGIN_EVENT_TABLE_TEMPLATE6(a,b,c,d,e,f,g,h)   wxBEGIN_EVENT_TABLE_TEMPLATE6(a,b,c,d,e,f,g,h)
 #define END_EVENT_TABLE()                              wxEND_EVENT_TABLE()
 
 // other obsolete event declaration/definition macros; we don't need them any longer