<?xml version="1.0" standalone="no"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">

<refentry id="class-gtkoptionmenu">
  <refnamediv>
    <refname>gtk.OptionMenu</refname>
    <refpurpose>a widget used to provide a list of valid choices.</refpurpose>
  </refnamediv>

  <refsect1>
    <title>Synopsis</title>

    <classsynopsis language="python">
      <ooclass><classname>gtk.OptionMenu</classname></ooclass>
      <ooclass><classname><link
linkend="class-gtkbutton">gtk.Button</link></classname></ooclass>
      <constructorsynopsis language="python">
	<methodname><link
linkend="constructor-gtkoptionmenu">gtk.OptionMenu</link></methodname>
	<methodparam></methodparam>  </constructorsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkoptionmenu--get-menu">get_menu</link></methodname>
	<methodparam></methodparam>  </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkoptionmenu--set-menu">set_menu</link></methodname>
	<methodparam><parameter
		       role="keyword">menu</parameter></methodparam>
      </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkoptionmenu--remove-menu">remove_menu</link></methodname>
	<methodparam></methodparam>  </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkoptionmenu--get-history">get_history</link></methodname>
	<methodparam></methodparam>  </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkoptionmenu--set-history">set_history</link></methodname>
	<methodparam><parameter
		       role="keyword">index</parameter></methodparam>
      </methodsynopsis>
    </classsynopsis>

  </refsect1>

  <refsect1>
    <title>Ancestry</title>

<synopsis>+-- <link linkend="class-gobject">gobject.GObject</link>
  +-- <link linkend="class-gtkobject">gtk.Object</link>
    +-- <link linkend="class-gtkwidget">gtk.Widget</link>
      +-- <link linkend="class-gtkcontainer">gtk.Container</link>
        +-- <link linkend="class-gtkbin">gtk.Bin</link>
          +-- <link linkend="class-gtkbutton">gtk.Button</link>
            +-- <link linkend="class-gtkoptionmenu">gtk.OptionMenu</link>
</synopsis>

  </refsect1>
  
  <refsect1>
		<title>Implemented Interfaces</title>
		<para>
			<link linkend="class-gtkoptionmenu"><classname>gtk.OptionMenu</classname></link>
			implements 
			<link linkend="class-gtkbuildable"><classname>gtk.Buildable</classname></link>
		</para>
	</refsect1>

  <refsect1 id="properties-gtkoptionmenu">
    <title>gtk.OptionMenu Properties</title>

    <para><link linkend="properties-gtkobject">gtk.Object Properties</link></para>
    <para><link linkend="properties-gtkwidget">gtk.Widget Properties</link></para>
    <para><link linkend="properties-gtkcontainer">gtk.Container Properties</link></para>
    <para><link linkend="properties-gtkbutton">gtk.Button Properties</link></para>

    <blockquote role="properties">
      <informaltable pgwide="1" frame="none">
	<tgroup cols="3">
	  <colspec column="1" colwidth="1in"/>
	  <colspec column="2" colwidth="1in"/>
	  <colspec column="3" colwidth="4in"/>
	  <tbody>

	    <row valign="top">
	      <entry>"menu"</entry>
	      <entry>Read-Write</entry>
	      <entry>The menu of options.</entry>
	    </row>

	  </tbody>
	</tgroup>
      </informaltable>
    </blockquote>

  </refsect1>

  <refsect1 id="style-properties-gtkoptionmenu">
    <title>gtk.OptionMenu Style Properties</title>

    <para><link linkend="style-properties-gtkwidget">gtk.Widget Style Properties</link></para>
    <para><link linkend="style-properties-gtkbutton">gtk.Button Style Properties</link></para>

    <blockquote role="properties">
      <informaltable pgwide="1" frame="none">
	<tgroup cols="3">
	  <colspec column="1" colwidth="1in"/>
	  <colspec column="2" colwidth="1in"/>
	  <colspec column="3" colwidth="4in"/>
	  <tbody>

	    <row valign="top">
	      <entry>"indicator-size"</entry>
	      <entry>Read</entry>
	      <entry>The size of the dropdown indicator</entry>
	    </row>
	    <row valign="top">
	      <entry>"indicator-spacing"</entry>
	      <entry>Read</entry>
	      <entry>The spacing around the indicator.</entry>
	    </row>

	  </tbody>
	</tgroup>
      </informaltable>
    </blockquote>

  </refsect1>

  <refsect1 id="signal-prototypes-gtkoptionmenu">
    <title>gtk.OptionMenu Signal Prototypes</title>

    <para><link linkend="signal-prototypes-gobject">gobject.GObject Signal Prototypes</link></para>
    <para><link linkend="signal-prototypes-gtkobject">gtk.Object Signal Prototypes</link></para>
    <para><link linkend="signal-prototypes-gtkwidget">gtk.Widget Signal Prototypes</link></para>
    <para><link linkend="signal-prototypes-gtkcontainer">gtk.Container Signal Prototypes</link></para>
    <para><link linkend="signal-prototypes-gtkbutton">gtk.Button Signal Prototypes</link></para>

    <variablelist>
      <varlistentry>
        <term>"<link
