Added wxPropertyGrid::SetSortFunction(); moved Sort() and SortChildren() to wxPropertyGridInterface; default sorting is now case-insensitive

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2009-01-07 18:53:09 +00:00
parent 5f8704a6e3
commit 433969811e
10 changed files with 286 additions and 63 deletions

View File

@@ -271,6 +271,27 @@ enum wxPG_KEYBOARD_ACTIONS
/** @}
*/
/** This callback function is used for sorting properties.
Call wxPropertyGrid::SetSortFunction() to set it.
Sort function should return a value greater than 0 if position of p1 is
after p2. So, for instance, when comparing property names, you can use
following implementation:
@code
int MyPropertySortFunction(wxPropertyGrid* propGrid,
wxPGProperty* p1,
wxPGProperty* p2)
{
return p1->GetBaseName().compare( p2->GetBaseName() );
}
@endcode
*/
typedef int (*wxPGSortCallback)(wxPropertyGrid* propGrid,
wxPGProperty* p1,
wxPGProperty* p2);
// -----------------------------------------------------------------------
/**
@@ -621,6 +642,13 @@ public:
*/
wxColour GetSelectionForegroundColour() const;
/**
Returns the property sort function (default is @NULL).
@see SetSortFunction
*/
wxPGSortCallback GetSortFunction() const;
/**
Returns current splitter x position.
*/
@@ -772,6 +800,33 @@ public:
*/
void SetSelectionTextColour(const wxColour& col);
/**
Sets the property sorting function.
@param sortFunction
The sorting function to be used. It should return a value greater
than 0 if position of p1 is after p2. So, for instance, when
comparing property names, you can use following implementation:
@code
int MyPropertySortFunction(wxPropertyGrid* propGrid,
wxPGProperty* p1,
wxPGProperty* p2)
{
return p1->GetBaseName().compare( p2->GetBaseName() );
}
@endcode
@remarks
Default property sort function sorts properties by their labels
(case-insensitively).
@see GetSortFunction, wxPropertyGridInterface::Sort,
wxPropertyGridInterface::SortChildren
*/
void SetSortFunction( wxPGSortCallback sortFunction );
/**
Sets x coordinate of the splitter.
@@ -801,24 +856,6 @@ public:
Shows an brief error message that is related to a property.
*/
void ShowPropertyError( wxPGPropArg id, const wxString& msg );
/**
Sorts all items at all levels (except private children).
@remarks This functions deselects selected property, if any. Validation
failure option wxPG_VFB_STAY_IN_PROPERTY is not respected, ie.
selection is cleared even if editor had invalid value.
*/
void Sort();
/**
Sorts children of a property.
@remarks This functions deselects selected property, if any. Validation
failure option wxPG_VFB_STAY_IN_PROPERTY is not respected, ie.
selection is cleared even if editor had invalid value.
*/
void SortChildren( wxPGPropArg id );
};