## gnome-popup-menu

gnome-popup-menu — Create and display popup and context menus.

## Synopsis

    #include <libgnomeui/libgnomeui.h>

    GtkWidget *         gnome_popup_menu_new                (GnomeUIInfo *uiinfo);
    GtkWidget *         gnome_popup_menu_new_with_accelgroup
                                                            (GnomeUIInfo *uiinfo,
                                                             GtkAccelGroup *accelgroup);
    GtkAccelGroup *     gnome_popup_menu_get_accel_group    (GtkMenu *menu);
    void                gnome_popup_menu_attach             (GtkWidget *popup,
                                                             GtkWidget *widget,
                                                             gpointer user_data);
    void                gnome_popup_menu_do_popup           (GtkWidget *popup,
                                                             GtkMenuPositionFunc pos_func,
                                                             gpointer pos_data,
                                                             GdkEventButton *event,
                                                             gpointer user_data,
                                                             GtkWidget *for_widget);
    int                 gnome_popup_menu_do_popup_modal     (GtkWidget *popup,
                                                             GtkMenuPositionFunc pos_func,
                                                             gpointer pos_data,
                                                             GdkEventButton *event,
                                                             gpointer user_data,
                                                             GtkWidget *for_widget);
    void                gnome_popup_menu_append             (GtkWidget *popup,
                                                             GnomeUIInfo *uiinfo);
    void                gnome_gtk_widget_add_popup_items    (GtkWidget *widget,
                                                             GnomeUIInfo *uiinfo,
                                                             gpointer user_data);

## Description

## Details

### gnome_popup_menu_new ()

    GtkWidget *         gnome_popup_menu_new                (GnomeUIInfo *uiinfo);

### Warning

`gnome_popup_menu_new` is deprecated and should not be used in newly-written code.

This function behaves just like `gnome_popup_menu_new_with_accelgroup()`, except that it creates an accelgroup for you and attaches it to the menu object. Use `gnome_popup_menu_get_accel_group()` to get the accelgroup that is created.

`uiinfo` : | A GnomeUIInfo array describing the new menu.
Returns : | A menu widget.

### gnome_popup_menu_new_with_accelgroup ()

    GtkWidget *         gnome_popup_menu_new_with_accelgroup
                                                            (GnomeUIInfo *uiinfo,
                                                             GtkAccelGroup *accelgroup);

### Warning

`gnome_popup_menu_new_with_accelgroup` is deprecated and should not be used in newly-written code.

Creates a popup menu out of the specified `uiinfo` array. Use `gnome_popup_menu_do_popup()` to pop the menu up, or attach it to a window with `gnome_popup_menu_attach()`.

`uiinfo` : | A GnomeUIInfo array describing the new menu.
`accelgroup` : | A GtkAccelGroup describing the accelerator key structure.
Returns : | A menu widget.

### gnome_popup_menu_get_accel_group ()

    GtkAccelGroup *     gnome_popup_menu_get_accel_group    (GtkMenu *menu);

### Warning

`gnome_popup_menu_get_accel_group` is deprecated and should not be used in newly-written code.

This function is used to retrieve the accelgroup that was created by `gnome_popup_menu_new()`. If you want to specify the accelgroup that the popup menu accelerators use, then use `gnome_popup_menu_new_with_accelgroup()`.

`menu` : | A menu widget.
Returns : | The accelgroup associated with the specified GtkMenu.

### gnome_popup_menu_attach ()

    void                gnome_popup_menu_attach             (GtkWidget *popup,
                                                             GtkWidget *widget,
                                                             gpointer user_data);

### Warning

`gnome_popup_menu_attach` is deprecated and should not be used in newly-written code.

Attaches the specified popup menu to the specified widget. The menu can then be activated by pressing mouse button 3 over the widget. When a menu item callback is invoked, the specified user_data will be passed to it.

