<Type Name="StateSet" FullName="Atk.StateSet">
  <TypeSignature Language="C#" Maintainer="auto" Value="public class StateSet : GLib.Object" />
  <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>An <see cref="T:Atk.StateSet" /> determines a component's state set.</summary>
    <remarks>An <see cref="T:Atk.StateSet" /> determines a component's state set. It is composed of a set of <see cref="T:Atk.State" />s.</remarks>
  </Docs>
  <Base>
    <BaseTypeName>GLib.Object</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <Members>
    <Member MemberName="ContainsState">
      <MemberSignature Language="C#" Value="public bool ContainsState (Atk.StateType type);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="type" Type="Atk.StateType" />
      </Parameters>
      <Docs>
        <summary>Checks whether the state for the specified type is in the specified set.</summary>
        <param name="type">an object of type <see cref="T:Atk.StateType" /></param>
        <returns>an object of type <see cref="T:System.Boolean" />, <see langword="true" /> if type is the state type is in set.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="XorSets">
      <MemberSignature Language="C#" Value="public Atk.StateSet XorSets (Atk.StateSet compare_set);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Atk.StateSet</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="compare_set" Type="Atk.StateSet" />
      </Parameters>
      <Docs>
        <summary>Constructs the exclusive-or of the two sets, returning <see langword="null" /> is empty.</summary>
        <param name="compare_set">an object of type <see cref="T:Atk.StateSet" /></param>
        <returns>an object of type <see cref="T:Atk.StateSet" /> which contains the states which are in exactly one of the two sets.</returns>
        <remarks>The set returned by this operation contains the states in exactly one of the two sets.</remarks>
      </Docs>
    </Member>
    <Member MemberName="AddState">
      <MemberSignature Language="C#" Value="public bool AddState (Atk.StateType type);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="type" Type="Atk.StateType" />
      </Parameters>
      <Docs>
        <summary>Add a new state for the specified type to the current state set if it is not already present.</summary>
        <param name="type">an object of type <see cref="T:Atk.StateType" /></param>
        <returns>an object of type <see cref="T:System.Boolean" />, <see langword="true" /> if the state for type is not already in set.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="AndSets">
      <MemberSignature Language="C#" Value="public Atk.StateSet AndSets (Atk.StateSet compare_set);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Atk.StateSet</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="compare_set" Type="Atk.StateSet" />
      </Parameters>
      <Docs>
        <summary>Constructs the intersection of the two sets, returning <see langword="null" /> if the intersection is empty.</summary>
        <param name="compare_set">an object of type <see cref="T:Atk.StateSet" /></param>
        <returns>an object of type <see cref="T:Atk.StateSet" /> which is the intersection of the two sets.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="RemoveState">
      <MemberSignature Language="C#" Value="public bool RemoveState (Atk.StateType type);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="type" Type="Atk.StateType" />
      </Parameters>
      <Docs>
        <summary>Removes the state for the specified type from the state set.</summary>
        <param name="type">an object of type <see cref="T:Atk.StateType" /></param>
        <returns>an object of type <see cref="T:System.Boolean" />, <see langword="true" /> if type was the state type is in set.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="OrSets">
      <MemberSignature Language="C#" Value="public Atk.StateSet OrSets (Atk.StateSet compare_set);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Atk.StateSet</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="compare_set" Type="Atk.StateSet" />
      </Parameters>
      <Docs>
        <summary>Constructs the union of the two sets.</summary>
        <param name="compare_set">an object of type <see cref="T:Atk.StateSet" /></param>
        <returns>an object of type <see cref="T:Atk.StateSet" /> which is the union of the two sets, returning <see langword="null" /> is empty.</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="ClearStates">
      <MemberSignature Language="C#" Value="public void ClearStates ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Removes all states from the state set.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public StateSet (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 StateSet ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Default constructor</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="ContainsStates">
      <MemberSignature Language="C#" Value="public bool ContainsStates (out Atk.StateType types, int n_types);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="types" Type="Atk.StateType&amp;" RefType="out" />
        <Parameter Name="n_types" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Checks whether the states for all the specified types are in the specified set.</summary>
        <param name="types">a <see cref="T:Atk.StateType&amp;" /></param>
        <param name="n_types">a <see cref="T:System.Int32" /></param>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="IsEmpty">
      <MemberSignature Language="C#" Value="public bool IsEmpty { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Checks whether the state set is empty, i.e. has no states set.</summary>
        <value>a <see cref="T:System.Boolean" />, <see langword="true" /> if the StateSet has no states set, otherwise <see langword="false" /></value>
        <remarks />
      </Docs>
    </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:Atk.StateSet" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected StateSet (GLib.GType gtype);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="gtype" Type="GLib.GType" />
      </Parameters>
      <Docs>
        <summary>Internal constructor</summary>
        <param name="gtype">a <see cref="T:GLib.GType" /></param>
        <remarks>This is a constructor used by derivative types of <see cref="T:Atk.StateSet" /> that would have their own GLib.GType assigned to it.  This is not typically used by C# code.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="AddStates">
      <MemberSignature Language="C#" Value="public Atk.StateType AddStates (int n_types);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Atk.StateType</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="n_types" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Add the states for the specified types to the current state set.</summary>
        <param name="n_types">a <see cref="T:System.Int32" /></param>
        <returns>a <see cref="T:Atk.StateType" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
  </Members>
</Type>
