From 35f8d83dbb985f81b7b7b63f113b05e7ca243489 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 17 Oct 2010 18:17:30 +0000 Subject: [PATCH] Fix wxSTC compilation without wxUSE_DRAG_AND_DROP after r65827. Correct the changes of r65827 to also compile with wxUSE_DRAG_AND_DROP==0 (especially important for the ports without dnd support such as wxX11 and wxDFB). Also do the changes in the correct files, i.e. src/stc/stc.{h,cpp}.in and not in the generated files themselves to prevent them from being overwritten the next time gen_iface.py is ran. Finally keep backwards compatibility as SetDragAllowMove(bool) is a public method so preserve its old semantics and add a new SetDragFlags() instead of silently breaking the existing code using SetDragAllowMove(). See #11709. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/stc/stc.h | 27 +++++++++++++++++++-------- src/stc/ScintillaWX.cpp | 4 ++-- src/stc/stc.cpp | 10 +++++----- src/stc/stc.cpp.in | 6 +++--- src/stc/stc.h.in | 27 +++++++++++++++++++-------- 5 files changed, 48 insertions(+), 26 deletions(-) diff --git a/include/wx/stc/stc.h b/include/wx/stc/stc.h index ecce1ba3c6..a8210a812f 100644 --- a/include/wx/stc/stc.h +++ b/include/wx/stc/stc.h @@ -4325,10 +4325,20 @@ public: void SetListType(int val) { m_listType = val; } void SetX(int val) { m_x = val; } void SetY(int val) { m_y = val; } - void SetDragText(const wxString& val) { m_dragText = val; } - void SetDragAllowMove(int val) { m_dragAllowMove = val; } #ifdef STC_USE_DND + void SetDragText(const wxString& val) { m_dragText = val; } + void SetDragFlags(int flags) { m_dragFlags = flags; } void SetDragResult(wxDragResult val) { m_dragResult = val; } + + // This method is kept mainly for backwards compatibility, use + // SetDragFlags() in the new code. + void SetDragAllowMove(bool allow) + { + if ( allow ) + m_dragFlags |= wxDrag_AllowMove; + else + m_dragFlags &= ~(wxDrag_AllowMove | wxDrag_DefaultMove); + } #endif int GetPosition() const { return m_position; } @@ -4348,10 +4358,12 @@ public: int GetListType() const { return m_listType; } int GetX() const { return m_x; } int GetY() const { return m_y; } - wxString GetDragText() { return m_dragText; } - int GetDragAllowMove() { return m_dragAllowMove; } #ifdef STC_USE_DND + wxString GetDragText() { return m_dragText; } + int GetDragFlags() { return m_dragFlags; } wxDragResult GetDragResult() { return m_dragResult; } + + bool GetDragAllowMove() { return (GetDragFlags() & wxDrag_AllowMove) != 0; } #endif bool GetShift() const; @@ -4386,11 +4398,10 @@ private: int m_x; int m_y; - wxString m_dragText; // wxEVT_STC_START_DRAG, wxEVT_STC_DO_DROP - int m_dragAllowMove; // wxEVT_STC_START_DRAG - #if wxUSE_DRAG_AND_DROP - wxDragResult m_dragResult; // wxEVT_STC_DRAG_OVER,wxEVT_STC_DO_DROP + wxString m_dragText; // wxEVT_STC_START_DRAG, wxEVT_STC_DO_DROP + int m_dragFlags; // wxEVT_STC_START_DRAG + wxDragResult m_dragResult; // wxEVT_STC_DRAG_OVER,wxEVT_STC_DO_DROP #endif #endif }; diff --git a/src/stc/ScintillaWX.cpp b/src/stc/ScintillaWX.cpp index 8ede8b4cf8..2da03ca833 100644 --- a/src/stc/ScintillaWX.cpp +++ b/src/stc/ScintillaWX.cpp @@ -283,7 +283,7 @@ void ScintillaWX::StartDrag() { wxStyledTextEvent evt(wxEVT_STC_START_DRAG, stc->GetId()); evt.SetEventObject(stc); evt.SetDragText(dragText); - evt.SetDragAllowMove(wxDrag_DefaultMove); + evt.SetDragFlags(wxDrag_DefaultMove); evt.SetPosition(wxMin(stc->GetSelectionStart(), stc->GetSelectionEnd())); stc->GetEventHandler()->ProcessEvent(evt); @@ -297,7 +297,7 @@ void ScintillaWX::StartDrag() { source.SetData(data); dropWentOutside = true; inDragDrop = ddDragging; - result = source.DoDragDrop(evt.GetDragAllowMove()); + result = source.DoDragDrop(evt.GetDragFlags()); if (result == wxDragMove && dropWentOutside) ClearSelection(); inDragDrop = ddNone; diff --git a/src/stc/stc.cpp b/src/stc/stc.cpp index 34d804cab5..5905e2eb00 100644 --- a/src/stc/stc.cpp +++ b/src/stc/stc.cpp @@ -595,7 +595,7 @@ void wxStyledTextCtrl::MarkerDefineBitmap(int markerNumber, const wxBitmap& bmp) buff[len] = 0; SendMsg(2049, markerNumber, (sptr_t)buff); delete [] buff; - + } // Add a set of markers to a line. @@ -1190,7 +1190,7 @@ void wxStyledTextCtrl::RegisterImage(int type, const wxBitmap& bmp) { buff[len] = 0; SendMsg(2405, type, (sptr_t)buff); delete [] buff; - + } // Clear all the registered images. @@ -4573,8 +4573,8 @@ wxStyledTextEvent::wxStyledTextEvent(wxEventType commandType, int id) m_listType = 0; m_x = 0; m_y = 0; - m_dragAllowMove = wxDrag_CopyOnly; #if wxUSE_DRAG_AND_DROP + m_dragFlags = wxDrag_CopyOnly; m_dragResult = wxDragNone; #endif } @@ -4608,9 +4608,9 @@ wxStyledTextEvent::wxStyledTextEvent(const wxStyledTextEvent& event): m_x = event.m_x; m_y = event.m_y; - m_dragText = event.m_dragText; - m_dragAllowMove =event.m_dragAllowMove; #if wxUSE_DRAG_AND_DROP + m_dragText = event.m_dragText; + m_dragFlags = event.m_dragFlags; m_dragResult = event.m_dragResult; #endif } diff --git a/src/stc/stc.cpp.in b/src/stc/stc.cpp.in index 7d8edf46dc..eb6c021027 100644 --- a/src/stc/stc.cpp.in +++ b/src/stc/stc.cpp.in @@ -1073,8 +1073,8 @@ wxStyledTextEvent::wxStyledTextEvent(wxEventType commandType, int id) m_listType = 0; m_x = 0; m_y = 0; - m_dragAllowMove = false; #if wxUSE_DRAG_AND_DROP + m_dragFlags = wxDrag_CopyOnly; m_dragResult = wxDragNone; #endif } @@ -1108,9 +1108,9 @@ wxStyledTextEvent::wxStyledTextEvent(const wxStyledTextEvent& event): m_x = event.m_x; m_y = event.m_y; - m_dragText = event.m_dragText; - m_dragAllowMove =event.m_dragAllowMove; #if wxUSE_DRAG_AND_DROP + m_dragText = event.m_dragText; + m_dragFlags = event.m_dragFlags; m_dragResult = event.m_dragResult; #endif } diff --git a/src/stc/stc.h.in b/src/stc/stc.h.in index 46636e5c84..b0e44da888 100644 --- a/src/stc/stc.h.in +++ b/src/stc/stc.h.in @@ -523,10 +523,20 @@ public: void SetListType(int val) { m_listType = val; } void SetX(int val) { m_x = val; } void SetY(int val) { m_y = val; } - void SetDragText(const wxString& val) { m_dragText = val; } - void SetDragAllowMove(bool val) { m_dragAllowMove = val; } #ifdef STC_USE_DND + void SetDragText(const wxString& val) { m_dragText = val; } + void SetDragFlags(int flags) { m_dragFlags = flags; } void SetDragResult(wxDragResult val) { m_dragResult = val; } + + // This method is kept mainly for backwards compatibility, use + // SetDragFlags() in the new code. + void SetDragAllowMove(bool allow) + { + if ( allow ) + m_dragFlags |= wxDrag_AllowMove; + else + m_dragFlags &= ~(wxDrag_AllowMove | wxDrag_DefaultMove); + } #endif int GetPosition() const { return m_position; } @@ -546,10 +556,12 @@ public: int GetListType() const { return m_listType; } int GetX() const { return m_x; } int GetY() const { return m_y; } - wxString GetDragText() { return m_dragText; } - bool GetDragAllowMove() { return m_dragAllowMove; } #ifdef STC_USE_DND + wxString GetDragText() { return m_dragText; } + int GetDragFlags() { return m_dragFlags; } wxDragResult GetDragResult() { return m_dragResult; } + + bool GetDragAllowMove() { return (GetDragFlags() & wxDrag_AllowMove) != 0; } #endif bool GetShift() const; @@ -584,11 +596,10 @@ private: int m_x; int m_y; - wxString m_dragText; // wxEVT_STC_START_DRAG, wxEVT_STC_DO_DROP - bool m_dragAllowMove; // wxEVT_STC_START_DRAG - #if wxUSE_DRAG_AND_DROP - wxDragResult m_dragResult; // wxEVT_STC_DRAG_OVER,wxEVT_STC_DO_DROP + wxString m_dragText; // wxEVT_STC_START_DRAG, wxEVT_STC_DO_DROP + int m_dragFlags; // wxEVT_STC_START_DRAG + wxDragResult m_dragResult; // wxEVT_STC_DRAG_OVER,wxEVT_STC_DO_DROP #endif #endif };