<Type Name="Combo" FullName="Gtk.Combo">
  <TypeSignature Language="C#" Value="public class Combo : Gtk.HBox, Implementor, IWrapper, IWrapper, IDisposable" Maintainer="auto" />
  <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 text entry field with a dropdown list</summary>
    <remarks>
      <para>
        The GtkCombo 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 GtkList widget and can be accessed using the
        list member of the GtkCombo. List elements can contain arbitrary
        widgets, but if an element is not a plain label, then you must use
        the gtk_list_set_item_string() 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
        gtk_combo_set_use_arrows().
      </para>
      <example>
        <para>
          Creating a GtkCombo widget with simple text items:
        </para>
        <code lang="c#">
          Gtk.Combo MakeCombo () {
            GLib.List l = new GLib.List (IntPtr.Zero, typeof(string));
            l.Append(Marshal.StringToHGlobalAnsi("String 1"));
            l.Append(Marshal.StringToHGlobalAnsi("String 2"));
            Gtk.Combo combo = new Gtk.Combo
              (new GLib.Type((uint)TypeFundamentals.TypeString));
            combo.PopdownStrings = l;
            return combo;
          }
        </code>
        <para>
          See <see cref="T:GLib.List" /> for more about GLib.List.
        </para>
      </example>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>Gtk.HBox</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="SetPopdownStrings">
      <MemberSignature Language="C#" Value="public void SetPopdownStrings (string [] args);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="args" Type="System.String []" />
      </Parameters>
      <Docs>
        <summary>Convenience function to set all of the items in the popup list.</summary>
        <param name="args">To be added: an object of type 'string []'</param>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <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 Gtk.Entry field when a particular list item is selected. This is needed if the list item is not a simple label.</summary>
        <param name="item">To be added: an object of type 'Gtk.Item'</param>
        <param name="item_value">To be added: an object of type 'string'</param>
        <remarks>To be added</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>Stops the Gtk.Combo widget from showing the popup list when the Gtk.Entry emits the "activate" signal, 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.</summary>
        <remarks>To be added</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 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>
        <returns>An instance of Combo, 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 Combo ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Creates a new Combo.</summary>
        <returns>To be added: an object of type 'Gtk.Combo'</returns>
        <remarks>To be added</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 GLib Type for Gtk.Combo</summary>
        <returns>The GLib Type for the Gtk.Combo class.</returns>
        <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 Button asociated with the Combo.</summary>
        <returns>To be added: an object of type 'Gtk.Button'</returns>
        <remarks>To be added</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 Entry asociated with the Combo.</summary>
        <returns>To be added: an object of type 'Gtk.Entry'</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="PopdownStrings">
      <MemberSignature Language="C#" Value="public GLib.List PopdownStrings { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>GLib.List</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="GLib.List" />
      </Parameters>
      <Docs>
        <summary>Property to set all of the items in the popup list.</summary>
        <param name="value">To be added: an object of type 'GLib.List'</param>
        <returns>To be added: an object of type 'GLib.List'</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="UseArrowsAlways">
      <MemberSignature Language="C#" Value="public bool UseArrowsAlways { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Does nothing. ---- To get out ----</summary>
        <param name="value">To be added: an object of type 'bool'</param>
        <returns>To be added: an object of type 'bool'</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="UseArrows">
      <MemberSignature Language="C#" Value="public bool UseArrows { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Specifies if the arrow (cursor) keys can be used to step through the items in the list.</summary>
        <param name="value">To be added: an object of type 'bool'</param>
        <returns>TRUE if the arrow keys can be used to step through the items in the list.</returns>
        <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>
        <Parameter Name="value" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="value">To be added: an object of type 'bool'</param>
        <returns>To be added: an object of type 'bool'</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="ValueInList">
      <MemberSignature Language="C#" Value="public bool ValueInList { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Specifies whether the value entered in the text entry field must match one of the values in the list. If this is set then the user will not be able to perform any other action until a valid value has been entered.</summary>
        <param name="value">TRUE if the value entered must match one of the values in the list.</param>
        <returns>TRUE if the value entered must match one of the values in the list.</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="AllowEmpty">
      <MemberSignature Language="C#" Value="public bool AllowEmpty { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Specifies if an empty field is acceptable.</summary>
        <param name="value">TRUE if an empty value is considered valid.</param>
        <returns>TRUE if an empty value is considered valid.</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="EnableArrowKeys">
      <MemberSignature Language="C#" Value="public bool EnableArrowKeys { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Specifies if the arrow (cursor) keys can be used to step through the items in the list. This is true by default.</summary>
        <param name="value">TRUE if the arrow keys can be used to step through the items in the list.</param>
        <returns>TRUE if the arrow keys can be used to step through the items in the list.</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="CaseSensitive">
      <MemberSignature Language="C#" Value="public bool CaseSensitive { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Specifies whether the text entered into the Entry field and the text in the list items is case sensitive.</summary>
        <param name="value">TRUE if the text in the list items is case sensitive.</param>
        <returns>TRUE if the text in the list items is case sensitive.</returns>
        <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>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected Combo (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 Combo, using the GLib-provided type</returns>
        <remarks>
          <para>This is a constructor used by derivative types of <see cref="T:Gtk.Combo" /> that would have their own GLib type assigned to it.  This is not typically used by C# code.</para>
        </remarks>
      </Docs>
    </Member>
  </Members>
</Type>