<Type Name="Selection" FullName="Atk.Selection">
  <TypeSignature Language="C#" Maintainer="auto" Value="public interface Selection : GLib.IWrapper" />
  <AssemblyInfo>
    <AssemblyName>atk-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
    <AssemblyVersion>2.12.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>
      The ATK interface implemented by container objects whose <see cref="T:Atk.Object" /> children can be selected.
    </summary>
    <remarks>
      <para>
        The ATK interface implemented by container objects whose <see cref="T:Atk.Object" /> children can be selected.
      </para>
      <para>
        This should be implemented by UI components with children
        which are exposed by <see cref="M:Atk.Object.RefChild" /> and
        <see cref="M:Atk.Object.NChildren" />, if the use of the parent UI
        component ordinarily involves selection of one or more of the
        objects corresponding to those AtkObject children - for
        example, selectable lists.
      </para>
      <para>
        Note that other types of "selection" (for instance text
        selection) are accomplished a other ATK interfaces -
        <see cref="T:Atk.Selection" /> is limited to the selection/deselection of
        children.
      </para>
    </remarks>
  </Docs>
  <Interfaces>
    <Interface>
      <InterfaceName>GLib.IWrapper</InterfaceName>
    </Interface>
  </Interfaces>
  <Members>
    <Member MemberName="SelectAllSelection">
      <MemberSignature Language="C#" Value="public bool SelectAllSelection ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Causes every child of the object to be selected if the object supports multiple selections.</summary>
        <returns>
          <see langword="true" /> if success, <see langword="false" /> otherwise.
        </returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="RemoveSelection">
      <MemberSignature Language="C#" Value="public bool RemoveSelection (int i);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="i" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Removes the specified child of the object from the object's selection.</summary>
        <param name="i">
          A <see langword="int" /> specifying the index in the selection set. (e.g. the
          ith selection as opposed to the ith child).
        </param>
        <returns>
          <see langword="true" /> if success, <see langword="false" />
          otherwise.
        </returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="IsChildSelected">
      <MemberSignature Language="C#" Value="public bool IsChildSelected (int i);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="i" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Determines if the current child of this object is selected.</summary>
        <param name="i">A <see langword="int" /> specifying the child index.</param>
        <returns>A bool representing the specified child is selected, or 0 if selection does not implement this interface.</returns>
        <remarks>
          <para>
            Callers should not rely on 0 or on a zero value for
            indication of whether AtkSelectionIface is implemented, they
            should use type checking/interface checking macros or the
            atk_get_accessible_value() convenience method.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="ClearSelection">
      <MemberSignature Language="C#" Value="public bool ClearSelection ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Clears the selection in the object so that no children in the object are selected.</summary>
        <returns>
          <see langword="true" /> if success, <see langword="false" /> otherwise.
        </returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="AddSelection">
      <MemberSignature Language="C#" Value="public bool AddSelection (int i);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="i" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Adds the specified accessible child of the object to the object's selection.</summary>
        <param name="i">A <see langword="int" /> specifying the child index.</param>
        <returns>
          <see langword="true" /> if success, <see langword="false" /> otherwise.
        </returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="RefSelection">
      <MemberSignature Language="C#" Value="public Atk.Object RefSelection (int i);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Atk.Object</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="i" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="i">To be added: an object of type 'int'</param>
        <returns>To be added: an object of type 'Atk.Object'</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="SelectionCount">
      <MemberSignature Language="C#" Value="public int SelectionCount { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the number of accessible children currently selected.</summary>
        <value>
          A <see langword="int" /> representing the number of items
          selected, or 0 if selection does not implement this
          interface.
        </value>
        <remarks>
          <para>
            Callers should not rely on 0 or on a zero value for
            indication of whether AtkSelectionIface is implemented,
            they should use type checking/interface checking macros or
            the atk_get_accessible_value() convenience method.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="SelectionChanged">
      <MemberSignature Language="C#" Value="public event EventHandler SelectionChanged;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>System.EventHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Event raised when the selected is changed.</summary>
        <remarks />
      </Docs>
    </Member>
  </Members>
</Type>
