/** * Initializes the property tree with the data from the currently selected material. */ void MaterialPropTreeView::RefreshProperties() { MaterialDefList* propList = MaterialDefManager::GetMaterialDefs(currentListType); if(!propList) return; MaterialDoc* materialDoc = materialDocManager->GetCurrentMaterialDoc(); for(int i = 0; i < propList->Num(); i++) { switch((*propList)[i]->type) { case MaterialDef::MATERIAL_DEF_TYPE_BOOL: { bool val = materialDoc->GetAttributeBool(currentStage, (*propList)[i]->dictName); CPropTreeItemCheck* item = (CPropTreeItemCheck*)m_Tree.FindItem((*propList)[i]->GetViewData(PROP_TREE_VIEW)); item->SetCheckState(val ? TRUE:FALSE); } break; case MaterialDef::MATERIAL_DEF_TYPE_STRING: { idStr val = materialDoc->GetAttribute(currentStage, (*propList)[i]->dictName); CPropTreeItemEdit* item = (CPropTreeItemEdit*)m_Tree.FindItem((*propList)[i]->GetViewData(PROP_TREE_VIEW)); item->SetItemValue((LPARAM)val.c_str()); } break; } } Invalidate(); }