THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/05/2007 at 11:39, xxxxxxxx wrote:
GetDEnabling() allows you to change the state from editable to non-editable (greyed-out). This is a virtual method that you add to your data class (see NodeData in the docs) - you can't 'call' it as it is handled by Cinema 4D internally.
Inside, you return TRUE (enable) or FALSE (disable) based upon the description element ID:
/ NodeData.GetDEnabling
//*---------------------------------------------------------------------------*
Bool IPPFigure::GetDEnabling(GeListNode* node, const DescID& id, GeData& t_data, LONG flags, const BaseContainer* itemdesc)
//*---------------------------------------------------------------------------*
{
if (!node) return FALSE;
switch (id[0].id)
{
// Quick BodyPart Traversal Buttons
case IPPFIGURE_BP_UP:
return (upBP_ID >= 0L);
case IPPFIGURE_BP_DOWN:
return (downBP_ID >= 0L);
case IPPFIGURE_BP_PREV:
return (prevBP_ID >= 0L);
case IPPFIGURE_BP_NEXT:
return (nextBP_ID >= 0L);
// Assorted
case IPPFIGURE_COPYMORPHS:
{
BaseContainer* bc = ((BaseTag* )node)->GetDataInstance();
if (!bc) return TRUE;
if (bc->GetBool(IPPFIGURE_CONFORMED)) return TRUE;
return FALSE;
}
case IPPFIGURE_BULGEFACTOR:
{
BaseContainer* bc = ((BaseTag* )node)->GetDataInstance();
if (!bc) return TRUE;
if (bc->GetBool(IPPFIGURE_BULGE)) return TRUE;
return FALSE;
}
case BODYPART_BULGEFACTOR:
{
BaseContainer* bc = ((BaseTag* )node)->GetDataInstance();
if (!bc) return TRUE;
if (bc->GetBool(BODYPART_BULGE)) return TRUE;
return FALSE;
}
case IPPFIGURE_POLYCOUNT:
case IPPFIGURE_UNDOS:
return FALSE;
default:
break;
}
return SUPER::GetDEnabling(node, id, t_data, flags, itemdesc);
}
You didn't try this? ;)