linkend="signal-gtkoptionmenu--changed">changed</link>"</term>
        <listitem>
          <methodsynopsis
	    language="python"><methodname>callback</methodname>
            <methodparam><parameter>optionmenu</parameter>
            </methodparam>
            <methodparam><parameter>user_param1</parameter>
            </methodparam>
            <methodparam><parameter>...</parameter>
            </methodparam>
          </methodsynopsis>
        </listitem>
      </varlistentry>
    </variablelist>

  </refsect1>

  <refsect1>
    <title>Description</title>

    <warning>
      <para><link
linkend="class-gtkoptionmenu"><classname>gtk.OptionMenu</classname></link>
is deprecated in PyGTK 2.4; use the <link
linkend="class-gtkcombobox"><classname>gtk.ComboBox</classname></link>
instead.</para>
    </warning>

    <para>A <link
linkend="class-gtkoptionmenu"><classname>gtk.OptionMenu</classname></link>
is a widget allows the user to choose from a list of valid choices from an
associated menu. The <link
linkend="class-gtkoptionmenu"><classname>gtk.OptionMenu</classname></link>
displays the last selected choice. When activated (clicked) the <link
linkend="class-gtkoptionmenu"><classname>gtk.OptionMenu</classname></link>
displays a popup <link
linkend="class-gtkmenu"><classname>gtk.Menu</classname></link> which allows
the user to make a new choice. Using a <link
linkend="class-gtkoptionmenu"><classname>gtk.OptionMenu</classname></link>
is simple:</para>

    <itemizedlist>
      <listitem>
	<simpara>build a <link
linkend="class-gtkmenu"><classname>gtk.Menu</classname></link> using <link
linkend="constructor-gtkmenu"><methodname>gtk.Menu</methodname>()</link></simpara>
      </listitem>
      <listitem>
	<simpara>then append menu items to it using <link
linkend="method-gtkmenushell--append"><methodname>gtk.MenuShell.append</methodname>()</link></simpara>
      </listitem>
      <listitem>
	<simpara>associate the menu with the option menu using <link
linkend="method-gtkoptionmenu--set-menu"><methodname>set_menu</methodname>()</link></simpara>
      </listitem>
      <listitem>
	<simpara>set the selected menu item with <link
linkend="method-gtkoptionmenu--set-history"><methodname>set_history</methodname>()</link></simpara>
      </listitem>
      <listitem>
	<simpara>connect to the "changed" signal on the option menu; in the
"changed" signal</simpara>
      </listitem>
      <listitem>
	<simpara>check the new selected menu item with <link
linkend="method-gtkoptionmenu--get-history"><methodname>get_history</methodname>()</link>.</simpara>
      </listitem>
    </itemizedlist>

  </refsect1>

  <refsect1 id="constructor-gtkoptionmenu">
    <title>Constructor</title>

    <programlisting><constructorsynopsis language="python">
	<methodname>gtk.OptionMenu</methodname>
	<methodparam></methodparam>  </constructorsynopsis></programlisting>
    <variablelist>
      <varlistentry>
	<term><emphasis>Returns</emphasis>&nbsp;:</term>
	<listitem><simpara>a new optionmenu widget</simpara></listitem>
      </varlistentry>
    </variablelist>

    <para>Creates a new <link
