[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.
Advertisement