📄 gtkmenu.html
字号:
<HTML><HEAD><TITLE>GtkMenu</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.61"><LINKREL="HOME"TITLE="GTK+ Reference Manual"HREF="index.html"><LINKREL="UP"TITLE="GTK+ Widgets and Objects"HREF="gtkobjects.html"><LINKREL="PREVIOUS"TITLE="GtkListItem"HREF="gtklistitem.html"><LINKREL="NEXT"TITLE="GtkMenuBar"HREF="gtkmenubar.html"></HEAD><BODYCLASS="REFENTRY"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLEWIDTH="100%"BORDER="0"BGCOLOR="#000000"CELLPADDING="1"CELLSPACING="0"><TR><THCOLSPAN="4"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="5">GTK+ Reference Manual</FONT></TH></TR><TR><TDWIDTH="25%"BGCOLOR="#C00000"ALIGN="left"><AHREF="gtklistitem.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B><<< Previous Page</B></FONT></A></TD><TDWIDTH="25%"BGCOLOR="#0000C0"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="3"><B><AHREF="index.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Home</B></FONT></A></B></FONT></TD><TDWIDTH="25%"BGCOLOR="#00C000"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="3"><B><AHREF="gtkobjects.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Up</B></FONT></A></B></FONT></TD><TDWIDTH="25%"BGCOLOR="#C00000"ALIGN="right"><AHREF="gtkmenubar.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Next Page >>></B></FONT></A></TD></TR></TABLE></DIV><H1><ANAME="GTKMENU">GtkMenu</A></H1><DIVCLASS="REFNAMEDIV"><ANAME="AEN30750"></A><H2>Name</H2>GtkMenu -- a drop down menu widget.</DIV><DIVCLASS="REFSYNOPSISDIV"><ANAME="AEN30753"></A><H2>Synopsis</H2><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="SYNOPSIS"> #include <gtk/gtk.h>struct <AHREF="gtkmenu.html#GTKMENU-STRUCT">GtkMenu</A>;<AHREF="gtkwidget.html">GtkWidget</A>* <AHREF="gtkmenu.html#GTK-MENU-NEW">gtk_menu_new</A> (void);void <AHREF="gtkmenu.html#GTK-MENU-APPEND">gtk_menu_append</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu, <AHREF="gtkwidget.html">GtkWidget</A> *child);void <AHREF="gtkmenu.html#GTK-MENU-PREPEND">gtk_menu_prepend</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu, <AHREF="gtkwidget.html">GtkWidget</A> *child);void <AHREF="gtkmenu.html#GTK-MENU-INSERT">gtk_menu_insert</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu, <AHREF="gtkwidget.html">GtkWidget</A> *child, <AHREF=../glib/glib-basic-types.html#GINT>gint</A> position);void <AHREF="gtkmenu.html#GTK-MENU-REORDER-CHILD">gtk_menu_reorder_child</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu, <AHREF="gtkwidget.html">GtkWidget</A> *child, <AHREF=../glib/glib-basic-types.html#GINT>gint</A> position);void <AHREF="gtkmenu.html#GTK-MENU-POPUP">gtk_menu_popup</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu, <AHREF="gtkwidget.html">GtkWidget</A> *parent_menu_shell, <AHREF="gtkwidget.html">GtkWidget</A> *parent_menu_item, <AHREF="gtkmenu.html#GTKMENUPOSITIONFUNC">GtkMenuPositionFunc</A> func, <AHREF=../glib/glib-basic-types.html#GPOINTER>gpointer</A> data, <AHREF=../glib/glib-basic-types.html#GUINT>guint</A> button, <AHREF=../glib/glib-basic-types.html#GUINT32>guint32</A> activate_time);void <AHREF="gtkmenu.html#GTK-MENU-SET-ACCEL-GROUP">gtk_menu_set_accel_group</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu, <AHREF="gtk-keyboard-accelerators.html#GTKACCELGROUP">GtkAccelGroup</A> *accel_group);void <AHREF="gtkmenu.html#GTK-MENU-SET-TITLE">gtk_menu_set_title</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu, const <AHREF=../glib/glib-basic-types.html#GCHAR>gchar</A> *title);void <AHREF="gtkmenu.html#GTK-MENU-POPDOWN">gtk_menu_popdown</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu);void <AHREF="gtkmenu.html#GTK-MENU-REPOSITION">gtk_menu_reposition</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu);<AHREF="gtkwidget.html">GtkWidget</A>* <AHREF="gtkmenu.html#GTK-MENU-GET-ACTIVE">gtk_menu_get_active</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu);void <AHREF="gtkmenu.html#GTK-MENU-SET-ACTIVE">gtk_menu_set_active</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu, <AHREF=../glib/glib-basic-types.html#GUINT>guint</A> index);void <AHREF="gtkmenu.html#GTK-MENU-SET-TEAROFF-STATE">gtk_menu_set_tearoff_state</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu, <AHREF=../glib/glib-basic-types.html#GBOOLEAN>gboolean</A> torn_off);void <AHREF="gtkmenu.html#GTK-MENU-ATTACH-TO-WIDGET">gtk_menu_attach_to_widget</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu, <AHREF="gtkwidget.html">GtkWidget</A> *attach_widget, <AHREF="gtkmenu.html#GTKMENUDETACHFUNC">GtkMenuDetachFunc</A> detacher);void <AHREF="gtkmenu.html#GTK-MENU-DETACH">gtk_menu_detach</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu);<AHREF="gtkwidget.html">GtkWidget</A>* <AHREF="gtkmenu.html#GTK-MENU-GET-ATTACH-WIDGET">gtk_menu_get_attach_widget</A> (<AHREF="gtkmenu.html">GtkMenu</A> *menu);void (<AHREF="gtkmenu.html#GTKMENUPOSITIONFUNC">*GtkMenuPositionFunc</A>) (<AHREF="gtkmenu.html">GtkMenu</A> *menu, <AHREF=../glib/glib-basic-types.html#GINT>gint</A> *x, <AHREF=../glib/glib-basic-types.html#GINT>gint</A> *y, <AHREF=../glib/glib-basic-types.html#GPOINTER>gpointer</A> user_data);void (<AHREF="gtkmenu.html#GTKMENUDETACHFUNC">*GtkMenuDetachFunc</A>) (<AHREF="gtkwidget.html">GtkWidget</A> *attach_widget, <AHREF="gtkmenu.html">GtkMenu</A> *menu); </PRE></TD></TR></TABLE></DIV><DIVCLASS="REFSECT1"><ANAME="AEN30817"></A><H2>Object Hierarchy</H2><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="SYNOPSIS"> <AHREF="gtkobject.html">GtkObject</A> +----<AHREF="gtkwidget.html">GtkWidget</A> +----<AHREF="gtkcontainer.html">GtkContainer</A> +----<AHREF="gtkmenushell.html">GtkMenuShell</A> +----GtkMenu</PRE></TD></TR></TABLE></DIV><DIVCLASS="REFSECT1"><ANAME="AEN30824"></A><H2>Description</H2><P>A <AHREF="gtkmenu.html">GtkMenu</A> is a <AHREF="gtkmenushell.html">GtkMenuShell</A> that implements a drop down menu consisting ofa list of <AHREF="gtkmenuitem.html">GtkMenuItem</A> objects which can be navigated and activated by the user to perform application functions.</P><P>A <AHREF="gtkmenu.html">GtkMenu</A> is most commonly dropped down by activating a <AHREF="gtkmenuitem.html">GtkMenuItem</A> in a <AHREF="gtkmenubar.html">GtkMenuBar</A> or popped up by activating a <AHREF="gtkmenuitem.html">GtkMenuItem</A> in another <AHREF="gtkmenu.html">GtkMenu</A>. </P><P>A <AHREF="gtkmenu.html">GtkMenu</A> can also be popped up by activating a <AHREF="gtkoptionmenu.html">GtkOptionMenu</A>. Other composite widgets such as the <AHREF="gtknotebook.html">GtkNotebook</A> can pop up a <AHREF="gtkmenu.html">GtkMenu</A> as well.</P><P>Applications can display a <AHREF="gtkmenu.html">GtkMenu</A> as a popup menu by calling the <AHREF="gtkmenu.html#GTK-MENU-POPUP">gtk_menu_popup</A>() function. The example below shows how an applicationcan pop up a menu when the 3rd mouse button is pressed. </P><DIVCLASS="EXAMPLE"><ANAME="AEN30844"></A><P><B>Example 1. Connecting the popup signal handler.</B></P><TABLEBORDER="0"BGCOLOR="#D8F8D8"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="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));</PRE></TD></TR></TABLE></DIV><DIVCLASS="EXAMPLE"><ANAME="AEN30847"></A><P><B>Example 2. Signal handler which displays a popup menu.</B></P><TABLEBORDER="0"BGCOLOR="#D8F8D8"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">static gintmy_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 * gtk_signal_connect_object 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;}</PRE></TD></TR></TABLE></DIV></DIV><DIVCLASS="REFSECT1"><ANAME="AEN30850"></A><H2>Details</H2><DIVCLASS="REFSECT2"><ANAME="AEN30852"></A><H3><ANAME="GTKMENU-STRUCT"></A>struct GtkMenu</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">struct GtkMenu;</PRE></TD></TR></TABLE><P>The <AHREF="gtkmenu.html#GTKMENU-STRUCT">GtkMenu</A> struct contains private data only, andshould be accessed using the functions below.</P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN30858"></A><H3><ANAME="GTK-MENU-NEW"></A>gtk_menu_new ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><AHREF="gtkwidget.html">GtkWidget</A>* gtk_menu_new (void);</PRE></TD></TR></TABLE><P>Creates a new <AHREF="gtkmenu.html">GtkMenu</A>.</P><DIVCLASS="INFORMALTABLE"><ANAME="AEN30865"></A><P></P><TABLEBORDER="0"WIDTH="100%"BGCOLOR="#FFD0D0"CELLSPACING="0"CELLPADDING="4"CLASS="CALSTABLE"><TBODY><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><ICLASS="EMPHASIS">Returns</I> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">a new <AHREF="gtkmenu.html">GtkMenu</A>. </TD></TR></TBODY></TABLE><P></P></DIV></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN30875"></A><H3><ANAME="GTK-MENU-APPEND"></A>gtk_menu_append ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_menu_append (<AHREF="gtkmenu.html">GtkMenu</A> *menu, <AHREF="gtkwidget.html">GtkWidget</A> *child);</PRE></TD></TR></TABLE><P>Adds a new <AHREF="gtkmenuitem.html">GtkMenuItem</A> to the end of the menu's item list.</P><DIVCLASS="INFORMALTABLE"><ANAME="AEN30883"></A><P></P><TABLEBORDER="0"WIDTH="100%"BGCOLOR="#FFD0D0"CELLSPACING="0"CELLPADDING="4"CLASS="CALSTABLE"><TBODY><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>menu</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">a <AHREF="gtkmenu.html">GtkMenu</A>.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>child</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">The <AHREF="gtkmenuitem.html">GtkMenuItem</A> to add. </TD></TR></TBODY></TABLE><P></P></DIV></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN30898"></A><H3><ANAME="GTK-MENU-PREPEND"></A>gtk_menu_prepend ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_menu_prepend (<AHREF="gtkmenu.html">GtkMenu</A> *menu, <AHREF="gtkwidget.html">GtkWidget</A> *child);</PRE></TD></TR></TABLE><P>Adds a new <AHREF="gtkmenuitem.html">GtkMenuItem</A> to the beginning of the menu's item list.</P><DIVCLASS="INFORMALTABLE"><ANAME="AEN30906"></A><P></P><TABLEBORDER="0"WIDTH="100%"BGCOLOR="#FFD0D0"CELLSPACING="0"CELLPADDING="4"CLASS="CALSTABLE"><TBODY><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>menu</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">a <AHREF="gtkmenu.html">GtkMenu</A>.</TD></TR><TR><TDWIDTH="20%"ALIGN="RIGHT"VALIGN="TOP"><TTCLASS="PARAMETER"><I>child</I></TT> :</TD><TDWIDTH="80%"ALIGN="LEFT"VALIGN="TOP">The <AHREF="gtkmenuitem.html">GtkMenuItem</A> to add. </TD></TR></TBODY></TABLE><P></P></DIV></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN30921"></A><H3><ANAME="GTK-MENU-INSERT"></A>gtk_menu_insert ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void gtk_menu_insert (<A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -