Group Configuration

CommandGroup configuration is similar to ActionCommands in that you also define face properties and custom user properties. Groups also allow you to specify a list of members. The following is an example group for a typical file menu:

   group!file-menu@face.text=_File
   group!file-menu@autoCreate=true
   group!file-menu@members=\
      new, \
      open, \
      save, \
      save-as, \
      expand(separatorBefore), \
      separator, \
      exit

Defining Members

Group members are defined as a comma separated list of member Ids along with a few recognised keywords as follows:

Example Description
my-command Adds a member for the command "my-command".
my-group Adds a member for the group "my-group". The group is added as a sub menu.
inline(my-group) Adds a the group "my-group" as an inline member.
expand Adds an expansion point at the specified point in the group. Members added to the groups expansion point will appear here.
expand(separatorBefore) Adds an expansion point as above, but specifies that a separator should be placed before the first member of the group. As well as separatorBefore you can also specify separatorAfter, separatorAround and separatorAroundAll.
separator Adds a separator.
glue Adds a glue member.

Inline Members

Inline members are applicable only to groups. They are used to insert the members of the specified group directly in the parent instead of as a submenu.

Expansion Points

Expansion points allow you to temporarily add commands at runtime. The expansion point member defines the point at which these members will appear in the group. Please read the section on Expansion Points for more information.

Auto create

Specifying autoCreate=true causes the group to be automatically created when it is first requested. This is useful when creating groups that you don't need to access programmatically. This is covered in more detail in Automatic Creation.