GtkMenu

## GtkMenu GtkMenu — A menu widget |

## Includes

    #include <gtk/gtk.h>

## Description

A GtkMenu is a GtkMenuShell that implements a drop down menu consisting of a list of GtkMenuItem objects which can be navigated and activated by the user to perform application functions.

A GtkMenu is most commonly dropped down by activating a GtkMenuItem in a GtkMenuBar or popped up by activating a GtkMenuItem in another GtkMenu.

A GtkMenu can also be popped up by activating a GtkOptionMenu. Other composite widgets such as the GtkNotebook can pop up a GtkMenu as well.

Applications can display a GtkMenu as a popup menu by calling the `gtk_menu_popup()` function. The example below shows how an application can pop up a menu when the 3rd mouse button is pressed.

Example 22. Connecting the popup signal handler.

    1
    2
    3
    /* connect our handler which will popup the menu */
    g_signal_connect_swapped (window, "button_press_event",
        G_CALLBACK (my_popup_handler), menu);

Example 23. Signal handler which displays a popup menu.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    static gint
    my_popup_handler (GtkWidget *widget, GdkEvent *event)
    {
      GtkMenu *menu;
      GdkEventButton *event_button;
      g_return_val_if_fail (widget != NULL, FALSE);
      g_return_val_if_fail (GTK_IS_MENU (widget), FALSE);
      g_return_val_if_fail (event != NULL, FALSE);
      /* The "widget" is the menu that was supplied when
       * g_signal_connect_swapped() was called.
       */
      menu = GTK_MENU (widget);
      if (event->type == GDK_BUTTON_PRESS)
        {
          event_button = (GdkEventButton *) event;
          if (event_button->button == 3)
        {
          gtk_menu_popup (menu, NULL, NULL, NULL, NULL,
                  event_button->button, event_button->time);
          return TRUE;
        }
        }
      return FALSE;
    }

## Functions

## Types and Values