]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/splitter.h
Applied patch [ 619705 ] Fixes wxApp::GetComCtl32Version
[wxWidgets.git] / include / wx / generic / splitter.h
index fabcbfcf8af0de8d54c326c86e0dbd191f4c6d84..c11307d69afd4900880baf6bf575ac4663ea9eb3 100644 (file)
@@ -5,14 +5,14 @@
 // 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
 
@@ -71,7 +71,7 @@ public:
                      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);
@@ -83,7 +83,7 @@ public:
                      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; }
@@ -215,7 +215,7 @@ public:
 
 protected:
     // event handlers
-#ifdef __WXMSW__
+#if defined(__WXMSW__) || defined(__WXMAC__)
     void OnSetCursor(wxSetCursorEvent& event);
 #endif // wxMSW
 
@@ -237,9 +237,22 @@ protected:
 
     // 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;
@@ -253,11 +266,12 @@ protected:
     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;
@@ -271,6 +285,7 @@ private:
 
     DECLARE_DYNAMIC_CLASS(wxSplitterWindow)
     DECLARE_EVENT_TABLE()
+    DECLARE_NO_COPY_CLASS(wxSplitterWindow)
 };
 
 // ----------------------------------------------------------------------------