]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/splitter.h
fixing overrelease and out-of-bounds write, fixes #13725
[wxWidgets.git] / include / wx / generic / splitter.h
index 39df924f0c5fbd95af67e5f622e5a3de502f9af0..f916423a2a4f5991f16342a79613983451bdee4f 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        wx/splitter.h
+// Name:        wx/generic/splitter.h
 // Purpose:     wxSplitterWindow class
 // Author:      Julian Smart
 // Modified by:
@@ -49,7 +49,7 @@ enum
 //    to prevent flickering. (WS_CLIPCHILDREN doesn't work in all cases so can't be
 //    standard).
 
-class WXDLLIMPEXP_CORE wxSplitterWindow: public wxWindow
+class WXDLLIMPEXP_CORE wxSplitterWindow: public wxNavigationEnabled<wxWindow>
 {
 public:
 
@@ -136,8 +136,14 @@ public:
     // Sets the border size
     void SetBorderSize(int WXUNUSED(width)) { }
 
-    // Gets the sash size
+    // Hide or show the sash and test whether it's currently hidden.
+    void SetSashInvisible(bool invisible = true);
+    bool IsSashInvisible() const { return HasFlag(wxSP_NOSASH); }
+
+    // Gets the current sash size which may be 0 if it's hidden and the default
+    // sash size.
     int GetSashSize() const;
+    int GetDefaultSashSize() const;
 
     // Gets the border size
     int GetBorderSize() const;
@@ -211,9 +217,6 @@ public:
     // Resizes subwindows
     virtual void SizeWindows();
 
-    void SetNeedUpdating(bool needUpdating) { m_needUpdating = needUpdating; }
-    bool GetNeedUpdating() const { return m_needUpdating ; }
-
 #ifdef __WXMAC__
     virtual bool MacClipGrandChildren() const { return true ; }
 #endif
@@ -297,11 +300,8 @@ protected:
     bool        m_needUpdating:1;
     bool        m_permitUnsplitAlways:1;
     bool        m_isHot:1;
-    bool        m_checkRequestedSashPosition:1;
 
 private:
-    WX_DECLARE_CONTROL_CONTAINER();
-
     DECLARE_DYNAMIC_CLASS(wxSplitterWindow)
     DECLARE_EVENT_TABLE()
     wxDECLARE_NO_COPY_CLASS(wxSplitterWindow);