<Type Name="OptionMenu" FullName="Gtk.OptionMenu"> <TypeSignature Language="C#" Value="public class OptionMenu : Gtk.Button, Implementor, IWrapper, IWrapper, IDisposable" Maintainer="John Luke" /> <AssemblyInfo> <AssemblyName>gtk-sharp</AssemblyName> <AssemblyVersion>0.0.0.0</AssemblyVersion> <Attributes /> </AssemblyInfo> <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement> <Docs> <summary>A widget used to choose from a list of valid choices.</summary> <remarks> <para> A <see cref="T:Gtk.OptionMenu"/> is a widget that allows the user to choose from a list of valid choices. The <see cref="T:Gtk.OptionMenu"/> displays the selected choice. When activated the <see cref="T:Gtk.OptionMenu"/> displays a popup <see cref="T:Gtk.Menu"/> which allows the user to make a new choice. </para> <para> Using a <see cref="T:Gtk.OptionMenu"/> is simple; build a <see cref="T:Gtk.Menu"/>, by calling <see cref="C:Gtk.Menu()"/>, then appending <see cref="T:Gtk.MenuItem"/>s to it with <see cref="M:Gtk.MenuShell.Append()"/>. Set that menu on the <see cref="T:Gtk.OptionMenu"/> with <see cref="P:Gtk.OptionMenu.Menu"/>. Set the selected <see cref="T:Gtk.MenuItem"/> with <see cref="M:Gtk.OptionMenu.SetHistory(System.UInt32)"/>; connect to the event <see cref="E:Gtk.OptionMenu.Changed"/>; when the <see cref="E:Gtk.OptionMenu.Changed"/> event occurs, check the new selected <see cref="T:Gtk.MenuItem"/> with <see cref="P:Gtk.OptionMenu.History"/>. </para> </remarks> <example> <code language="C#"> using System; using Gtk; using GtkSharp; class OptionMenuSample { OptionMenu opt; static void Main () { new OptionMenuSample (); } OptionMenuSample () { Application.Init (); Window win = new Window ("OptionMenuSample"); win.DeleteEvent += new DeleteEventHandler (OnWinDelete); // set up the OptionMenu opt = new OptionMenu (); opt.Changed += new EventHandler (OnOptionChanged); Menu m = new Menu (); MenuItem miOne = new MenuItem ("One"); m.Append (miOne); MenuItem miTwo = new MenuItem ("Two"); m.Append (miTwo); MenuItem miThree = new MenuItem ("Three"); m.Append (miThree); // add children widgets to their parents opt.Menu = m; win.Add (opt); // set the OptionMenu to a value opt.SetHistory (2); win.ShowAll (); Application.Run (); } void OnOptionChanged (object o, EventArgs args) { Console.WriteLine (opt.History); } void OnWinDelete (object o, DeleteEventArgs args) { Application.Quit (); } } </code> </example> </Docs> <Base> <BaseTypeName>Gtk.Button</BaseTypeName> </Base> <Interfaces> <Interface> <InterfaceName>Atk.Implementor</InterfaceName> </Interface> <Interface> <InterfaceName>GLib.IWrapper</InterfaceName> </Interface> <Interface> <InterfaceName>GLib.IWrapper</InterfaceName> </Interface> <Interface> <InterfaceName>System.IDisposable</InterfaceName> </Interface> </Interfaces> <Attributes /> <Members> <Member MemberName="RemoveMenu"> <MemberSignature Language="C#" Value="public void RemoveMenu ();" /> <MemberType>Method</MemberType> <ReturnValue> <ReturnType>System.Void</ReturnType> </ReturnValue> <Parameters /> <Docs> <summary>Removes the menu from the <see cref="T:Gtk.OptionMenu"/>.</summary> <remarks /> </Docs> </Member> <Member MemberName="Finalize"> <MemberSignature Language="C#" Value="protected virtual void Finalize ();" /> <MemberType>Method</MemberType> <ReturnValue> <ReturnType>System.Void</ReturnType> </ReturnValue> <Parameters /> <Docs> <summary>Disposes the resources associated with the object.</summary> <remarks /> </Docs> </Member> <Member MemberName=".ctor"> <MemberSignature Language="C#" Value="public OptionMenu (IntPtr raw);" /> <MemberType>Constructor</MemberType> <ReturnValue /> <Parameters> <Parameter Name="raw" Type="System.IntPtr" /> </Parameters> <Docs> <summary>Internal constructor</summary> <param name="raw">Pointer to the C object.</param> <returns>An instance of <see cref="T:Gtk.OptionMenu"/>, wrapping the C object.</returns> <remarks> <para>This is an internal constructor, and should not be used by user code.</para> </remarks> </Docs> </Member> <Member MemberName=".ctor"> <MemberSignature Language="C#" Value="public OptionMenu ();" /> <MemberType>Constructor</MemberType> <ReturnValue /> <Parameters /> <Docs> <summary>Creates a new <see cref="T:Gtk.OptionMenu"/></summary> <returns>an object of type <see cref="T:Gtk.OptionMenu"/></returns> <remarks>This is the default constructor for <see cref="T:Gtk.OptionMenu"/></remarks> </Docs> </Member> <Member MemberName="GType"> <MemberSignature Language="C#" Value="public static uint GType { get; };" /> <MemberType>Property</MemberType> <ReturnValue> <ReturnType>System.UInt32</ReturnType> </ReturnValue> <Docs> <summary>The <see cref="T:GLib.Type"/> for <see cref="T:Gtk.OptionMenu"/></summary> <returns>The <see cref="T:GLib.Type"/> for the <see cref="T:Gtk.OptionMenu"/> class.</returns> <remarks /> </Docs> </Member> <Member MemberName="History"> <MemberSignature Language="C#" Value="public int History { get; };" /> <MemberType>Property</MemberType> <ReturnValue> <ReturnType>System.Int32</ReturnType> </ReturnValue> <Docs> <summary>Retrieves the index of the currently selected <see cref="T:Gtk.MenuItem"/>.</summary> <returns>an object of type <see cref="T:System.Int32"/></returns> <remarks>The <see cref="T:Gtk.MenuItem"/>s are numbered from top to bottom, starting with 0.</remarks> </Docs> </Member> <Member MemberName="Menu"> <MemberSignature Language="C#" Value="public Gtk.Widget Menu { set; get; };" /> <MemberType>Property</MemberType> <ReturnValue> <ReturnType>Gtk.Widget</ReturnType> </ReturnValue> <Parameters> </Parameters> <Docs> <summary>The menu of options.</summary> <param name="value">an object of type <see cref="T:Gtk.Widget"/></param> <returns>an object of type <see cref="T:Gtk.Widget"/></returns> <remarks /> </Docs> </Member> <Member MemberName="Changed"> <MemberSignature Language="C#" Value="public event EventHandler Changed;" /> <MemberType>Event</MemberType> <ReturnValue><ReturnType>System.EventHandler</ReturnType></ReturnValue> <Parameters /> <Docs> <summary>Emitted when the <see cref="T:Gtk.OptionMenu"/> selection is changed.</summary> <remarks /> </Docs> </Member> <Member MemberName=".ctor"> <MemberSignature Language="C#" Value="protected OptionMenu (GLib.Type gtype);" /> <MemberType>Constructor</MemberType> <ReturnValue /> <Parameters> <Parameter Name="gtype" Type="GLib.Type" /> </Parameters> <Docs> <summary>Internal constructor</summary> <param name="gtype">GLib type for the type</param> <returns>Creates a new instance of OptionMenu, using the GLib-provided type</returns> <remarks> <para>This is a constructor used by derivative types of <see cref="T:Gtk.OptionMenu" /> that would have their own GLib type assigned to it. This is not typically used by C# code.</para> </remarks> </Docs> </Member> <Member MemberName="SetHistory"> <MemberSignature Language="C#" Value="public void SetHistory (uint index_);" /> <MemberType>Method</MemberType> <ReturnValue> <ReturnType>System.Void</ReturnType> </ReturnValue> <Parameters> <Parameter Name="index_" Type="System.UInt32" /> </Parameters> <Docs> <summary>Selects the menu item specified by <paramref name="index_"/> making it the newly selected value for the <see cref="T:Gtk.OptionMenu" />.</summary> <param name="index_">a <see cref="T:System.UInt32" /></param> <remarks /> </Docs> </Member> </Members> </Type>