]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/propgrid/propgrid.h
Always include sys/time.h and sys/select.h from selectdispatcher.h.
[wxWidgets.git] / include / wx / propgrid / propgrid.h
index 90b8ba90041de9eef71938050cba5be5fc7ae7e2..cda343f9f3539f66301cca47ebfeba976b2d1feb 100644 (file)
@@ -34,8 +34,6 @@ class wxPGComboBox;
 // Global variables
 // -----------------------------------------------------------------------
 
-#ifndef SWIG
-
 // This is required for sharing common global variables.
 class WXDLLIMPEXP_PROPGRID wxPGGlobalVarsClass
 {
@@ -105,7 +103,7 @@ public:
     int HasExtraStyle( int style ) const { return (m_extraStyle & style); }
 };
 
-extern WXDLLIMPEXP_PROPGRID wxPGGlobalVarsClass* wxPGGlobalVars;
+extern WXDLLIMPEXP_DATA_PROPGRID(wxPGGlobalVarsClass*) wxPGGlobalVars;
 
 #define wxPGVariant_EmptyString     (wxPGGlobalVars->m_vEmptyString)
 #define wxPGVariant_Zero            (wxPGGlobalVars->m_vZero)
@@ -119,8 +117,6 @@ extern WXDLLIMPEXP_PROPGRID wxPGGlobalVarsClass* wxPGGlobalVars;
 // then the built-in module system won't pick this one up.  Add it manually.
 WXDLLIMPEXP_PROPGRID void wxPGInitResourceModule();
 
-#endif // !SWIG
-
 // -----------------------------------------------------------------------
 
 /** @section propgrid_window_styles wxPropertyGrid Window Styles
@@ -154,8 +150,12 @@ wxPG_ALPHABETIC_MODE                = (wxPG_HIDE_CATEGORIES|wxPG_AUTO_SORT),
 */
 wxPG_BOLD_MODIFIED                  = 0x00000040,
 
-/** When wxPropertyGrid is resized, splitter moves to the center. This
-    behavior stops once the user manually moves the splitter.
+/** Using this style, the column splitters move automatically based on column
+    proportions (default is equal proportion for every column). This behavior
+    stops once the user manually moves a splitter, and returns when a
+    splitter is double-clicked.
+
+    @see wxPropertyGridInterface::SetColumnProportion().
 */
 wxPG_SPLITTER_AUTO_CENTER           = 0x00000080,
 
@@ -529,8 +529,6 @@ enum wxPG_SET_SPLITTER_POSITION_SPLITTER_FLAGS
 
 // -----------------------------------------------------------------------
 
-#ifndef SWIG
-
 // Internal flags
 #define wxPG_FL_INITIALIZED                 0x0001
 // Set when creating editor controls if it was clicked on.
@@ -583,9 +581,7 @@ enum wxPG_SET_SPLITTER_POSITION_SPLITTER_FLAGS
 // Prevents RecalculateVirtualSize re-entrancy
 #define wxPG_FL_RECALCULATING_VIRTUAL_SIZE  0x80000000
 
-#endif // #ifndef SWIG
-
-#if !defined(__wxPG_SOURCE_FILE__) && !defined(SWIG)
+#if !defined(__wxPG_SOURCE_FILE__)
     // Reduce compile time, but still include in user app
     #include "wx/propgrid/props.h"
 #endif
@@ -739,11 +735,12 @@ public:
 
     /**
         Centers the splitter.
-
-        If argument is true, automatic splitter centering is enabled (only
-        applicapple if style wxPG_SPLITTER_AUTO_CENTER was defined).
+        
+        @param enableAutoResizing
+            If @true, automatic column resizing is enabled (only applicapple
+            if window style wxPG_SPLITTER_AUTO_CENTER is used).
     */
-    void CenterSplitter( bool enable_auto_centering = false );
+    void CenterSplitter( bool enableAutoResizing = false );
 
     /** Deletes all properties.
     */
@@ -941,9 +938,13 @@ public:
     /** Returns current selection text colour. */
     wxColour GetSelectionForegroundColour() const { return m_colSelFore; }
 
