]> git.saurik.com Git - wxWidgets.git/commitdiff
Refactor wxKeyEvent copying code.
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 2 Dec 2011 00:50:16 +0000 (00:50 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 2 Dec 2011 00:50:16 +0000 (00:50 +0000)
Avoid duplication between copy ctor and assignment operator.

Also extract the assignment of everything not including the event type in a
reusable function as this can be useful for key event generation code in wxGTK
and possibly other ports.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/event.h
src/common/event.cpp

index 70ea52e26e9abc95e137db4b62f630701890aeb7..b73289934f0104fcdc6273a400076ce667fed34e 100644 (file)
@@ -1717,16 +1717,7 @@ public:
             // implicitly defined operator=() so need to do it this way:
             *static_cast<wxKeyboardState *>(this) = evt;
 
-            m_x = evt.m_x;
-            m_y = evt.m_y;
-
-            m_keyCode = evt.m_keyCode;
-
-            m_rawCode = evt.m_rawCode;
-            m_rawFlags = evt.m_rawFlags;
-#if wxUSE_UNICODE
-            m_uniChar = evt.m_uniChar;
-#endif
+            DoAssignMembers(evt);
         }
         return *this;
     }
@@ -1748,6 +1739,22 @@ public:
     wxUint32      m_rawFlags;
 
 private:
+    // Copy only the event data present in this class, this is used by
+    // AssignKeyData() and copy ctor.
+    void DoAssignMembers(const wxKeyEvent& evt)
+    {
+        m_x = evt.m_x;
+        m_y = evt.m_y;
+
+        m_keyCode = evt.m_keyCode;
+
+        m_rawCode = evt.m_rawCode;
+        m_rawFlags = evt.m_rawFlags;
+#if wxUSE_UNICODE
+        m_uniChar = evt.m_uniChar;
+#endif
+    }
+
     DECLARE_DYNAMIC_CLASS(wxKeyEvent)
 };
 
index 31223d417ed24c18f638277730d00577a6450401..7db770744cb90ad1bb8b6e17ea678388b068536c 100644 (file)
@@ -741,16 +741,7 @@ wxKeyEvent::wxKeyEvent(const wxKeyEvent& evt)
           : wxEvent(evt),
             wxKeyboardState(evt)
 {
-    m_x = evt.m_x;
-    m_y = evt.m_y;
-
-    m_keyCode = evt.m_keyCode;
-    m_rawCode = evt.m_rawCode;
-    m_rawFlags = evt.m_rawFlags;
-
-#if wxUSE_UNICODE
-    m_uniChar = evt.m_uniChar;
-#endif
+    DoAssignMembers(evt);
 }
 
 bool wxKeyEvent::IsKeyInCategory(int category) const