[API] Menu.add_item( caption, index )
-
Looking at the exporter for the STL project and I noticed an argument I wasn't aware was possible on
#add_item.<span class="syntaxdefault">UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">menu</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Plugins'</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'First Post!'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> puts </span><span class="syntaxstring">'w00t!'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"></span>
-
Apparently added very recently. Use feature guard before using:
<span class="syntaxdefault"><br /></span><span class="syntaxkeyword">if </span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Menu</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">instance_method</span><span class="syntaxkeyword">(;</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">arity </span><span class="syntaxkeyword">== </span><span class="syntaxdefault">1<br /> UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">menu</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Plugins'</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Last Post...'</span><span class="syntaxkeyword">) { </span><span class="syntaxdefault">puts </span><span class="syntaxstring">';(' </span><span class="syntaxkeyword">}<br />else<br /> </span><span class="syntaxdefault">UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">menu</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Plugins'</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'First Post!'</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">0</span><span class="syntaxkeyword">) { </span><span class="syntaxdefault">puts </span><span class="syntaxstring">'w00t!' </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">end<br /></span> -
What happens when everyone wants to be first? I guess that would make the Plugins menu be in reverse load order.
-
@jim said:
What happens when everyone wants to be first? I guess that would make the Plugins menu be in reverse load order.
Yup! There is no way that argument will be of any assurance to where the menu appears. But as in the case of the STL exporter, you can at least place it nearer where you want it.
I don't see myself using it too much though. The exporter is one of them use cases for it until they implement an Exporter class.
-
No doubt an interesting find.
However I would prefer a fully documented API dictionary rather than hidden easter eggs. (I think the easter egg scenario has gone out of style in favor of "truth in software" or whatever it is called.)
-
This might be useful in a sub-menu. Does anyone know if it works in a sub-menu as well as top-level menus?
-
Haven't tried. (I just assumed.)
-
Just confirmed it does work in sub-menus.

Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register LoginAdvertisement