#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
}