<?xml version="1.0" encoding="Windows-1255" ?><Topic name="MenuRulesSyntax" title="Menus syntax" id="core.gml2:MenuRulesSyntax" sort="28" urn="core.gml2:rules.syntax.MenuRulesSyntax.txt" toc="\Rules\Syntax"><Summary>This section describes the declarative syntax used by rules that define menus / toolbars.</Summary><Remarks>&lt;h2&gt;Syntax&lt;/h2&gt;
&lt;pre&gt;
&lt;i&gt;menu-rule:&lt;/i&gt;
   &lt;i&gt;menu-decl&lt;/i&gt;
   &lt;i&gt;menu-decl&lt;/i&gt; &lt;i&gt;menu-rule&lt;/i&gt;

&lt;i&gt;menu-decl:&lt;/i&gt;
   &lt;i&gt;menu-tag&lt;/i&gt;
   &lt;i&gt;menu-clause&lt;/i&gt;

&lt;i&gt;menu-clause:&lt;/i&gt;
   &lt;i&gt;append-tag&lt;/i&gt;
   &lt;i&gt;insert-tag&lt;/i&gt;
   &lt;i&gt;remove-tag&lt;/i&gt;
   &lt;i&gt;clear-tag&lt;/i&gt;
&lt;/pre&gt;

&lt;h2&gt;&amp;lt;menu&amp;gt; tag&lt;/h2&gt;
Defines a new menu. All standard menu attributes are supported (see
&lt;q ref=&quot;core.env:KitMenubars!MENU_BAR&quot;&gt;MENU_BAR&lt;/q&gt; for details). 
&lt;pre&gt;
&lt;i&gt;menu-tag&lt;/i&gt;:

   &amp;lt;menu &lt;i&gt;menu-attributes&lt;/i&gt;&amp;gt;
      &lt;i&gt;menu-clause&lt;/i&gt;&lt;sub&gt;many&lt;/sub&gt;
   &amp;lt;/menu&amp;gt;

&lt;/pre&gt;

&lt;h2&gt;&amp;lt;item&amp;gt; tag&lt;/h2&gt;
Defines a menu item. This is an inner tag that can only be used inside menu &amp;lt;append&amp;gt; or &amp;lt;insert&amp;gt; clauses.
&lt;pre&gt;
&lt;i&gt;item-tag&lt;/i&gt;:
   &amp;lt;item &lt;i&gt;item-attributes...&lt;/i&gt;/&amp;gt;
&lt;/pre&gt;
&lt;div class=&quot;INSET&quot;&gt;
&lt;p&gt;
	All standard menu item attributes are supported (see &lt;q ref=&quot;core.env:KitMenubars!MENU_ITEM&quot;&gt;MENU_ITEM&lt;/q&gt; for details). 
	A special 'class' attribute is also provided as a shortcut for creating menu items based on class metadata.
	An empty item tag (i.e., without attributes) represents a menu separator.
&lt;/p&gt;&lt;p&gt;
	Menus items can be nested to create sub-menus. This nesting can continue to any number of levels.
	Sub-menus that are defined by nested menu items are local to the containing menu and cannot be extended.
&lt;/p&gt;&lt;p&gt;
	Alternatively, a sub-menu can be defined by using the 'menu' attribute on the item to reference
	a global menu definition. Sub-menus defined in this way are extensible, since the global menus 
	on which they are based can be extended.
&lt;/p&gt;
&lt;/div&gt;

&lt;h2&gt;&amp;lt;append&amp;gt; tag&lt;/h2&gt;
Appends one or more items to the end of a menu, where the menu is either the enclosing &lt;i&gt;menu-tag&lt;/i&gt; or
the specified &lt;i&gt;menuId&lt;/i&gt; attribute.
&lt;pre&gt;
&lt;i&gt;append-tag&lt;/i&gt;:
   &amp;lt;append &lt;i&gt;menu=&quot;menuId&quot;&lt;/i&gt;&amp;gt;
      &lt;i&gt;item-tag&lt;/i&gt;&lt;sub&gt;many&lt;/sub&gt;
   &amp;lt;/append&amp;gt;
&lt;/pre&gt;

&lt;h2&gt;&amp;lt;insert&amp;gt; tag&lt;/h2&gt;
Inserts one or more items before / after a specified menu item, where the menu is either the enclosing &lt;i&gt;menu-tag&lt;/i&gt; or
the specified &lt;i&gt;menuId&lt;/i&gt; attribute.
&lt;pre&gt;
&lt;i&gt;insert-tag&lt;/i&gt;:&lt;sub&gt;one of&lt;/sub&gt;

   &amp;lt;insert before=&quot;itemId&quot; &lt;i&gt;menu=&quot;menuId&quot;&lt;/i&gt;&amp;gt;
      &lt;i&gt;item-tag&lt;/i&gt;&lt;sub&gt;many&lt;/sub&gt;
   &amp;lt;/insert&amp;gt;

   &amp;lt;insert after=&quot;itemId&quot; &lt;i&gt;menu=&quot;menuId&quot;&lt;/i&gt;&amp;gt;
      &lt;i&gt;item-tag&lt;/i&gt;&lt;sub&gt;many&lt;/sub&gt;
   &amp;lt;/insert&amp;gt;

&lt;/pre&gt;

&lt;h2&gt;&amp;lt;remove&amp;gt; tag&lt;/h2&gt;
Removes a specified menu item, where the menu is either the enclosing &lt;i&gt;menu-tag&lt;/i&gt; or
the specified &lt;i&gt;menuId&lt;/i&gt; attribute.
&lt;pre&gt;
&lt;i&gt;remove-tag&lt;/i&gt;:
   &amp;lt;remove item=&quot;itemId&quot; &lt;i&gt;menu=&quot;menuId&quot;&lt;/i&gt;/&amp;gt;
