//----------------------------------------------------------------------------- void Property::OnChange (wxPropertyGridEvent &event) { wxPGProperty *id = event.GetProperty(); PX2_UNUSED(id); const wxString &name = event.GetPropertyName(); std::string stdName = std::string(name); wxVariant variant = event.GetPropertyValue(); if (name != wxString(mName.c_str())) return; if (variant.IsNull()) return; if (!mData) return; if (mType == PT_INT) { *((int*)mData) = wxPGVariantToInt(variant); } else if (mType == PT_FLOAT) { double value = 0; wxPGVariantToDouble(variant, &value); *((float*)mData) = (float)value; } else if (mType == PT_BOOL) { bool value = (bool)(event.GetPropertyValueAsBool()!=0); *((bool*)mData) = value; } else if (mType == PT_BOOLCHECK) { bool value = (bool)(event.GetPropertyValueAsBool()!=0); *((bool*)mData) = value; } else if (PT_COLOR3FLOAT3 == mType) { wxString strColor = event.GetPropertyValueAsString(); wxColor color = StringToColor(strColor); Float3 float3Color((float)color.Red()/255.0f, (float)color.Green()/255.0f, (float)color.Blue()/255.0f); *((Float3*)mData) = float3Color; } else if (PT_FLOAT3 == mType) { *((Float3*)mData) = Float3FromVariant(variant); } else if (mType == PT_STRING) { std::string value; wxString wxValue = event.GetPropertyValueAsString(); value = std::string(wxValue.ToAscii()); *((std::string*)mData) = value; } }
void MaterialPropertyGridPage::propertyChange(wxPropertyGridEvent& event) { wxPGId id = event.GetProperty(); if(id == mReceiveShadowsId) { mMaterial->setReceiveShadows(event.GetPropertyValueAsBool()); } else if(id == mTransparencyShadowsId) { mMaterial->setTransparencyCastsShadows(event.GetPropertyValueAsBool()); } }
void EntityPropertyGridPage::propertyChange(wxPropertyGridEvent& event) { wxPGId id = event.GetProperty(); if(id == mDisplaySkeleton) { mEntity->setDisplaySkeleton(event.GetPropertyValueAsBool()); } }