From dfc7216da7cf3c5bc06d19ed29ac2af419b036cd Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 2 Dec 2011 00:50:16 +0000 Subject: [PATCH] Refactor wxKeyEvent copying code. 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 | 27 +++++++++++++++++---------- src/common/event.cpp | 11 +---------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/include/wx/event.h b/include/wx/event.h index 70ea52e26e..b73289934f 100644 --- a/include/wx/event.h +++ b/include/wx/event.h @@ -1717,16 +1717,7 @@ public: // implicitly defined operator=() so need to do it this way: *static_cast(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) }; diff --git a/src/common/event.cpp b/src/common/event.cpp index 31223d417e..7db770744c 100644 --- a/src/common/event.cpp +++ b/src/common/event.cpp @@ -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 -- 2.45.2