void wxFontDataProperty::OnSetValue() { if ( !(&wxFontDataFromVariant(m_value)) ) { wxFont* pFont = &wxFontFromVariant(m_value); if ( pFont ) { wxFontData fontData; fontData.SetChosenFont(*pFont); m_value = WXVARIANT(fontData); } else { wxFAIL_MSG(wxT("Value to wxFontDataProperty must be eithe wxFontData or wxFont")); } } // Set m_value to wxFont so that wxFontProperty methods will work // correctly. m_value_wxFontData = m_value; wxFontData& fontData = wxFontDataFromVariant(m_value_wxFontData); wxFont font = fontData.GetChosenFont(); if ( !font.Ok() ) font = wxFont(10,wxSWISS,wxNORMAL,wxNORMAL); m_value = WXVARIANT(font); }
bool wxFontDataProperty::ValidateValue( wxVariant& value ) const { if ( &wxFontDataFromVariant(value) ) return true; wxFont* pFont = &wxFontFromVariant(value); if ( pFont ) { wxFontData fontData; fontData.SetChosenFont(*pFont); value = WXVARIANT(fontData); return true; } wxFAIL_MSG(wxT("Value to wxFontDataProperty must be eithe wxFontData or wxFont")); return false; }
void wxFontDataProperty::ChildChanged( wxVariant& thisValue, int childIndex, wxVariant& childValue ) const { wxFontData& fontData = wxFontDataFromVariant(thisValue); wxColour col; wxVariant variant; switch ( childIndex ) { case 6: col << childValue; fontData.SetColour( col ); break; default: // Transfer between subset to superset. variant = WXVARIANT(fontData.GetChosenFont()); wxFontProperty::ChildChanged( variant, childIndex, childValue ); fontData.SetChosenFont(wxFontFromVariant(variant)); } }