<Type Name="Combo" FullName="Gtk.Combo">
  <TypeSignature Language="C#" Maintainer="John Luke" Value="public class Combo : Gtk.HBox" />
  <AssemblyInfo>
    <AssemblyName>gtk-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
    <AssemblyVersion>2.10.0.0</AssemblyVersion>
  </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 text entry field with a dropdown list</summary>
    <remarks>
      <para>
        The <see cref="T:Gtk.Combo" /> widget consists of a single-line text entry field and a
        drop-down list. The drop-down list is displayed when the user clicks
        on a small arrow button to the right of the entry field.
      </para>
      <para>
        The drop-down list is a <see cref="T:Glib.List" /> widget and can be accessed using the
        list member of the <see cref="T:Gtk.Combo" />. List elements can contain arbitrary
        widgets, but if an element is not a plain label, then you must use
        the <see cref="M:Glib.List.SetItemString()" /> function. This sets the string which
        will be placed in the text entry field when the item is selected.
      </para>
      <para>
        By default, the user can step through the items in the list using the
        arrow (cursor) keys, though this behaviour can be turned off with
        <see cref="P:Gtk.Combo.UseArrows" /> = <see langword="false" />.
      </para>
      <example>
        <para>
          Creating a <see cref="T:Gtk.Combo" /> widget with simple text items:
        </para>
        <code lang="c#">
using System;
using Gtk;

class ComboSample
{
	Combo combo;
	
	static void Main ()
	{
		new ComboSample ();	
	}
	
	ComboSample ()
	{
		Application.Init ();
	
		Window win = new Window ("ComboSample");
		win.DeleteEvent += new DeleteEventHandler (OnWinDelete);

		string[] list = new string[] {"one", "two", "three"};
		
		combo = new Combo ();
		combo.PopdownStrings = list;
		combo.DisableActivate ();
		combo.Entry.Activated += new EventHandler (OnEntryActivated);
		
		win.Add (combo);
	
		win.ShowAll ();
		Application.Run ();
	}
	
	void OnEntryActivated (object o, EventArgs args)
	{
		Console.WriteLine (combo.Entry.Text);
	}
	
