#include <mxsCustomAttributes.h>
Public Member Functions |
|
FindCustAttribOwnerDEP (CustAttrib *ca) | |
int | proc (ReferenceMaker *rmaker) |
This is the method called by system from
ReferenceTarget::DoEnumDependentsImpl().
|
|
Public Attributes |
|
ReferenceMaker * | rm |
CustAttrib * | targ_ca |
FindCustAttribOwnerDEP | ( | CustAttrib * | ca | ) | [inline] |
int proc | ( | ReferenceMaker * | rmaker | ) | [inline, virtual] |
This is the method called by system from ReferenceTarget::DoEnumDependentsImpl().
rmaker | - A pointer to the reference maker |
Implements DependentEnumProc.
{ if (rmaker == targ_ca) return DEP_ENUM_CONTINUE; // russom - 08/27/04 - 579271 // Make sure we only eval real dependencies. // Note: We might need to also add a SKIP for restore class ids, but that // is not part of this defect fix. if( !rmaker->IsRealDependency(targ_ca) ) return DEP_ENUM_SKIP; if (rmaker->ClassID() == CUSTATTRIB_CONTAINER_CLASS_ID ) { ICustAttribContainer* cac = (ICustAttribContainer*)rmaker; Animatable* owner = cac->GetOwner(); if (owner) { SClass_ID sid = owner->SuperClassID(); if (sid != MAKEREF_REST_CLASS_ID && sid != MAXSCRIPT_WRAPPER_CLASS_ID && sid != DELREF_REST_CLASS_ID) { for (int j = 0; j < cac->GetNumCustAttribs(); j++) { CustAttrib* ca = cac->GetCustAttrib(j); if (ca == targ_ca) { rm = (ReferenceMaker*)owner; return DEP_ENUM_HALT; } } } } } return DEP_ENUM_SKIP; // only need to look at immediate dependents }