<HTML ><HEAD ><TITLE >gnome-popup-menu</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.74b"><LINK REL="HOME" TITLE="Gnome User Interface Library Reference Manual" HREF="book1.html"><LINK REL="UP" TITLE="Gnome User Interface Library" HREF="libgnomeui.html"><LINK REL="PREVIOUS" TITLE="gnome-popup-help" HREF="gnomeui-gnome-popup-help.html"><LINK REL="NEXT" TITLE="gnome-preferences" HREF="gnomeui-gnome-preferences.html"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE WIDTH="100%" BORDER="0" BGCOLOR="#000000" CELLPADDING="1" CELLSPACING="0" ><TR ><TH COLSPAN="4" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="5" >Gnome User Interface Library Reference Manual</FONT ></TH ></TR ><TR ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="left" ><A HREF="gnomeui-gnome-popup-help.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><<< Previous Page</B ></FONT ></A ></TD ><TD WIDTH="25%" BGCOLOR="#0000C0" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="book1.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Home</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#00C000" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="libgnomeui.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Up</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="right" ><A HREF="gnomeui-gnome-preferences.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Next Page >>></B ></FONT ></A ></TD ></TR ></TABLE ></DIV ><H1 ><A NAME="GNOMEUI-GNOME-POPUP-MENU" >gnome-popup-menu</A ></H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN4774" ></A ><H2 >Name</H2 >gnome-popup-menu -- Routines for attaching popup menus to widgets.</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN4777" ></A ><H2 >Synopsis</H2 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="SYNOPSIS" > #include <gnome.h> <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK >* <A HREF="gnomeui-gnome-popup-menu.html#GNOME-POPUP-MENU-NEW" >gnome_popup_menu_new</A > (<A HREF="gnomeui-gnome-app-helper.html#GNOMEUIINFO" >GnomeUIInfo</A > *uiinfo); <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK >* <A HREF="gnomeui-gnome-popup-menu.html#GNOME-POPUP-MENU-NEW-WITH-ACCELGROUP" >gnome_popup_menu_new_with_accelgroup</A > (<A HREF="gnomeui-gnome-app-helper.html#GNOMEUIINFO" >GnomeUIInfo</A > *uiinfo, <GTKDOCLINK HREF="GTKACCELGROUP" >GtkAccelGroup</GTKDOCLINK > *accelgroup); <GTKDOCLINK HREF="GTKACCELGROUP" >GtkAccelGroup</GTKDOCLINK >* <A HREF="gnomeui-gnome-popup-menu.html#GNOME-POPUP-MENU-GET-ACCEL-GROUP" >gnome_popup_menu_get_accel_group</A > (<GTKDOCLINK HREF="GTKMENU" >GtkMenu</GTKDOCLINK > *menu); void <A HREF="gnomeui-gnome-popup-menu.html#GNOME-POPUP-MENU-ATTACH" >gnome_popup_menu_attach</A > (<GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *popup, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > user_data); void <A HREF="gnomeui-gnome-popup-menu.html#GNOME-POPUP-MENU-DO-POPUP" >gnome_popup_menu_do_popup</A > (<GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *popup, <GTKDOCLINK HREF="GTKMENUPOSITIONFUNC" >GtkMenuPositionFunc</GTKDOCLINK > pos_func, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > pos_data, <GTKDOCLINK HREF="GDKEVENTBUTTON" >GdkEventButton</GTKDOCLINK > *event, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > user_data); int <A HREF="gnomeui-gnome-popup-menu.html#GNOME-POPUP-MENU-DO-POPUP-MODAL" >gnome_popup_menu_do_popup_modal</A > (<GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *popup, <GTKDOCLINK HREF="GTKMENUPOSITIONFUNC" >GtkMenuPositionFunc</GTKDOCLINK > pos_func, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > pos_data, <GTKDOCLINK HREF="GDKEVENTBUTTON" >GdkEventButton</GTKDOCLINK > *event, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > user_data);</PRE ></TD ></TR ></TABLE ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN4806" ></A ><H2 >Description</H2 ><P > The routines in this module provide various ways of displaying popup menus our application. </P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN4809" ></A ><H2 >Details</H2 ><DIV CLASS="REFSECT2" ><A NAME="AEN4811" ></A ><H3 ><A NAME="GNOME-POPUP-MENU-NEW" ></A >gnome_popup_menu_new ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK >* gnome_popup_menu_new (<A HREF="gnomeui-gnome-app-helper.html#GNOMEUIINFO" >GnomeUIInfo</A > *uiinfo);</PRE ></TD ></TR ></TABLE ><P >This function behaves just like <A HREF="gnomeui-gnome-popup-menu.html#GNOME-POPUP-MENU-NEW-WITH-ACCELGROUP" >gnome_popup_menu_new_with_accelgroup</A >(), except that it creates an accelgroup for you and attaches it to the menu object. Use <A HREF="gnomeui-gnome-popup-menu.html#GNOME-POPUP-MENU-GET-ACCEL-GROUP" >gnome_popup_menu_get_accel_group</A >() to get the accelgroup that is created.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN4821" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >uiinfo</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >a menu widget </TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN4834" ></A ><H3 ><A NAME="GNOME-POPUP-MENU-NEW-WITH-ACCELGROUP" ></A >gnome_popup_menu_new_with_accelgroup ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK >* gnome_popup_menu_new_with_accelgroup (<A HREF="gnomeui-gnome-app-helper.html#GNOMEUIINFO" >GnomeUIInfo</A > *uiinfo, <GTKDOCLINK HREF="GTKACCELGROUP" >GtkAccelGroup</GTKDOCLINK > *accelgroup);</PRE ></TD ></TR ></TABLE ><P >Creates a popup menu out of the specified uiinfo array. Use <A HREF="gnomeui-gnome-popup-menu.html#GNOME-POPUP-MENU-DO-POPUP" >gnome_popup_menu_do_popup</A >() to pop the menu up, or attach it to a window with <A HREF="gnomeui-gnome-popup-menu.html#GNOME-POPUP-MENU-ATTACH" >gnome_popup_menu_attach</A >().</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN4845" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >uiinfo</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >accelgroup</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >a menu widget</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN4862" ></A ><H3 ><A NAME="GNOME-POPUP-MENU-GET-ACCEL-GROUP" ></A >gnome_popup_menu_get_accel_group ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GTKACCELGROUP" >GtkAccelGroup</GTKDOCLINK >* gnome_popup_menu_get_accel_group (<GTKDOCLINK HREF="GTKMENU" >GtkMenu</GTKDOCLINK > *menu);</PRE ></TD ></TR ></TABLE ><P ></P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN4870" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >menu</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >the accelgroup associated with the specified GtkMenu. This is the accelgroup that was created by <A HREF="gnomeui-gnome-popup-menu.html#GNOME-POPUP-MENU-NEW" >gnome_popup_menu_new</A >(). If you want to specify the accelgroup that the popup menu accelerators use, then use <A HREF="gnomeui-gnome-popup-menu.html#GNOME-POPUP-MENU-NEW-WITH-ACCELGROUP" >gnome_popup_menu_new_with_accelgroup</A >().</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN4885" ></A ><H3 ><A NAME="GNOME-POPUP-MENU-ATTACH" ></A >gnome_popup_menu_attach ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void gnome_popup_menu_attach (<GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *popup, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > user_data);</PRE ></TD ></TR ></TABLE ><P >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.</P ><P >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.</P ><P >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.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN4896" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >popup</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >widget</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >user_data</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN4913" ></A ><H3 ><A NAME="GNOME-POPUP-MENU-DO-POPUP" ></A >gnome_popup_menu_do_popup ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void gnome_popup_menu_do_popup (<GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *popup, <GTKDOCLINK HREF="GTKMENUPOSITIONFUNC" >GtkMenuPositionFunc</GTKDOCLINK > pos_func, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > pos_data, <GTKDOCLINK HREF="GDKEVENTBUTTON" >GdkEventButton</GTKDOCLINK > *event, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > user_data);</PRE ></TD ></TR ></TABLE ><P >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.</P ><P >The pos_func and pos_data parameters are the same as for <GTKDOCLINK HREF="GTK-MENU-POPUP" >gtk_menu_popup</GTKDOCLINK >(), 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.</P ><P >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.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN4927" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >popup</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >pos_func</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >pos_data</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >event</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >user_data</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN4952" ></A ><H3 ><A NAME="GNOME-POPUP-MENU-DO-POPUP-MODAL" ></A >gnome_popup_menu_do_popup_modal ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int gnome_popup_menu_do_popup_modal (<GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *popup, <GTKDOCLINK HREF="GTKMENUPOSITIONFUNC" >GtkMenuPositionFunc</GTKDOCLINK > pos_func, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > pos_data, <GTKDOCLINK HREF="GDKEVENTBUTTON" >GdkEventButton</GTKDOCLINK > *event, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > user_data);</PRE ></TD ></TR ></TABLE ><P >Same as above, but runs the popup menu modally and returns the index of the selected item, or -1 if none.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN4963" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >popup</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >pos_func</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >pos_data</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >event</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >user_data</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><BR CLEAR="all"><BR><TABLE WIDTH="100%" BORDER="0" BGCOLOR="#000000" CELLPADDING="1" CELLSPACING="0" ><TR ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="left" ><A HREF="gnomeui-gnome-popup-help.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><<< Previous Page</B ></FONT ></A ></TD ><TD WIDTH="25%" BGCOLOR="#0000C0" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="book1.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Home</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#00C000" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="libgnomeui.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Up</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="right" ><A HREF="gnomeui-gnome-preferences.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Next Page >>></B ></FONT ></A ></TD ></TR ><TR ><TD COLSPAN="2" ALIGN="left" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >gnome-popup-help</B ></FONT ></TD ><TD COLSPAN="2" ALIGN="right" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >gnome-preferences</B ></FONT ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >