elisp: Menu Separators

 
 21.17.1.3 Menu Separators
 .........................
 
 A menu separator is a kind of menu item that doesn’t display any
 text—instead, it divides the menu into subparts with a horizontal line.
 A separator looks like this in the menu keymap:
 
      (menu-item SEPARATOR-TYPE)
 
 where SEPARATOR-TYPE is a string starting with two or more dashes.
 
    In the simplest case, SEPARATOR-TYPE consists of only dashes.  That
 specifies the default kind of separator.  (For compatibility, ‘""’ and
 ‘-’ also count as separators.)
 
    Certain other values of SEPARATOR-TYPE specify a different style of
 separator.  Here is a table of them:
 
 ‘"--no-line"’
 ‘"--space"’
      An extra vertical space, with no actual line.
 
 ‘"--single-line"’
      A single line in the menu’s foreground color.
 
 ‘"--double-line"’
      A double line in the menu’s foreground color.
 
 ‘"--single-dashed-line"’
      A single dashed line in the menu’s foreground color.
 
 ‘"--double-dashed-line"’
      A double dashed line in the menu’s foreground color.
 
 ‘"--shadow-etched-in"’
      A single line with a 3D sunken appearance.  This is the default,
      used separators consisting of dashes only.
 
 ‘"--shadow-etched-out"’
      A single line with a 3D raised appearance.
 
 ‘"--shadow-etched-in-dash"’
      A single dashed line with a 3D sunken appearance.
 
 ‘"--shadow-etched-out-dash"’
      A single dashed line with a 3D raised appearance.
 
 ‘"--shadow-double-etched-in"’
      Two lines with a 3D sunken appearance.
 
 ‘"--shadow-double-etched-out"’
      Two lines with a 3D raised appearance.
 
 ‘"--shadow-double-etched-in-dash"’
      Two dashed lines with a 3D sunken appearance.
 
 ‘"--shadow-double-etched-out-dash"’
      Two dashed lines with a 3D raised appearance.
 
    You can also give these names in another style, adding a colon after
 the double-dash and replacing each single dash with capitalization of
 the following word.  Thus, ‘"--:singleLine"’, is equivalent to
 ‘"--single-line"’.
 
    You can use a longer form to specify keywords such as ‘:enable’ and
 ‘:visible’ for a menu separator:
 
    ‘(menu-item SEPARATOR-TYPE nil . ITEM-PROPERTY-LIST)’
 
    For example:
 
      (menu-item "--" nil :visible (boundp 'foo))
 
    Some systems and display toolkits don’t really handle all of these
 separator types.  If you use a type that isn’t supported, the menu
 displays a similar kind of separator that is supported.