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:
@@ -126,29 +126,26 @@ 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");
|
||||||
{
|
|
||||||
wxVariant useValue = propgrid->GetUncommittedPropertyValue();
|
|
||||||
|
|
||||||
wxFontData fontData;
|
wxFontData fontData;
|
||||||
fontData << useValue;
|
fontData << value;
|
||||||
|
|
||||||
fontData.SetInitialFont(fontData.GetChosenFont());
|
fontData.SetInitialFont(fontData.GetChosenFont());
|
||||||
|
|
||||||
wxFontDialog dlg(propgrid, fontData);
|
wxFontDialog dlg(pg->GetPanel(), fontData);
|
||||||
|
if ( !m_dlgTitle.empty() )
|
||||||
|
{
|
||||||
|
dlg.SetTitle(m_dlgTitle);
|
||||||
|
}
|
||||||
|
|
||||||
if ( dlg.ShowModal() == wxID_OK )
|
if ( dlg.ShowModal() == wxID_OK )
|
||||||
{
|
{
|
||||||
wxVariant variant;
|
value << dlg.GetFontData();
|
||||||
variant << dlg.GetFontData();
|
|
||||||
SetValueInEvent( variant );
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user