[Chapter 18] 18.15 The Menu Widget
Author: Ellen Siever, Stephen Spainhour & Nathan Patwardhan
Date: 1999-07-02T01:59:04Z

#

| Chapter 18 Perl/Tk |

## 18.15 The Menu Widget

Create a menu with the `Menu` method, to be displayed later with the `post` method.

>     $menu = $parent->Menu(options)

The standard configuration options that apply to `Menu` are: `-activebackground`, `-activeforeground`, `-background`, `-bg`, `-borderwidth`, `-bw`, `-cursor`, `-disabledforeground`, `-font`, `-foreground`, `-fg`, `-relief`, and `-takefocus`.

Other options are:

`-activeborderwidth =>` `amount`

  Sets the width of the edges for the active menu item.

`-menuitems =>` `list`

  Specifies items to create in the menu as a list of lists.

`-postcommand =>` `callback`

  The command to invoke before the menu is posted, for example, to update the state of the menu items.

`-tearoff =>` `boolean`

  Whether or not to allow the menu to be "torn off." Default is 1.

`-selectcolor =>` `color`

  Color of the selection box for checkbuttons or radiobuttons.

### 18.15.1 Menu Indexes

Menus have indexes for manipulating individual menu items. They are:

`n`

  Menu item `n`, with 0 representing the first item.

`'active'`

  The current menu item.

`'end'` or `'last'`

  The last menu item.

`'none'`

  No menu item.

`@``n`

  The menu item closest to the y coordinate specified by `n`.

'`pattern'`

  The first menu item whose text matches the pattern.

### 18.15.2 Menu Methods

In addition to `configure` and `cget`, the following methods are defined for the Menu widget:

`add`

  Adds items to the end of a menu. The first argument is the type of menu item to add, and additional arguments are options to the menu item. For example:

  >     $menu = $mainwindow->Menu;
  >     $menu->add( 'commnd', -label => "New", "-command" => \&newfile );

`entrycget`

  Gets information on a specific menu item given an index.

`entryconfigure`

  Changes information on a specific menu item given an index.

`post`

  Displays the menu widget.

`unpost`

  Removes the menu widget from display.

`postcascade`

  Unposts a submenu and then posts the cascade menu associated with the menu item at the specified index.

`delete`

  Removes menu items from the menu.

`index`

  Given a named index, returns the numerical index for that menu item.

`insert`

  Inserts a menu item at the specified index. Same as `add`, except that it takes an index as the first argument.

`invoke`

  Invokes the menu item at the specified index as if it were selected.

`type`

  Returns the type of menu item at the specified index.

`yposition`

  Returns the y coordinate of the top-most pixel of the menu item.

18.14 The Menubutton Widget |  | 18.16 The Optionmenu Widget