====== zmenu_InsertItem ====== ===== Description ===== Add an item to the menu in L3DT. ===== Files ===== ^ Declaration | ''zmenu.h'' | ^ Implementation | ''zmenu.cpp'' | ===== Function prototype ===== bool zmenu_InsertItem(const char* lpScript, const char* lpItemText, unsigned long MenuContext, unsigned long Flags); ===== Arguments ===== ^ Name ^ Type ^ Comment ^ | //lpFnName// | ''const char*'' | A pointer to a C-style string containing the ZeoScript script to be executed by this menu option when selected. | | //lpOptionName// | ''const char*'' | A pointer to a C-style string containing the display name of the menu option. | | //MenuContext// | ''unsigned long'' | An enumerated integer to indicate into which menu the item should be inserted. See comments for supported values. | | //Flags// | ''unsigned long'' | Reserved. Must be 0. | ===== Return value ===== False if an error occurred, and true otherwise. ===== Comments ===== ==== Use with zfunc_Load ==== The //lpFnName// argument must be the name of a function loaded from your plugin via the [[zeolite:functions:zfunc_Load]] method. See the example provided below. ==== Menu contents ==== By default, this function adds the menu item into the '//Extensions->[your plugin name]//' menu in L3DT. However, using the //MenuContext// argument, you may insert your item into other menus. The following values are recognised: ^ Defined constant ^ Value ^ Menu ^ | ZMENU_CONTEXT_EXT_CUR | 0 | //Extensions->[extension name]// | | ZMENU_CONTEXT_EXT_ROOT | 1 | //Extensions// | | ZMENU_CONTEXT_FILE_IMPORT | 2 | //File->Import// | | ZMENU_CONTEXT_FILE_EXPORT | 3 | //File->Export// | ==== Sub-menus ==== The '.' (dot) character is used to delimit nested submenus. Thus, if you provide an //lpOptionName// of "mysubmenu.myoption", your option will appear at '//Extensions->[your plugin name]->mysubmenu->myoption//' (assuming the default //MenuContext//). Unfortunately, this means you cannot use dots for abbreviations or ellipsis (e.g. 'about...') ===== Example ===== This is from the InitPlugin function of [[bundywiki>plugins:file:L3DTio_TorqueTER|L3DTio_TorqueTER]]: // load the extension function zfunc_Load("L3DTio_TorqueTER.T3D.MaterialManagerUI", "ExtT3DMtlManagerUI", VarID_void, NULL); // load the menu item for the function zmenu_InsertItem("T3D.MaterialManagerUI", "L3DTio_TorqueTER.Torque T3D.Material Manager", ZMENU_CONTEXT_FILE_EXPORT, 0);