I should point out that the way that Lawrence suggested doing this is the wrong way to add a banner menu (sorry Lawrence). Adding a pulldown banner menu in a post install trigger is likely to cause trouble (I've seen this happen numerous times), and since there is a userMenuTrigger available (this is the third argument to deRegUserTriggers). In fact it makes it simpler, because all your function has to do is return a list of pulldown menus to add, and does not need to worry itself with inserting them in the banner - that is done by the Design Editor infrastructure. So it would be something like:
procedure(AmitAddMenu(_args) let( (item1 item2) ;; create a couple of menu items item1 = hiCreateMenuItem( ?name 'item1 ?itemText "My First Item" ?callback "AmitFunctionOne()" ) item2 = hiCreateMenuItem( ?name 'item2 ?itemText "My Second Item" ?callback "AmitFunctionTwo()" ) ;; create a menu that includes the menu items and return a list of the ;; pulldown menus list(hiCreatePulldownMenu('AmitMenu "Amit Menu" list(item1 item2))) );let); procedure;; create a userMenuTrigger trigger that automatically adds the menudeRegUserTriggers("maskLayout" nil 'AmitAddMenu)
Note this is untested - and in practice you would add code to avoid redefining the pulldown menu each time (e.g. unless(boundp('AmitMenu) ...) but hopefully you get the principle.