/**
Returns pointer to the name of the editor. For example,
- wxPGEditor_TextCtrl has name "TextCtrl". This method is autogenerated
- for custom editors.
+ wxPGEditor_TextCtrl has name "TextCtrl". If you dont' need to access
+ your custom editor by string name, then you do not need to implement
+ this function.
*/
- virtual wxString GetName() const = 0;
+ virtual wxString GetName() const;
/**
Instantiates editor controls.
/**
Returns pointer to the name of the editor. For example,
- wxPGEditor_TextCtrl has name "TextCtrl".
+ wxPGEditor_TextCtrl has name "TextCtrl". If you dont' need to access
+ your custom editor by string name, then you do not need to implement
+ this function.
*/
- virtual wxString GetName() const = 0;
+ virtual wxString GetName() const;
/**
Instantiates editor controls.
wxSampleMultiButtonEditor() {}
virtual ~wxSampleMultiButtonEditor() {}
- virtual wxString GetName() const { return "SampleMultiButtonEditor"; }
-
virtual wxPGWindowList CreateControls( wxPropertyGrid* propGrid,
wxPGProperty* property,
const wxPoint& pos,
{
}
+wxString wxPGEditor::GetName() const
+{
+ return GetClassInfo()->GetClassName();
+}
+
void wxPGEditor::DrawValue( wxDC& dc, const wxRect& rect, wxPGProperty* property, const wxString& text ) const
{
if ( !property->IsValueUnspecified() )
// Existing editor under this name?
wxPGHashMapS2P::iterator vt_it = wxPGGlobalVars->m_mapEditorClasses.find(name);
+ if ( vt_it != wxPGGlobalVars->m_mapEditorClasses.end() )
+ {
+ // If this name was already used, try class name.
+ name = editorClass->GetClassInfo()->GetClassName();
+ vt_it = wxPGGlobalVars->m_mapEditorClasses.find(name);
+ }
+
wxCHECK_MSG( vt_it == wxPGGlobalVars->m_mapEditorClasses.end(),
(wxPGEditor*) vt_it->second,
"Editor with given name was already registered" );