1. Reference
Prev | Chapter 3. Menu commands | Next

## 1. Reference

    <command
      name = NMTOKEN (optionally preceded by a command namespace in XMLmind XML Editor - Configuration and Deployment)
    >
      Content: class | menu | macro | process
    </command>

    <menu
      label = non empty token
    >
      Content: [ menu | separator | item ]+
    </menu>

    <separator
    />

    <item
      label = non empty token
      icon = anyURI
      command = NMTOKEN (optionally preceded by a command namespace in XMLmind XML Editor - Configuration and Deployment)
      parameter = string
    />

Define a popup menu of commands. This special type of command, typically invoked from contextual macro-commands, allow to redefine or extend the right-click, contextual, popup menu. See below.

The parameter passed to a command containing a menu may be used to parameterize the items of this menu. This parameter is split like in a command line. A part of the split parameter may be referenced as variable `%0`, `%1`, `%2`, ..., `%9`. Variable `%*` may be used to reference the whole parameter of the command.

Note that the %-variable substitution is performed on in the `label` and in the `parameter` attributes of an `item` element. There is no %-variable substitution in the `command` attribute.

Example:

    <command name="greetings">
      <menu>
        <item label="Say '%0'"
              command="alert" parameter="%0"/>
        <item label="Say '%1'"
              command="alert" parameter="%1"/>
      </menu>
    </command>

Invoking `<command name="greetings" parameter="'Hello world!' 'Goodbye world.'"/>` displays a popup menu equivalent to:

    <menu>
      <item label="Say 'Hello world!'"
            command="alert" parameter="Hello world!"/>
      <item label="Say 'Goodbye world.'"
            command="alert" parameter="Goodbye world."/>
    </menu>

### Note

The `binding` configuration element (see Section 2, “binding” in XMLmind XML Editor - Configuration and Deployment) also has a `menu` child element. However menu commands are more useful because:

- They can be bound to a keystroke. Popup menus in `binding` can only be bound to a mouse click.

- The parameter passed to the command may be used to parameterize the items of the menu.

- They can be used to redefine or extend the right-click, contextual, popup menu.

Prev | Up | Next
Chapter 3. Menu commands | Home | 2. Redefining or extending the right-click, contextual, popup menu