linkend="class-gtkoptionmenu"><classname>gtk.OptionMenu</classname></link>
widget.</para>

  </refsect1>

  <refsect1>
    <title>Methods</title>

    <refsect2 id="method-gtkoptionmenu--get-menu">
      <title>gtk.OptionMenu.get_menu</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>get_menu</methodname>
	  <methodparam></methodparam>  </methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><emphasis>Returns</emphasis>&nbsp;:</term>
	  <listitem><simpara>a menu widget or <literal>None</literal> if no
menu is associated</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>get_menu</methodname>() method returns the menu
that is associated with the optionmenu or <literal>None</literal> if no menu
is associated.</para>

    </refsect2>

    <refsect2 id="method-gtkoptionmenu--set-menu">
      <title>gtk.OptionMenu.set_menu</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>set_menu</methodname>
	  <methodparam><parameter
			 role="keyword">menu</parameter></methodparam>
	</methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><parameter role="keyword">menu</parameter>&nbsp;:</term>
	  <listitem><simpara>a menu to be associated with the
optionmenu</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>set_menu</methodname>() method associates the
<link linkend="class-gtkmenu"><classname>gtk.Menu</classname></link> widget
specified by <parameter>menu</parameter> with the optionmenu thus providing
the way for a user to select a new choice. A simple menu, avoiding the use
of tearoff menu items, submenus, and accelerators, should be used.</para>

    </refsect2>

    <refsect2 id="method-gtkoptionmenu--remove-menu">
      <title>gtk.OptionMenu.remove_menu</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>remove_menu</methodname>
	  <methodparam></methodparam>  </methodsynopsis></programlisting>

      <para>The <methodname>remove_menu</methodname>() method removes the
currently associated menu from the optionmenu.</para>

    </refsect2>

    <refsect2 id="method-gtkoptionmenu--get-history">
      <title>gtk.OptionMenu.get_history</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>get_history</methodname>
	  <methodparam></methodparam>  </methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><emphasis>Returns</emphasis>&nbsp;:</term>
	  <listitem><simpara>the index of the selected menu item, or -1 if
there are no menu items</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>get_history</methodname>() method returns the
index of the currently selected menu item or -1 if there are no menu items.
The menu items are numbered from top to bottom, starting with 0.</para>

    </refsect2>

    <refsect2 id="method-gtkoptionmenu--set-history">
      <title>gtk.OptionMenu.set_history</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>set_history</methodname>
	  <methodparam><parameter
			 role="keyword">index</parameter></methodparam>
	</methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><parameter role="keyword">index</parameter>&nbsp;:</term>
	  <listitem><simpara>the index of the menu item to display as the
selected optionmenu choice</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>set_history</methodname>() method selects the
menu item specified by <parameter>index</parameter> as the displayed
optionmenu choice.</para>

    </refsect2>

  </refsect1>

  <refsect1>
    <title>Signals</title>

    <refsect2 id="signal-gtkoptionmenu--changed">
      <title>The "changed" gtk.OptionMenu Signal</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>callback</methodname>
	  <methodparam><parameter>optionmenu</parameter></methodparam>
	  <methodparam><parameter>user_param1</parameter></methodparam>
	  <methodparam><parameter>...</parameter></methodparam>
	</methodsynopsis></programlisting>

      <variablelist>
	<varlistentry>
	  <term><parameter>optionmenu</parameter>&nbsp;:</term>
	  <listitem><simpara>the optionmenu that received the
signal</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter>user_param1</parameter>&nbsp;:</term>
          <listitem><simpara>the first user parameter (if any) specified
with the <link
linkend="method-gobject--connect"><methodname>connect</methodname>()</link>
method</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter>...</parameter>&nbsp;:</term>
	  <listitem><simpara>additional user parameters (if
any)</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The "changed" signal is emitted when a new optionmenu choice is
made.</para>

    </refsect2>

  </refsect1>

</refentry>
