X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/53a2db124c633f80bdb16336084262037d879a2c..cde23b64b5194f0d71cf16c85ea33d28419c815f:/include/wx/generic/splitter.h diff --git a/include/wx/generic/splitter.h b/include/wx/generic/splitter.h index 498471fa99..7244535737 100644 --- a/include/wx/generic/splitter.h +++ b/include/wx/generic/splitter.h @@ -91,7 +91,7 @@ public: void SetSplitMode(int mode) { wxASSERT_MSG( mode == wxSPLIT_VERTICAL || mode == wxSPLIT_HORIZONTAL, - _T("invalid split mode") ); + wxT("invalid split mode") ); m_splitMode = (wxSplitMode)mode; } @@ -119,7 +119,7 @@ public: // Removes the specified (or second) window from the view // Doesn't actually delete the window. - bool Unsplit(wxWindow *toRemove = (wxWindow *) NULL); + bool Unsplit(wxWindow *toRemove = NULL); // Replaces one of the windows with another one (neither old nor new // parameter should be NULL) @@ -193,6 +193,9 @@ public: // Handles mouse events void OnMouseEvent(wxMouseEvent& ev); + // Aborts dragging mode + void OnMouseCaptureLost(wxMouseCaptureLostEvent& event); + // Adjusts the panes void OnSize(wxSizeEvent& event); @@ -275,16 +278,16 @@ protected: wxWindow* m_windowOne; wxWindow* m_windowTwo; int m_dragMode; - int m_oldX; - int m_oldY; + int m_oldX; // current tracker position if not live mode + int m_oldY; // current tracker position if not live mode int m_sashPosition; // Number of pixels from left or top double m_sashGravity; int m_sashSize; wxSize m_lastSize; int m_requestedSashPosition; int m_sashPositionCurrent; // while dragging - int m_firstX; - int m_firstY; + wxPoint m_ptStart; // mouse position when dragging started + int m_sashStart; // sash position when dragging started int m_minimumPaneSize; wxCursor m_sashCursorWE; wxCursor m_sashCursorNS; @@ -301,7 +304,7 @@ private: DECLARE_DYNAMIC_CLASS(wxSplitterWindow) DECLARE_EVENT_TABLE() - DECLARE_NO_COPY_CLASS(wxSplitterWindow) + wxDECLARE_NO_COPY_CLASS(wxSplitterWindow); }; // ---------------------------------------------------------------------------- @@ -316,12 +319,14 @@ class WXDLLIMPEXP_CORE wxSplitterEvent : public wxNotifyEvent { public: wxSplitterEvent(wxEventType type = wxEVT_NULL, - wxSplitterWindow *splitter = (wxSplitterWindow *)NULL) + wxSplitterWindow *splitter = NULL) : wxNotifyEvent(type) { SetEventObject(splitter); if (splitter) m_id = splitter->GetId(); } + wxSplitterEvent(const wxSplitterEvent& event) + : wxNotifyEvent(event), m_data(event.m_data) { } // SASH_POS_CHANGED methods @@ -366,6 +371,8 @@ public: return m_data.pt.y; } + virtual wxEvent *Clone() const { return new wxSplitterEvent(*this); } + private: friend class WXDLLIMPEXP_FWD_CORE wxSplitterWindow; @@ -380,13 +387,13 @@ private: } pt; // position of double click for DCLICK event } m_data; - DECLARE_DYNAMIC_CLASS_NO_COPY(wxSplitterEvent) + DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSplitterEvent) }; typedef void (wxEvtHandler::*wxSplitterEventFunction)(wxSplitterEvent&); #define wxSplitterEventHandler(func) \ - (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSplitterEventFunction, &func) + wxEVENT_HANDLER_CAST(wxSplitterEventFunction, func) #define wx__DECLARE_SPLITTEREVT(evt, id, fn) \ wx__DECLARE_EVT1(wxEVT_COMMAND_SPLITTER_ ## evt, id, wxSplitterEventHandler(fn))