-    /** Returns current splitter x position. */
-    int GetSplitterPosition() const
-        { return m_pState->DoGetSplitterPosition(0); }
+    /**
+        Returns current splitter x position.
+    */
+    int GetSplitterPosition( unsigned int splitterIndex = 0 ) const
+    {
+        return m_pState->DoGetSplitterPosition(splitterIndex);
+    }
 
     /** Returns wxTextCtrl active in currently selected property, if any. Takes
         into account wxOwnerDrawnComboBox.
@@ -1007,7 +1008,6 @@ public:
     */
     virtual void RefreshProperty( wxPGProperty* p );
 
-#ifndef SWIG
     /** Registers a new editor class.
         @return
         Pointer to the editor class instance that should be used.
@@ -1021,12 +1021,22 @@ public:
     static wxPGEditor* DoRegisterEditorClass( wxPGEditor* editorClass,
                                               const wxString& editorName,
                                               bool noDefCheck = false );
-#endif
 
     /** Resets all colours to the original system values.
     */
     void ResetColours();
 
+    /**
+        Resets column sizes and splitter positions, based on proportions.
+
+        @param enableAutoResizing
+            If @true, automatic column resizing is enabled (only applicapple
+            if window style wxPG_SPLITTER_AUTO_CENTER is used).
+
+        @see wxPropertyGridInterface::SetColumnProportion()
+    */
+    void ResetColumnSizes( bool enableAutoResizing = false );
+
     /**
         Selects a property.
         Editor widget is automatically created, but not focused unless focus is
@@ -1451,8 +1461,6 @@ public:
     // Events from editor controls are forward to this function
     void HandleCustomEditorEvent( wxEvent &event );
 
-#ifndef SWIG
-
     /**
         Generates contents for string dst based on the contents of
         wxArrayString src.
@@ -1800,6 +1808,10 @@ protected:
     /** Appearance of a unspecified value cell. */
     wxPGCell            m_unspecifiedAppearance;
 
+    /** List of properties to be deleted/removed in idle event handler. */
+    wxArrayPGProperty   m_deletedProperties;
+    wxArrayPGProperty   m_removedProperties;
+
     //
     // Temporary values
     //
@@ -2129,7 +2141,6 @@ private:
     bool ButtonTriggerKeyTest( int action, wxKeyEvent& event );
 
     DECLARE_EVENT_TABLE()
-#endif // #ifndef SWIG
 };
 
 // -----------------------------------------------------------------------
@@ -2137,7 +2148,6 @@ private:
 // Bunch of inlines that need to resolved after all classes have been defined.
 //
 
-#ifndef SWIG
 inline bool wxPropertyGridPageState::IsDisplayed() const
 {
     return ( this == m_pPropGrid->GetState() );
@@ -2147,9 +2157,8 @@ inline unsigned int wxPropertyGridPageState::GetActualVirtualHeight() const
 {
     return DoGetRoot()->GetChildrenHeight(GetGrid()->GetRowHeight());
 }
-#endif
 
-wxString wxPGProperty::GetHintText() const
+inline wxString wxPGProperty::GetHintText() const
 {
     wxVariant vHintText = GetAttribute(wxPGGlobalVars->m_strHint);
 
@@ -2284,10 +2293,10 @@ public:
 
     /** Constructor. */
     wxPropertyGridEvent(wxEventType commandType=0, int id=0);
-#ifndef SWIG
+
     /** Copy constructor. */
     wxPropertyGridEvent(const wxPropertyGridEvent& event);
-#endif
+
     /** Destructor. */
     ~wxPropertyGridEvent();
 
@@ -2397,7 +2406,6 @@ public:
         m_validationInfo->SetFailureMessage( message );
     }
 
-#ifndef SWIG
     wxPGVFBFlags GetValidationFailureBehavior() const
     {
         wxASSERT( GetEventType() == wxEVT_PG_CHANGING );
@@ -2455,8 +2463,6 @@ private:
 
     bool                m_canVeto;
     bool                m_wasVetoed;
-
-#endif
 };