GtkMenu
<!-- ##### SECTION Short_Description ##### -->
-a drop down menu widget.
+A menu widget
<!-- ##### SECTION Long_Description ##### -->
<para>
<title>Connecting the popup signal handler.</title>
<programlisting>
/* connect our handler which will popup the menu */
- gtk_signal_connect_object(GTK_OBJECT(window), "button_press_event",
- GTK_SIGNAL_FUNC (my_popup_handler), GTK_OBJECT(menu));
+ g_signal_connect_swapped (window, "button_press_event",
+ G_CALLBACK (my_popup_handler), menu);
</programlisting>
</example>
<title>Signal handler which displays a popup menu.</title>
<programlisting>
static gint
-my_popup_handler(GtkWidget *widget, GdkEvent *event)
+my_popup_handler (GtkWidget *widget, GdkEvent *event)
{
GtkMenu *menu;
GdkEventButton *event_button;
g_return_val_if_fail (event != NULL, FALSE);
/* The "widget" is the menu that was supplied when
- * gtk_signal_connect_object was called.
+ * g_signal_connect_swapped() was called.
*/
menu = GTK_MENU (widget);
</para>
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
<!-- ##### STRUCT GtkMenu ##### -->
<para>
-The #GtkMenu-struct struct contains private data only, and
+The #GtkMenu struct contains private data only, and
should be accessed using the functions below.
</para>
-<!-- ##### FUNCTION gtk_menu_new ##### -->
+<!-- ##### SIGNAL GtkMenu::move-scroll ##### -->
<para>
-Creates a new #GtkMenu.
+
</para>
-@Returns: a new #GtkMenu.
+@menu: the object which received the signal.
+@arg1:
+<!-- ##### ARG GtkMenu:accel-group ##### -->
+<para>
+
+</para>
-<!-- ##### MACRO gtk_menu_append ##### -->
+<!-- ##### ARG GtkMenu:accel-path ##### -->
<para>
-Adds a new #GtkMenuItem to the end of the menu's item list.
+
</para>
-@menu: a #GtkMenu.
-@child: The #GtkMenuItem to add.
-<!-- # Unused Parameters # -->
-@m:
-@c:
+<!-- ##### ARG GtkMenu:active ##### -->
+<para>
+</para>
-<!-- ##### MACRO gtk_menu_prepend ##### -->
+<!-- ##### ARG GtkMenu:attach-widget ##### -->
<para>
-Adds a new #GtkMenuItem to the beginning of the menu's item list.
+
</para>
-@menu_child:
-<!-- # Unused Parameters # -->
-@m:
-@c:
-@menu: a #GtkMenu.
-@child: The #GtkMenuItem to add.
+<!-- ##### ARG GtkMenu:monitor ##### -->
+<para>
+</para>
-<!-- ##### MACRO gtk_menu_insert ##### -->
+<!-- ##### ARG GtkMenu:reserve-toggle-size ##### -->
<para>
-Adds a new #GtkMenuItem to the menu's item list at the position
-indicated by @position.
+
</para>
-@menu: a #GtkMenu.
-@child: The #GtkMenuItem to add.
-@pos:
-<!-- # Unused Parameters # -->
-@position: The position in the item list where @child is added.
-Positions are numbered from 0 to n-1.
+<!-- ##### ARG GtkMenu:tearoff-state ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkMenu:tearoff-title ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkMenu:bottom-attach ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkMenu:left-attach ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkMenu:right-attach ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkMenu:top-attach ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkMenu:arrow-placement ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkMenu:arrow-scaling ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkMenu:double-arrows ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkMenu:horizontal-offset ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkMenu:horizontal-padding ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkMenu:vertical-offset ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GtkMenu:vertical-padding ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION gtk_menu_new ##### -->
+<para>
+Creates a new #GtkMenu.
+</para>
+
+@void:
+@Returns: a new #GtkMenu.
+
+
+<!-- ##### FUNCTION gtk_menu_set_screen ##### -->
+<para>
+
+</para>
+
+@menu:
+@screen:
<!-- ##### FUNCTION gtk_menu_reorder_child ##### -->
0 to n-1.
-<!-- ##### FUNCTION gtk_menu_popup ##### -->
+<!-- ##### FUNCTION gtk_menu_attach ##### -->
<para>
-Displays a menu and makes it available for selection. Applications can use
-this function to display context-sensitive menus, and will typically supply
-NULL for the @parent_menu_shell, @parent_menu_item, @func and @data
-parameters. The default menu positioning function will position the menu
-at the current pointer position.
+
</para>
-@menu: a #GtkMenu.
-@parent_menu_shell: the menu shell containing the triggering menu item.
-@parent_menu_item: the menu item whose activation triggered the popup.
-@func: a user supplied function used to position the menu.
-@data: user supplied data to be passed to @func.
-@button: the button which was pressed to initiate the event.
-@activate_time: the time at which the activation event occurred.
+@menu:
+@child:
+@left_attach:
+@right_attach:
+@top_attach:
+@bottom_attach:
+
+
+<!-- ##### FUNCTION gtk_menu_popup ##### -->
+
+
+@menu:
+@parent_menu_shell:
+@parent_menu_item:
+@func:
+@data:
+@button:
+@activate_time:
<!-- ##### FUNCTION gtk_menu_set_accel_group ##### -->
<para>
Set the #GtkAccelGroup which holds global accelerators for the menu.
+This accelerator group needs to also be added to all windows that
+this menu is being used in with gtk_window_add_accel_group(), in order
+for those windows to support all the accelerators contained in this group.
</para>
@menu: a #GtkMenu.
<!-- ##### FUNCTION gtk_menu_get_accel_group ##### -->
<para>
+Gets the #GtkAccelGroup which holds global accelerators for the menu.
+See gtk_menu_set_accel_group().
+</para>
+
+@menu: a #GtkMenu.
+@Returns: the #GtkAccelGroup associated with the menu.
+
+
+<!-- ##### FUNCTION gtk_menu_set_accel_path ##### -->
+<para>
+
+</para>
+
+@menu:
+@accel_path:
+
+
+<!-- ##### FUNCTION gtk_menu_get_accel_path ##### -->
+<para>
</para>
<!-- ##### FUNCTION gtk_menu_set_title ##### -->
<para>
-Sets the title string for the menu. The title is displayed when the menu
-is shown as a tearoff menu.
</para>
-@menu: a #GtkMenu.
-@title: a string containing the title for the menu.
+@menu:
+@title:
+
+
+<!-- ##### FUNCTION gtk_menu_get_title ##### -->
+<para>
+
+</para>
+
+@menu:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_menu_set_monitor ##### -->
+<para>
+
+</para>
+
+@menu:
+@monitor_num:
+
+
+<!-- ##### FUNCTION gtk_menu_get_monitor ##### -->
+<para>
+
+</para>
+
+@menu:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_menu_get_tearoff_state ##### -->
+<para>
+
+</para>
+
+@menu:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_menu_set_reserve_toggle_size ##### -->
+<para>
+
+</para>
+
+@menu:
+@reserve_toggle_size:
+
+
+<!-- ##### FUNCTION gtk_menu_get_reserve_toggle_size ##### -->
+<para>
+
+</para>
+
+@menu:
+@Returns:
<!-- ##### FUNCTION gtk_menu_popdown ##### -->
<!-- ##### FUNCTION gtk_menu_set_active ##### -->
<para>
Selects the specified menu item within the menu. This is used by the
-#GtkOptionMenu.
+#GtkOptionMenu and should not be used by anyone else.
</para>
@menu: a #GtkMenu.
-@index: the index of the menu item to select. Index values are from
+@index_: the index of the menu item to select. Index values are from
0 to n-1.
</para>
@menu: a #GtkMenu.
-@torn_off: If TRUE, menu is displayed as a tearoff menu.
+@torn_off: If %TRUE, menu is displayed as a tearoff menu.
<!-- ##### FUNCTION gtk_menu_attach_to_widget ##### -->
@Returns: the #GtkWidget that the menu is attached to.
+<!-- ##### FUNCTION gtk_menu_get_for_attach_widget ##### -->
+<para>
+
+</para>
+
+@widget:
+@Returns:
+
+
<!-- ##### USER_FUNCTION GtkMenuPositionFunc ##### -->
<para>
A user function supplied when calling gtk_menu_popup() which controls the
positioning of the menu when it is displayed. The function sets the @x
and @y parameters to the coordinates where the menu is to be drawn.
+To make the menu appear on a different monitor than the mouse pointer,
+gtk_menu_set_monitor() must be called.
</para>
@menu: a #GtkMenu.
menu shall be drawn. This is an output parameter.
@y: address of the #gint representing the vertical position where the
menu shall be drawn. This is an output parameter.
-@push_in:
+@push_in: This parameter controls how menus placed outside the monitor are handled.
+ If this is set to %TRUE and part of the menu is outside the monitor then
+ GTK+ pushes the window into the visible area, effectively modifying the
+ popup position.
+ Note that moving and possibly resizing the menu around will alter the
+ scroll position to keep the menu items "in place", i.e. at the same monitor
+ position they would have been without resizing.
+ In practice, this behavior is only useful for combobox popups or option
+ menus and cannot be used to simply confine a menu to monitor boundaries.
+ In that case, changing the scroll offset is not desirable.
@user_data: the data supplied by the user in the gtk_menu_popup() @data
parameter.
@menu: the #GtkMenu being detached.
-<!-- ##### ARG GtkMenu:tearoff-title ##### -->
-<para>
-
-</para>
-