/** @}
*/
+/** 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);
+
// -----------------------------------------------------------------------
/**
/**
Enables or disables (shows/hides) categories according to parameter
enable.
+
+ @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.
*/
bool EnableCategories( bool enable );
*/
wxColour GetSelectionForegroundColour() const;
+ /**
+ Returns the property sort function (default is @NULL).
+
+ @see SetSortFunction
+ */
+ wxPGSortCallback GetSortFunction() const;
+
/**
Returns current splitter x position.
*/
bool IsFrozen() const;
/**
- When creating custom property editors, connect required editor events to
- this function. For instance:
-
- @code
- control->Connect(control->GetId(), wxEVT_COMMAND_TEXT_UPDATED,
- wxEventHandler(wxPropertyGrid::OnCustomEditorEvent),
- NULL, propgrid);
- @endcode
-
- @remarks You should never need to call this function directly!
-
- @see wxPGEditor::CreateControls(), wxEvtHandler::Connect()
+ Refreshes any active editor control.
*/
- void OnCustomEditorEvent( wxEvent &event );
+ void RefreshEditor();
/**
Redraws given property.
*/
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.
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).
- */
- void Sort();
-
- /**
- Sorts children of a property.
- */
- void SortChildren( wxPGPropArg id );
};
*/
bool CanVeto() const;
- /** Copyer. */
- virtual wxEvent* Clone() const;
-
/**
Returns highest level non-category, non-root parent of property for
which event occurred. Useful when you have nested properties with