This function requires the widget to have its own window (i.e. GTK_WIDGET_NO_WINDOW (widget) == FALSE), This function will try to set the GDK_BUTTON_PRESS_MASK flag on the widget's event mask if it does not have it yet; if this is the case, then the widget must not be realized for it to work.

The popup menu can be attached to different widgets at the same time. A reference count is kept on the popup menu; when all the widgets it is attached to are destroyed, the popup menu will be destroyed as well.

Under the current implementation, setting a popup menu for a NO_WINDOW widget and then reparenting that widget will cause Bad Things to happen.

`popup` : | A menu widget.
`widget` : | The widget to attach the popup menu to.
`user_data` : | Application specific data passed to the callback.

### gnome_popup_menu_do_popup ()

    void                gnome_popup_menu_do_popup           (GtkWidget *popup,
                                                             GtkMenuPositionFunc pos_func,
                                                             gpointer pos_data,
                                                             GdkEventButton *event,
                                                             gpointer user_data,
                                                             GtkWidget *for_widget);

### Warning

`gnome_popup_menu_do_popup` is deprecated and should not be used in newly-written code.

You can use this function to pop up a menu. When a menu item callback is invoked, the specified user_data will be passed to it.

The pos_func and pos_data parameters are the same as for `gtk_menu_popup()`, i.e. you can use them to specify a function to position the menu explicitly. If you want the default position (near the mouse), pass NULL for these parameters.

The event parameter is needed to figure out the mouse button that activated the menu and the time at which this happened. If you pass in NULL, then no button and the current time will be used as defaults.

`popup` : | A menu widget.
`pos_func` : | A user supplied function to position the menu or `NULL`.
`pos_data` : | User supplied data to pass to `pos_func`.
`event` : | A GdkEventButton structure containing the event that triggered the menu (or `NULL`).
`user_data` : | Application specific data passed to the menu callback.
`for_widget` : | The widget for which the popup was triggered.

### gnome_popup_menu_do_popup_modal ()

    int                 gnome_popup_menu_do_popup_modal     (GtkWidget *popup,
                                                             GtkMenuPositionFunc pos_func,
                                                             gpointer pos_data,
                                                             GdkEventButton *event,
                                                             gpointer user_data,
                                                             GtkWidget *for_widget);

### Warning

`gnome_popup_menu_do_popup_modal` is deprecated and should not be used in newly-written code.

Same as `gnome_popup_do_modal()`, but runs the popup menu modally.

`popup` : | A menu widget.
`pos_func` : | A user supplied function to position the menu or `NULL`.
`pos_data` : | User supplied data to pass to `pos_func`.
`event` : | A GdkEventButton structure containing the event that triggered the menu (or `NULL`).
`user_data` : | Application specific data passed to the menu callback.
`for_widget` : | The widget for which the popup was triggered.
Returns : | The index of the selected item or -1 if no item selected.

### gnome_popup_menu_append ()

    void                gnome_popup_menu_append             (GtkWidget *popup,
                                                             GnomeUIInfo *uiinfo);

### Warning

`gnome_popup_menu_append` is deprecated and should not be used in newly-written code.

Appends the menu items in `uiinfo` the `popup` menu.

`popup` : | An existing popup menu.
`uiinfo` : | A GnomeUIInfo array describing new menu elements.

### gnome_gtk_widget_add_popup_items ()

    void                gnome_gtk_widget_add_popup_items    (GtkWidget *widget,
                                                             GnomeUIInfo *uiinfo,
                                                             gpointer user_data);

### Warning

`gnome_gtk_widget_add_popup_items` is deprecated and should not be used in newly-written code.

This creates a new popup menu for `widget` if none exists, and then adds the items in `uiinfo` to the popup menu of `widget`.

`widget` : | The widget to append popup menu items for.
`uiinfo` : | A GnomeUIInfo array describing new menu elements.
`user_data` : | The user_data to pass to the callbacks for the menu items.