	void OnWinDelete (object obj, DeleteEventArgs args)
	{
		Application.Quit ();
	}
}
        </code>
      </example>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>Gtk.HBox</BaseTypeName>
  </Base>
  <Interfaces></Interfaces>
  <Attributes>
    <Attribute>
      <AttributeName>System.Obsolete(Message=null, IsError=False)</AttributeName>
    </Attribute>
  </Attributes>
  <Members>
    <Member MemberName="SetItemString">
      <MemberSignature Language="C#" Value="public void SetItemString (Gtk.Item item, string item_value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="item" Type="Gtk.Item" />
        <Parameter Name="item_value" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>Sets the string to place in the <see cref="T:Gtk.Entry" /> field when a particular list item is selected.</summary>
        <param name="item">an object of type <see cref="T:Gtk.Item" /></param>
        <param name="item_value">an object of type <see cref="T:System.String" /></param>
        <remarks>This is not needed if the list item is a simple <see cref="T:Gtk.Label" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="DisableActivate">
      <MemberSignature Language="C#" Value="public void DisableActivate ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Disables showing the popup list on the activate event.</summary>
        <remarks>Stops the <see cref="T:Gtk.Combo" /> widget from showing the popup list when the <see cref="T:Gtk.Entry" /> emits the <see cref="E:Gtk.Entry.Activate" /> event, i.e. when the Return key is pressed.
			This may be useful if, for example, you want the Return key to close a dialog instead.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Combo (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>
        <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 Combo ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Creates a new <see cref="T:Gtk.Combo" />.</summary>
        <remarks>This is the default contructor for <see cref="T:Gtk.Combo" /></remarks>
      </Docs>
    </Member>
    <Member MemberName="Button">
      <MemberSignature Language="C#" Value="public Gtk.Button Button { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Button</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The <see cref="T:Gtk.Button" /> asociated with the <see cref="T:Gtk.Combo" />.</summary>
        <value>an object of type <see cref="T:Gtk.Button" /></value>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Entry">
      <MemberSignature Language="C#" Value="public Gtk.Entry Entry { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Entry</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The <see cref="T:Gtk.Entry" /> asociated with the <see cref="T:Gtk.Combo" />.</summary>
        <value>an object of type <see cref="T:Gtk.Entry" /></value>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="UseArrowsAlways">
      <MemberSignature Language="C#" Value="public bool UseArrowsAlways { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Does nothing. ---- REMOVE ---- See EnableArrowKeys.</summary>
        <value>a <see cref="T:System.Boolean" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="UseArrows">
      <MemberSignature Language="C#" Value="public bool UseArrows { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Specifies if the arrow (cursor) keys can be used to step through the items in the list. See also EnableArrowKeys.</summary>
        <value>
          <see langword="true" /> if the arrow keys can be used to step through the items in the list.</value>
        <remarks>This is on by default.</remarks>
      </Docs>
    </Member>
    <Member MemberName="EnableArrowsAlways">
      <MemberSignature Language="C#" Value="public bool EnableArrowsAlways { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>See <see cref="P:Gtk.Combo.EnableArrowKeys" /></summary>
        <value>a <see cref="T:System.Boolean" /></value>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property(Name="enable-arrows-always")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ValueInList">
      <MemberSignature Language="C#" Value="public bool ValueInList { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Specifies whether the value entered in the text entry field must match one of the values in the list.</summary>
        <value>
          <see langword="true" /> if the value entered must match one of the values in the list.</value>
        <remarks>If this is set then the user will not be able to perform any other action until a valid value has been entered.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property(Name="value-in-list")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="AllowEmpty">
      <MemberSignature Language="C#" Value="public bool AllowEmpty { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Specifies if an empty field is acceptable.</summary>
        <value>
          <see langword="true" /> if an empty value is considered valid.</value>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property(Name="allow-empty")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="EnableArrowKeys">
      <MemberSignature Language="C#" Value="public bool EnableArrowKeys { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Specifies if the arrow (cursor) keys can be used to step through the items in the list.</summary>
        <value>
          <see langword="true" /> if the arrow keys can be used to step through the items in the list.</value>
        <remarks>This is <see langword="true" /> by default.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property(Name="enable-arrow-keys")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="CaseSensitive">
      <MemberSignature Language="C#" Value="public bool CaseSensitive { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Specifies whether the text entered into the <see cref="T:Gtk.Entry" /> field and the text in the list items is case sensitive.</summary>
        <value>
          <see langword="true" /> if the text in the list items is case sensitive.</value>
        <remarks>This may be useful, for example, when you have set true ValueInList to limit the values entered, but you are not worried about differences in case.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property(Name="case-sensitive")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="GType">
      <MemberSignature Language="C#" Value="public static GLib.GType GType { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>GLib.GType</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>GType Property.</summary>
        <value>a <see cref="T:GLib.GType" /></value>
        <remarks>Returns the native <see cref="T:GLib.GType" /> value for <see cref="T:Gtk.Combo" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected Combo (GLib.GType gtype);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="gtype" Type="GLib.GType" />
      </Parameters>
      <Docs>
        <summary>Protected constructor.</summary>
        <param name="gtype">a <see cref="T:GLib.GType" /></param>
        <remarks>Chain to this constructor if you have manually registered a native <see cref="T:GLib.GType" /> value for your subclass.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete(Message=null, IsError=False)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="PopdownStrings">
      <MemberSignature Language="C#" Value="public string[] PopdownStrings { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String[]</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Property to set all of the items in the popup list.</summary>
        <value>An array of strings.</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="SetValueInList">
      <MemberSignature Language="C#" Value="public void SetValueInList (bool val, bool ok_if_empty);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="val" Type="System.Boolean" />
        <Parameter Name="ok_if_empty" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Whether entered values must already be present in the list.</summary>
        <param name="val">a <see cref="T:System.Boolean" /></param>
        <param name="ok_if_empty">a <see cref="T:System.Boolean" /></param>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="List">
      <MemberSignature Language="C#" Value="public Gtk.Widget List { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Widget</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
  </Members>
</Type>
