// Modified by:
// Created: 01/02/97
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __SPLITTERH_G__
#define __SPLITTERH_G__
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "splitter.h"
#endif
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxSP_3D,
- const wxString& name = "splitter")
+ const wxString& name = wxT("splitter"))
{
Init();
Create(parent, id, pos, size, style, name);
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxSP_3D,
- const wxString& name = "splitter");
+ const wxString& name = wxT("splitter"));
// Gets the only or left/top pane
wxWindow *GetWindow1() const { return m_windowOne; }
protected:
// event handlers
-#ifdef __WXMSW__
+#if defined(__WXMSW__) || defined(__WXMAC__)
void OnSetCursor(wxSetCursorEvent& event);
#endif // wxMSW
// 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;
DECLARE_DYNAMIC_CLASS(wxSplitterWindow)
DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxSplitterWindow)
};
// ----------------------------------------------------------------------------