Reverted to old wxPG_AUTO_SORT behavior in which only root properties and immediate children of categories are (automatically) sorted; Added Sort flags; Applied slight optimization when sorting on propgridmanager page change

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57975 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2009-01-10 15:16:03 +00:00
parent fa8224a15a
commit 0eb877f2c1
7 changed files with 73 additions and 31 deletions

View File

@@ -387,7 +387,12 @@ wxPG_INC_ATTRIBUTES = 0x00000040,
wxPG_RECURSE_STARTS = 0x00000080,
/** Force value change. */
wxPG_FORCE = 0x00000100
wxPG_FORCE = 0x00000100,
/** Only sort categories and their immediate children.
Sorting done by wxPG_AUTO_SORT option uses this.
*/
wxPG_SORT_TOP_LEVEL_ONLY = 0x00000200
};

View File

@@ -1227,11 +1227,17 @@ public:
void SetValidationFailureBehavior( int vfbFlags );
/**
Sorts all properties.
Sorts all properties recursively.
@param flags
This can contain any of the following options:
wxPG_SORT_TOP_LEVEL_ONLY: Only sort categories and their
immediate children. Sorting done by wxPG_AUTO_SORT option
uses this.
@see SortChildren, wxPropertyGrid::SetSortFunction
*/
void Sort();
void Sort( int flags = 0 );
/**
Sorts children of a property.
@@ -1239,15 +1245,16 @@ public:
@param id
Name or pointer to a property.
@param recursively
If @true, then children are sorted recursively.
@param flags
This can contain any of the following options:
wxPG_RECURSE: Sorts recursively.
@see Sort, wxPropertyGrid::SetSortFunction
*/
void SortChildren( wxPGPropArg id, bool recursively = false )
void SortChildren( wxPGPropArg id, int flags = 0 )
{
wxPG_PROP_ARG_CALL_PROLOG()
m_pState->DoSortChildren(p, recursively);
m_pState->DoSortChildren(p, flags);
}
#ifdef SWIG

View File

@@ -613,8 +613,10 @@ public:
/** Set virtual width for this particular page. */
void SetVirtualWidth( int width );
void DoSortChildren( wxPGProperty* p, bool recursively = false );
void DoSort();
void DoSortChildren( wxPGProperty* p, int flags = 0 );
void DoSort( int flags = 0 );
bool PrepareAfterItemsAdded();
void SetSelection( wxPGProperty* p ) { m_selected = p; }