creating custom tags
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 23/01/2003 at 08:57, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 8.012
Platform: Windows ;
Language(s) : C.O.F.F.E.E ;---------
Hi,
my first post here...
I want to make a custom tag for an 3d-engine exporter.
To do this, I have to define a new tag class by extending the
BaseTag class, right?
This is a first test with no additional functions:
__ class zSortTag: BaseTag { public: zSortTag(); } zSortTag::zSortTag() { return super(); } _
_
Now, when I try to apply this to an object (via object->InsertTag ), I get FALSE as result. What´s wrong with my class? -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 23/01/2003 at 14:13, xxxxxxxx wrote:
I think you need to add Edit() as well and return TRUE. (Otherwise C4D thinks that the user pressed Cancel in your dialog, so it creates no tag.)
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 24/01/2003 at 09:37, xxxxxxxx wrote:
this doesn´t work:
class zSortTag : BaseTag { public: zSortTag(); Edit(); } zSortTag::zSortTag() { return super(); } zSortTag::Edit() { return TRUE; }
any clues?
thx,
Florian -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/01/2003 at 23:44, xxxxxxxx wrote:
Do Constructors need a return? I don't think so.
zSortTag::zSortTag() { super(); }
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 27/01/2003 at 13:54, xxxxxxxx wrote:
You also need a GetID() that returns a unique ID from PluginCafe.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 28/01/2003 at 01:02, xxxxxxxx wrote:
added GetName() and GetID(),
but doesn´t help... -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 28/01/2003 at 11:47, xxxxxxxx wrote:
Hmm, that's really strange. I have tags running with C.O.F.F.E.E. in R8. Here's a simple example that works for me:
const var MYTAG_ID = 1011203; var mytag_icon; class MyTag : ExpressionPluginTag { public: MyTag(); GetID(); GetIcon(); Edit(); GetName(); Execute(doc, op); GetHelpText(); MultipleAllowed(); DisplayAllowed(); UseMenu(); } MyTag::MyTag() { println("MyTag"); super(); } MyTag::GetID() { println("GetID"); return MYTAG_ID; } MyTag::Edit() { println("Edit"); return TRUE; } MyTag::GetName() { println("GetName"); return "My Tag"; } MyTag::Execute(doc, op) { println("Execute"); return TRUE; } MyTag::GetHelpText() { println("GetHelpText"); return "My Tag"; } MyTag::MultipleAllowed() { println("MultipleAllowed"); return TRUE; } MyTag::DisplayAllowed() { println("DisplayAllowed"); return TRUE; } MyTag::GetIcon() { println("GetIcon()"); return mytag_icon; } MyTag::UseMenu() { println("UseMenu"); return TRUE; } main() { mytag_icon = new(BaseBitmap, PLUGINTAG_ICON_SIZE, PLUGINTAG_ICON_SIZE); mytag_icon->SetPen(vector(0.2, 0.3, 0.7)); mytag_icon->DrawRect(0,0,PLUGINTAG_ICON_SIZE,PLUGINTAG_ICON_SIZE); println("main"); Register(MyTag); }
(The culprit might have been UseMenu().)
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 29/01/2003 at 09:34, xxxxxxxx wrote:
great!
I should have tried ExpressionPluginTag instead of extending BaseTag! that probably doesn´t work.Thanks a lot for your help!
I think it will be no problem now, to build the tag I need.Florian
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 29/01/2003 at 14:44, xxxxxxxx wrote:
Doh, didn't see that. PluginTag should be fine as well if you want to show up in the Tag menu instead of Expressions menu.