gnome-popup-menu

Name

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);

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);

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);

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);

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);

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);

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);

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);

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.