Update wxFontDataProperty to conform to the current design of wxPG properties with editor dialog

Since wxFontDataProperty derives from wxFontProperty, it should re-implement DisplayEditorDialog() to work as expected.
This commit is contained in:
Artur Wieczorek
2019-07-02 21:34:31 +02:00
parent a3ec84fdd1
commit 30630d4ea5
2 changed files with 18 additions and 20 deletions

View File

@@ -126,28 +126,25 @@ wxVariant wxFontDataProperty::DoGetValue() const
return m_value_wxFontData; return m_value_wxFontData;
} }
// Must re-create font dialog displayer. bool wxFontDataProperty::DisplayEditorDialog(wxPropertyGrid* pg, wxVariant& value)
bool wxFontDataProperty::OnEvent( wxPropertyGrid* propgrid,
wxWindow* WXUNUSED(primary), wxEvent& event )
{ {
if ( propgrid->IsMainButtonEvent(event) ) wxASSERT_MSG(value.IsType(wxS("wxFontData")), "Function called for incompatible property");
wxFontData fontData;
fontData << value;
fontData.SetInitialFont(fontData.GetChosenFont());
wxFontDialog dlg(pg->GetPanel(), fontData);
if ( !m_dlgTitle.empty() )
{ {
wxVariant useValue = propgrid->GetUncommittedPropertyValue(); dlg.SetTitle(m_dlgTitle);
}
wxFontData fontData; if ( dlg.ShowModal() == wxID_OK )
fontData << useValue; {
value << dlg.GetFontData();
fontData.SetInitialFont(fontData.GetChosenFont()); return true;
wxFontDialog dlg(propgrid, fontData);
if ( dlg.ShowModal() == wxID_OK )
{
wxVariant variant;
variant << dlg.GetFontData();
SetValueInEvent( variant );
return true;
}
} }
return false; return false;
} }

View File

@@ -38,9 +38,10 @@ public:
int childIndex, int childIndex,
wxVariant& childValue ) const wxOVERRIDE; wxVariant& childValue ) const wxOVERRIDE;
virtual void RefreshChildren() wxOVERRIDE; virtual void RefreshChildren() wxOVERRIDE;
virtual bool OnEvent( wxPropertyGrid* propgrid, wxWindow* primary, wxEvent& event ) wxOVERRIDE;
protected: protected:
virtual bool DisplayEditorDialog(wxPropertyGrid* pg, wxVariant& value) wxOVERRIDE;
// Value must be stored as variant - otherwise it will be // Value must be stored as variant - otherwise it will be
// decreffed to oblivion on GetValue(). // decreffed to oblivion on GetValue().
wxVariant m_value_wxFontData; wxVariant m_value_wxFontData;