diff options
| -rw-r--r-- | DefCore.txt | 4 | ||||
| -rw-r--r-- | Graphics.png | bin | 0 -> 167 bytes | |||
| -rw-r--r-- | Script.c | 35 |
3 files changed, 39 insertions, 0 deletions
diff --git a/DefCore.txt b/DefCore.txt new file mode 100644 index 0000000..22fbfd6 --- /dev/null +++ b/DefCore.txt @@ -0,0 +1,4 @@ +[DefCore] +id=CM7I +Name=ContextmenuEntryHelper +Category=C4D_StaticBack diff --git a/Graphics.png b/Graphics.png Binary files differnew file mode 100644 index 0000000..94ed211 --- /dev/null +++ b/Graphics.png diff --git a/Script.c b/Script.c new file mode 100644 index 0000000..3d4acf7 --- /dev/null +++ b/Script.c @@ -0,0 +1,35 @@ +#strict 2 + +static ContextMenuEntry_Helper; +static const DT_EffectContext_Helper = CM7I; + +global func AddContextMenuEntry(callback, condition, object target) +{ + ContextMenuEntry_Helper = ContextMenuEntry_Helper || CreateObject(CM7I); + return AddEffect("IntCtxMenuEntry" , target || this, 1, 0, ContextMenuEntry_Helper, 0, callback, condition); +} + +global func RemoveContextMenuEntry(int id, object target) +{ + return RemoveEffect(0, target || this, id); +} + +func FxIntCtxMenuEntryStart(object target, int effectNumber, int temp, callback, condition) +{ + if(!temp) + { + EffectVar(0, target, effectNumber) = callback; + EffectVar(1, target, effectNumber) = condition; + } +} + +func FxIntCtxMenuEntryConditionContext(object target, int effectNumber, object menuObject, id image) +{ + return !EffectVar(1, target, effectNumber) || Call(EffectVar(1, target, effectNumber), [target, effectNumber, menuObject, image]); +} + +func FxIntCtxMenuEntryContext(object target, int effectNumber, object menuObject, id image) +{ + [Dynamischer Eintrag|Condition=FxIntCtxMenuEntryConditionContext|Image=FLNT] + return EffectVar(0, target, effectNumber) && target->Call(EffectVar(0, target, effectNumber), [target, effectNumber, menuObject, image]); +} |
