// get either width or height depending on the split mode
int GetWindowSize() const;
-
- // set m_sashPosition w/ safeguards
- void DoSetSashPosition(int sashPos);
+
+ // convert the user specified sash position which may be > 0 (as is), < 0
+ // (specifying the size of the right pane) or 0 (use default) to the real
+ // position to be passed to DoSetSashPosition()
+ int ConvertSashPosition(int sashPos) const;
+
+ // set the real sash position, sashPos here must be positive
+ //
+ // returns TRUE if the sash position has been changed, FALSE otherwise
+ bool DoSetSashPosition(int sashPos);
+
+ // set the sash position and send an event about it having been changed
+ void SetSashPositionAndNotify(int sashPos);
+
+ // set the cursor appropriate for the current split mode
+ void SetResizeCursor();
wxSplitMode m_splitMode;
bool m_permitUnsplitAlways;
int m_sashSize; // Sash width or height
int m_sashPosition; // Number of pixels from left or top
int m_requestedSashPosition;
+ int m_sashPositionCurrent; // while dragging
int m_firstX;
int m_firstY;
int m_minimumPaneSize;
- wxCursor* m_sashCursorWE;
- wxCursor* m_sashCursorNS;
+ wxCursor m_sashCursorWE;
+ wxCursor m_sashCursorNS;
wxPen* m_sashTrackerPen;
wxPen* m_lightShadowPen;
wxPen* m_mediumShadowPen;