@remarks
- Primary control shall use id wxPG_SUBID1, and secondary (button) control
shall use wxPG_SUBID2.
- - Implementation shoud connect all necessary events to the
- wxPropertyGrid::OnCustomEditorEvent(). For example:
- @code
- control->Connect(control->GetId(), wxEVT_COMMAND_TEXT_UPDATED,
- wxEventHandler(wxPropertyGrid::OnCustomEditorEvent),
- NULL, propgrid);
- @endcode
- OnCustomEditorEvent will then forward events, first to
- wxPGEditor::OnEvent() and then to wxPGProperty::OnEvent().
-
- @see wxPropertyGrid::OnCustomEditorEvent(), wxEvtHandler::Connect()
+ - Unlike in previous version of wxPropertyGrid, it is no longer
+ necessary to call wxEvtHandler::Connect() for interesting editor
+ events. Instead, all events from control are now automatically
+ forwarded to wxPGEditor::OnEvent() and wxPGProperty::OnEvent().
*/
virtual wxPGWindowList CreateControls( wxPropertyGrid* propgrid,
wxPGProperty* property,
virtual void SetValueToUnspecified( wxPGProperty* property,
wxWindow* ctrl ) const = 0;
+ /**
+ Called by property grid to set new appearance for the control.
+ Default implementation sets foreground colour, background colour,
+ font, plus text for wxTextCtrl and wxComboCtrl.
+
+ @param appearance
+ New appearance to be applied.
+
+ @param oldAppearance
+ Previously applied appearance. Used to detect which
+ control attributes need to be changed (e.g. so we only
+ change background colour if really needed).
+
+ @param unspecified
+ @true if the new appearance represents an unspecified
+ property value.
+ */
+ virtual void SetControlAppearance( wxPropertyGrid* pg,
+ wxPGProperty* property,
+ wxWindow* ctrl,
+ const wxPGCell& appearance,
+ const wxPGCell& oldAppearance,
+ bool unspecified ) const;
+
/** Sets control's value specifically from string. */
virtual void SetControlStringValue( wxPGProperty* property,
wxWindow* ctrl, const wxString& txt ) const;
if ( event.GetId() == buttons->GetButtonId(0) )
{
- // Do something when first button is pressed
- return true;
+ // Do something when the first button is pressed
+ // Return true if the action modified the value in editor.
+ ...
}
if ( event.GetId() == buttons->GetButtonId(1) )
{
- // Do something when second button is pressed
- return true;
+ // Do something when the second button is pressed
+ ...
}
if ( event.GetId() == buttons->GetButtonId(2) )
{
- // Do something when third button is pressed
- return true;
+ // Do something when the third button is pressed
+ ...
}
}
return wxPGTextCtrlEditor::OnEvent(propGrid, property, ctrl, event);