]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/propgrid/propgridpagestate.h
Extract OS X non-GUI event loop in a separate header.
[wxWidgets.git] / include / wx / propgrid / propgridpagestate.h
index c38413477e23d1480145bbb4281f83935fdcb810..c25b9e5bac2019f37166022af3584f2295d4b1b1 100644 (file)
@@ -6,12 +6,14 @@
 // Created:     2008-08-24
 // RCS-ID:      $Id$
 // Copyright:   (c) Jaakko Salli
 // Created:     2008-08-24
 // RCS-ID:      $Id$
 // Copyright:   (c) Jaakko Salli
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_PROPGRID_PROPGRIDPAGESTATE_H_
 #define _WX_PROPGRID_PROPGRIDPAGESTATE_H_
 
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_PROPGRID_PROPGRIDPAGESTATE_H_
 #define _WX_PROPGRID_PROPGRIDPAGESTATE_H_
 
+#include "wx/defs.h"
+
 #if wxUSE_PROPGRID
 
 #include "wx/propgrid/property.h"
 #if wxUSE_PROPGRID
 
 #include "wx/propgrid/property.h"
@@ -379,7 +381,6 @@ public:
         m_pIt = it.m_pIt;
         m_pIt->IncRef();
     }
         m_pIt = it.m_pIt;
         m_pIt->IncRef();
     }
-#ifndef SWIG
     const wxPGVIterator& operator=( const wxPGVIterator& it )
     {
         if (this != &it)
     const wxPGVIterator& operator=( const wxPGVIterator& it )
     {
         if (this != &it)
@@ -390,7 +391,6 @@ public:
         }
         return *this;
     }
         }
         return *this;
     }
-#endif
     void Next() { m_pIt->Next(); }
     bool AtEnd() const { return m_pIt->m_it.AtEnd(); }
     wxPGProperty* GetProperty() const { return m_pIt->m_it.GetProperty(); }
     void Next() { m_pIt->Next(); }
     bool AtEnd() const { return m_pIt->m_it.AtEnd(); }
     wxPGProperty* GetProperty() const { return m_pIt->m_it.GetProperty(); }
@@ -400,9 +400,6 @@ protected:
 
 // -----------------------------------------------------------------------
 
 
 // -----------------------------------------------------------------------
 
-#ifndef SWIG
-// We won't need this class from wxPython
-
 /** @class wxPropertyGridPageState
 
     Contains low-level property page information (properties, column widths,
 /** @class wxPropertyGridPageState
 
     Contains low-level property page information (properties, column widths,
@@ -440,7 +437,7 @@ public:
     void CheckColumnWidths( int widthChange = 0 );
 
     /**
     void CheckColumnWidths( int widthChange = 0 );
 
     /**
-        Override this member function to add custom behavior on property
+        Override this member function to add custom behaviour on property
         deletion.
     */
     virtual void DoDelete( wxPGProperty* item, bool doDelete = true );
         deletion.
     */
     virtual void DoDelete( wxPGProperty* item, bool doDelete = true );
@@ -450,7 +447,7 @@ public:
     wxPGProperty* DoGetItemAtY( int y ) const;
 
     /**
     wxPGProperty* DoGetItemAtY( int y ) const;
 
     /**
-        Override this member function to add custom behavior on property
+        Override this member function to add custom behaviour on property
         insertion.
     */
     virtual wxPGProperty* DoInsert( wxPGProperty* parent,
         insertion.
     */
     virtual wxPGProperty* DoInsert( wxPGProperty* parent,
@@ -463,8 +460,7 @@ public:
     */
     virtual void DoSetSplitterPosition( int pos,
                                         int splitterColumn = 0,
     */
     virtual void DoSetSplitterPosition( int pos,
                                         int splitterColumn = 0,
-                                        bool allPages = false,
-                                        bool fromAutoCenter = false );
+                                        int flags = 0 );
 
     bool EnableCategories( bool enable );
 
 
     bool EnableCategories( bool enable );
 
@@ -479,9 +475,6 @@ public:
         }
     }
 
         }
     }
 
