Popup desctiption
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 09/12/2010 at 08:47, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 12
Platform: Windows ; Mac OSX ;
Language(s) : C++ ;---------
Hello all,
i am trying to create a popup description (CUSTOMGUI_POPUP) in GetDDescription of tagdata.
i can create popup but i can't find the way to add the element inside popup.
any help ?
Franz -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 14/12/2010 at 03:26, xxxxxxxx wrote:
You have to react to the MSG_DESCRIPTION_POPUP message to fill the menu structure.
Here is a simple example of a popup menu with a sub-menu and some separators.
Bool MorphMixerObject::Message(GeListNode *node, LONG type, void *data) { if (type==MSG_DESCRIPTION_POPUP) { DescriptionPopup *dp = (DescriptionPopup* )data; if (dp->id[0]==MORPHMIXER_PRESET) { if (dp->chosen==0) //fill menu { dp->popup.InsData(MORPHMIXER_PRESET+1,"hello"); dp->popup.InsData(MORPHMIXER_PRESET+2,"world"); dp->popup.InsData(0,String()); //separator BaseContainer child; //sub-container for sub-menu child.InsData(MORPHMIXER_PRESET+3,"CINEMA 4D"); child.InsData(0,String()); //separator child.InsData(MORPHMIXER_PRESET+4,"BodyPaint 3D"); child.InsData(1,"Sub-Menu"); //sub-menu name dp->popup.InsData(0,child); //insert sub-menu child.FlushAll(); } else //menu item was chosen { GePrint(LongToString(dp->chosen)); } } } return TRUE; } Bool MorphMixerObject::GetDDescription(GeListNode *node, Description *description,DESCFLAGS_DESC &flags) { if (!description->LoadDescription(node->GetType())) return FALSE; // important to check for speedup c4d! const DescID *singleid = description->GetSingleDescID(); LONG index = MORPHMIXER_PRESET; BaseContainer bc2; DescID cid = DescLevel(index,DTYPE_POPUP,0); if (!singleid || cid.IsPartOf(*singleid,NULL)) // important to check for speedup c4d! { bc2 = GetCustomDataTypeDefault(DTYPE_POPUP); bc2.SetLong(DESC_CUSTOMGUI,CUSTOMGUI_POPUP); bc2.SetLong(DESC_ANIMATE,DESC_ANIMATE_OFF); bc2.SetBool(DESC_REMOVEABLE,FALSE); bc2.SetString(DESC_NAME,"Preset"); bc2.SetString(DESC_SHORT_NAME,"Preset"); if (!description->SetParameter(cid,bc2,DescLevel(ID_OBJECTPROPERTIES))) return FALSE; } flags |= DESCFLAGS_DESC_LOADED; return SUPER::GetDDescription(node,description,flags); }
cheers,
Matthias -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 14/12/2010 at 08:03, xxxxxxxx wrote:
thans ... very useful
Franz