&lt;/pre&gt;

&lt;h2&gt;&amp;lt;clear&amp;gt; tag&lt;/h2&gt;
Clears an entire menu, where the menu is either the enclosing &lt;i&gt;menu-tag&lt;/i&gt; or
the specified &lt;i&gt;menuId&lt;/i&gt; attribute.
&lt;pre&gt;
&lt;i&gt;clear-tag&lt;/i&gt;:
   &amp;lt;clear &lt;i&gt;menu=&quot;menuId&quot;&lt;/i&gt; /&amp;gt;
&lt;/pre&gt;

&lt;h2&gt;Example (popup menu)&lt;/h2&gt;
&lt;pre&gt;
&amp;lt;extend rule=&quot;defineContextMenu&quot;&amp;gt;
   &amp;lt;constraint&amp;gt;(board isa svg:ZDrawing) and (element isa gml2:Unit)&amp;lt;/constraint&amp;gt;
   &amp;lt;comments&amp;gt; Annotate | Actual Size, Fit Window, Print...&amp;lt;/comments&amp;gt;
   &amp;lt;append&amp;gt;
      &amp;lt;item command=&quot;EDIT_ANNOTATE&quot; signal=&quot;BOARD-&amp;gt;annotate(&amp;#64;pos)&quot;/&amp;gt;
      &amp;lt;item /&amp;gt;
      &amp;lt;item command=&quot;VIEW_ACTUAL_SIZE&quot;/&amp;gt;
      &amp;lt;item command=&quot;VIEW_FIT_WINDOW&quot;/&amp;gt;
      &amp;lt;item command=&quot;FILE_PRINT&quot;/&amp;gt;
   &amp;lt;/append&amp;gt;
&amp;lt;/extend&amp;gt;
&lt;/pre&gt;

&lt;h2&gt;Example (toolbar)&lt;/h2&gt;
&lt;pre&gt;
&amp;lt;extend rule=&quot;defineToolbars&quot;&amp;gt;
   &amp;lt;constraint&amp;gt;model isa gml2:Model&amp;lt;/constraint&amp;gt;
   &amp;lt;comments&amp;gt;Standard drawing toolbars&amp;lt;/comments&amp;gt;
   &amp;lt;menu id=&quot;DSG_TOOLBAR&quot; category=&quot;DRAWING&quot; description=&quot;Drawing&quot; editable=&quot;true&quot;&amp;gt;
      &amp;lt;append&amp;gt;
         &amp;lt;item command=&quot;VIEW_ZOOM_IN&quot;/&amp;gt;
         &amp;lt;item command=&quot;VIEW_ZOOM_OUT&quot;/&amp;gt;
         &amp;lt;item /&amp;gt;
         &amp;lt;item command=&quot;DRAW_FLIP_X&quot;/&amp;gt;
         &amp;lt;item command=&quot;DRAW_FLIP_Y&quot;/&amp;gt;
         &amp;lt;item command=&quot;DRAW_ROTATE_RIGHT&quot;/&amp;gt;
         &amp;lt;item command=&quot;DRAW_ROTATE_LEFT&quot;/&amp;gt;
         &amp;lt;item /&amp;gt;
         &amp;lt;item command=&quot;TOOLS_OPTIONS&quot;/&amp;gt;
      &amp;lt;/append&amp;gt;
   &amp;lt;/menu&amp;gt;
   &amp;lt;insert before=&quot;SEARCH_HOME&quot; menu=&quot;MAIN_TOOLBAR&quot;&amp;gt;
      &amp;lt;item command=&quot;VIEW_ZOOM_IN&quot;/&amp;gt;
      &amp;lt;item command=&quot;VIEW_ZOOM_OUT&quot;/&amp;gt;
      &amp;lt;item /&amp;gt;
   &amp;lt;/insert&amp;gt;
&amp;lt;/extend&amp;gt;
&lt;/pre&gt;

&lt;h2&gt;Example (sub-menu)&lt;/h2&gt;
&lt;pre&gt;
&amp;lt;extend rule=&quot;defineMainmenu&quot;&amp;gt;
   &amp;lt;constraint&amp;gt;model isa gml2:Model&amp;lt;/constraint&amp;gt;
   &amp;lt;comments&amp;gt; Standard tools menu&amp;lt;/comments&amp;gt;
   &amp;lt;append&amp;gt;
      &amp;lt;item command=&quot;TOOLS_KITCONFIG&quot;/&amp;gt;
      &amp;lt;item command=&quot;TOOLS_DOCUMENTATION&quot;/&amp;gt;
      &amp;lt;item text=&quot;SDK Tools&quot;&amp;gt;
         &amp;lt;item command=&quot;SDK_RELOAD_KITS&quot;/&amp;gt;
         &amp;lt;item command=&quot;SDK_RELOAD_RULES&quot;/&amp;gt;
         &amp;lt;item command=&quot;SDK_RELOAD_BOARD&quot;/&amp;gt;
      &amp;lt;/item&amp;gt;
      &amp;lt;item /&amp;gt;
      &amp;lt;item command=&quot;TOOLS_CUSTOMIZE&quot;/&amp;gt;
      &amp;lt;item command=&quot;TOOLS_OPTIONS&quot;/&amp;gt;
   &amp;lt;/append&amp;gt;
&amp;lt;/extend&amp;gt;
&lt;/pre&gt;</Remarks><Copyright>(c) SAP AG 2003-2006. All rights reserved.</Copyright>
<Topics>
</Topics>
</Topic>