WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED(wxPoint, WXDLLIMPEXP_PROPGRID)
WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED(wxSize, WXDLLIMPEXP_PROPGRID)
WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED_DUMMY_EQ(wxArrayInt, WXDLLIMPEXP_PROPGRID)
-
-// For wxLongLong and wxULongLong have custom classname << variant
-// implementation for improved flexibility.
-WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED_NO_EQ_NO_GETTER(wxLongLong, WXDLLIMPEXP_PROPGRID)
-WX_PG_IMPLEMENT_VARIANT_DATA_EQ(wxLongLong, WXDLLIMPEXP_PROPGRID)
-WXDLLIMPEXP_PROPGRID wxLongLong& operator << ( wxLongLong &value, const wxVariant &variant )
-{
- wxLongLong_t ll;
- if ( !wxPGVariantToLongLong(variant, &ll) )
- {
- wxFAIL_MSG("Cannot convert to wxLongLong");
- }
- value = ll;
- return value;
-}
-WXDLLIMPEXP_PROPGRID wxLongLong_t& operator << ( wxLongLong_t &value, const wxVariant &variant )
-{
- if ( !wxPGVariantToLongLong(variant, &value) )
- {
- wxFAIL_MSG("Cannot convert to wxLongLong");
- }
- return value;
-}
-
-WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED_NO_EQ_NO_GETTER(wxULongLong, WXDLLIMPEXP_PROPGRID)
-WX_PG_IMPLEMENT_VARIANT_DATA_EQ(wxULongLong, WXDLLIMPEXP_PROPGRID)
-WXDLLIMPEXP_PROPGRID wxULongLong& operator << ( wxULongLong &value, const wxVariant &variant )
-{
- wxULongLong_t ull;
- if ( !wxPGVariantToULongLong(variant, &ull) )
- {
- wxFAIL_MSG("Cannot convert to wxULongLong");
- }
- value = ull;
- return value;
-}
-WXDLLIMPEXP_PROPGRID wxULongLong_t& operator << ( wxULongLong_t &value, const wxVariant &variant )
-{
- if ( !wxPGVariantToULongLong(variant, &value) )
- {
- wxFAIL_MSG("Cannot convert to wxULongLong");
- }
- return value;
-}
-
IMPLEMENT_VARIANT_OBJECT_EXPORTED(wxFont, WXDLLIMPEXP_PROPGRID)
-// -----------------------------------------------------------------------
-// wxVariant helpers
-// -----------------------------------------------------------------------
-
-long wxPGVariantToInt( const wxVariant& variant, long defVal )
-{
- if ( variant.IsNull() )
- return defVal;
-
- if ( variant.GetType() == wxS("long") )
- return variant.GetLong();
-
- if ( variant.GetType() == wxS("bool") )
- return variant.GetBool() ? 1 : 0;
-
- if ( variant.GetType() == wxS("wxLongLong") )
- {
- wxLongLong ll;
- ll << variant;
- if ( ll >= LONG_MAX )
- return LONG_MAX;
- else if ( ll <= LONG_MIN )
- return LONG_MIN;
- return ll.ToLong();
- }
-
- long l = defVal;
-
- if ( variant.GetType() == wxPG_VARIANT_TYPE_STRING )
- variant.GetString().ToLong(&l, 0);
-
- return l;
-}
-
-// -----------------------------------------------------------------------
-
-bool wxPGVariantToLongLong( const wxVariant& variant, wxLongLong_t* pResult )
-{
- if ( variant.IsNull() )
- return false;
-
- wxString variantType = variant.GetType();
-
- if ( variantType == wxPG_VARIANT_TYPE_LONG )
- {
- *pResult = variant.GetLong();
- return true;
- }
-
- if ( variantType == wxLongLong_VariantType )
- {
- // NOTE: << operator uses this functions, so we can't use it here
- *pResult = wxLongLongRefFromVariant(variant).GetValue();
- return true;
- }
-
- return false;
-}
-
-// -----------------------------------------------------------------------
-
-bool wxPGVariantToULongLong( const wxVariant& variant, wxULongLong_t* pResult )
-{
- if ( variant.IsNull() )
- return false;
-
- wxString variantType = variant.GetType();
-
- if ( variantType == wxPG_VARIANT_TYPE_LONG )
- {
- *pResult = (unsigned long)variant.GetLong();
- return true;
- }
-
- if ( variantType == wxULongLong_VariantType )
- {
- // NOTE: << operator uses this functions, so we can't use it here
- *pResult = wxULongLongRefFromVariant(variant).GetValue();
- return true;
- }
-
- return false;
-}
-
-// -----------------------------------------------------------------------
-
-bool wxPGVariantToDouble( const wxVariant& variant, double* pResult )
-{
- if ( variant.IsNull() )
- return false;
-
- wxString variantType = variant.GetType();
-
- if ( variantType == wxPG_VARIANT_TYPE_DOUBLE )
- {
- *pResult = variant.GetDouble();
- return true;
- }
-
- if ( variantType == wxPG_VARIANT_TYPE_LONG )
- {
- *pResult = (double)variant.GetLong();
- return true;
- }
-
- if ( variantType == wxLongLong_VariantType )
- {
- wxLongLong ll;
- ll << variant;
- *pResult = ll.ToDouble();
- return true;
- }
-
- if ( variantType == wxPG_VARIANT_TYPE_STRING )
- if ( variant.GetString().ToDouble(pResult) )
- return true;
-
- return false;
-}
-
// -----------------------------------------------------------------------
// wxPGPropArgCls
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
-void wxPropertyGridInterface::SetPropertyValueUnspecified( wxPGPropArg id )
-{
- wxPG_PROP_ARG_CALL_PROLOG()
- wxPropertyGrid* propGrid = p->GetGridIfDisplayed();
- if ( propGrid )
- propGrid->DoSetPropertyValueUnspecified(p);
- else
- p->GetParentState()->DoSetPropertyValueUnspecified(p);
-}
-
-// -----------------------------------------------------------------------
-
void wxPropertyGridInterface::ClearModifiedStatus()
{
unsigned int pageIndex = 0;
wxPG_PROP_ARG_CALL_PROLOG()
if ( p )
- {
p->SetValue(value);
- wxPropertyGrid* propGrid = p->GetGridIfDisplayed();
- if ( propGrid )
- propGrid->DrawItemAndValueRelated( p );
-
- }
}
// -----------------------------------------------------------------------
{
wxPG_PROP_ARG_CALL_PROLOG()
- if ( m_pState->DoSetPropertyValueString(p,value) )
- {
- wxPropertyGrid* propGrid = p->GetGridIfDisplayed();
- if ( propGrid )
- propGrid->DrawItemAndValueRelated( p );
- }
+ if ( p )
+ m_pState->DoSetPropertyValueString(p, value);
}
// -----------------------------------------------------------------------