#include "wx/scrolwin.h"
#include "wx/tooltip.h"
#include "wx/datetime.h"
+#include "wx/recguard.h"
#include "wx/propgrid/property.h"
#include "wx/propgrid/propgridiface.h"
/** @}
*/
-typedef wxByte wxPGVFBFlags;
+// Having this as define instead of wxByte typedef makes things easier for
+// wxPython bindings (ignoring and redefining it in SWIG interface file
+// seemed rather tricky)
+#define wxPGVFBFlags unsigned char
/**
wxPGValidationInfo
#define wxPG_FL_IN_SELECT_PROPERTY 0x00100000
// Set when help string is shown in status bar
#define wxPG_FL_STRING_IN_STATUSBAR 0x00200000
-// Validation failed. Clear on modify event.
-#define wxPG_FL_VALIDATION_FAILED 0x00800000
// Auto sort is enabled (for categorized mode)
#define wxPG_FL_CATMODE_AUTO_SORT 0x01000000
// Set after page has been inserted to manager
/**
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.
*/
/** 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.
*/
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
/**
Returns rectangle that fully contains properties between and including
- p1 and p2.
+ p1 and p2. Rectangle is in virtual scrolled window coordinates.
*/
wxRect GetPropertyRect( const wxPGProperty* p1,
const wxPGProperty* p2 ) const;
/** 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
//
wxPGVFBFlags m_permanentValidationFailureBehavior; // Set by app
+ // DoEditorValidate() recursion guard
+ wxRecursionGuardFlag m_validatingEditor;
+
/** Internal flags - see wxPG_FL_XXX constants. */
wxUint32 m_iFlags;
/** Reloads all non-customized colours from system settings. */
void RegainColours();
- bool DoEditorValidate();
+ virtual bool DoEditorValidate();
// Similar to DoSelectProperty() but also works on columns
// other than 1. Does not active editor if column is not