-    /** Enables or disables given property and its subproperties. */
-    bool DoEnableProperty( wxPGProperty* p, bool enable );
-
     /** Returns (precalculated) height of contained visible properties.
     */
     unsigned int GetVirtualHeight() const
     /** Returns (precalculated) height of contained visible properties.
     */
     unsigned int GetVirtualHeight() const
@@ -553,6 +546,15 @@ public:
 
     void DoRemoveFromSelection( wxPGProperty* prop );
 
 
     void DoRemoveFromSelection( wxPGProperty* prop );
 
+    void DoSetColumnProportion( unsigned int column, int proportion );
+
+    int DoGetColumnProportion( unsigned int column ) const
+    {
+        return m_columnProportions[column];
+    }
+
+    void ResetColumnSizes( int setSplitterFlags );
+
     wxPropertyCategory* GetPropertyCategory( const wxPGProperty* p ) const;
 
     wxPGProperty* GetPropertyByLabel( const wxString& name,
     wxPropertyCategory* GetPropertyCategory( const wxPGProperty* p ) const;
 
     wxPGProperty* GetPropertyByLabel( const wxString& name,
@@ -588,7 +590,7 @@ public:
 
         @param pt
             Logical coordinates in the virtual grid space. Use
 
         @param pt
             Logical coordinates in the virtual grid space. Use
-            wxScrolledWindow::CalcUnscrolledPosition() if you need to
+            wxScrolled<T>::CalcUnscrolledPosition() if you need to
             translate a scrolled position into a logical one.
     */
     wxPropertyGridHitTestResult HitTest( const wxPoint& pt ) const;
             translate a scrolled position into a logical one.
     */
     wxPropertyGridHitTestResult HitTest( const wxPoint& pt ) const;
@@ -669,6 +671,11 @@ public:
 
 protected:
 
 
 protected:
 
+    // Utility to check if two properties are visibly next to each other
+    bool ArePropertiesAdjacent( wxPGProperty* prop1,
+                                wxPGProperty* prop2,
+                                int iterFlags = wxPG_ITERATE_VISIBLE ) const;
+
     int DoGetSplitterPosition( int splitterIndex = 0 ) const;
 
     /** Returns column at x coordinate (in GetGrid()->GetPanel()).
     int DoGetSplitterPosition( int splitterIndex = 0 ) const;
 
     /** Returns column at x coordinate (in GetGrid()->GetPanel()).
@@ -705,6 +712,9 @@ protected:
     /** List of indices of columns the user can edit by clicking it. */
     wxArrayInt                  m_editableColumns;
 
     /** List of indices of columns the user can edit by clicking it. */
     wxArrayInt                  m_editableColumns;
 
+    /** Column proportions */
+    wxArrayInt                  m_columnProportions;
+
     double                      m_fSplitterX;
 
     /** Most recently added category. */
     double                      m_fSplitterX;
 
     /** Most recently added category. */
@@ -733,13 +743,17 @@ protected:
 
     unsigned char               m_vhCalcPending;
 
 
     unsigned char               m_vhCalcPending;
 
+    /** True if splitter has been pre-set by the application. */
+    bool                        m_isSplitterPreSet;
+
+    /** Used to (temporarily) disable splitter centering. */
+    bool                        m_dontCenterSplitter;
+
 private:
     /** Only inits arrays, doesn't migrate things or such. */
     void InitNonCatMode();
 };
 
 private:
     /** Only inits arrays, doesn't migrate things or such. */
     void InitNonCatMode();
 };
 
-#endif // #ifndef SWIG
-
 // -----------------------------------------------------------------------
 
 #endif // wxUSE_PROPGRID
 // -----------------------------------------------------------------------
 
 #endif // wxUSE_PROPGRID