<Type Name="IconSet" FullName="Gtk.IconSet">
  <TypeSignature Language="C#" Value="public class IconSet : GLib.Opaque, IWrapper" Maintainer="duncan" />
  <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 <see cref="T:Gtk.IconSet" /> represents a single icon in various sizes and widget states.
    </summary>
    <remarks>
      A <see cref="T:Gtk.IconSet" /> represents a single icon in
      various sizes and widget states. It can provide a <see cref="T:Gdk.Pixbuf" /> for a given size and state on request,
      and automatically caches some of the rendered GdkPixbuf objects.
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>GLib.Opaque</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>GLib.IWrapper</InterfaceName>
    </Interface>
  </Interfaces>
  <Attributes />
  <Members>
    <Member MemberName="RenderIcon">
      <MemberSignature Language="C#" Value="public Gdk.Pixbuf RenderIcon (Gtk.Style style, Gtk.TextDirection direction, Gtk.StateType state, Gtk.IconSize size, Gtk.Widget widget, string detail);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Pixbuf</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="style" Type="Gtk.Style" />
        <Parameter Name="direction" Type="Gtk.TextDirection" />
        <Parameter Name="state" Type="Gtk.StateType" />
        <Parameter Name="size" Type="Gtk.IconSize" />
        <Parameter Name="widget" Type="Gtk.Widget" />
        <Parameter Name="detail" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>
          Renders an icon using <see cref="M:Gtk.Style.RenderIcon(Gtk.IconSource,Gtk.TextDirection,Gtk.StateType,Gtk.IconSize,Gtk.Widget,System.String)" /></summary>
        <param name="style">
          a <see cref="T:Gtk.Style" /> associated with widget, or <see langword="null" /></param>
        <param name="direction">The text direction</param>
        <param name="state">The widget state</param>
        <param name="size">The size of the icon</param>
        <param name="widget">
          widget that will display the icon, or <see langword="null" /></param>
        <param name="detail">
          detail to pass to the theme engine, or <see langword="null" /></param>
        <returns>a <see cref="T:Gdk.Pixbuf" /> to be displayed</returns>
        <remarks>
          Renders an icon using <see cref="M:Gtk.Style.RenderIcon(Gtk.IconSource,Gtk.TextDirection,Gtk.StateType,Gtk.IconSize,Gtk.Widget,System.String)" />. In
          most cases, <see cref="M:Gtk.Widget.RenderIcon(System.String,Gtk.IconSize,System.String)" /> is better, since it automatically provides most of the arguments from the
          current widget settings. This function never returns <see langword="null" />;
          if the icon can't be rendered (perhaps because an image file
          fails to load), a default "missing image" icon will be
          returned instead.
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Copy">
      <MemberSignature Language="C#" Value="public Gtk.IconSet Copy ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.IconSet</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          Copy the IconSet by value.
        </summary>
        <returns>a copy of the current IconSet</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="AddSource">
      <MemberSignature Language="C#" Value="public void AddSource (Gtk.IconSource source);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="source" Type="Gtk.IconSource" />
      </Parameters>
      <Docs>
        <summary>
          Adds an IconSource to the current IconSet.
        </summary>
        <param name="source">To be added: an object of type 'Gtk.IconSource'</param>
        <remarks>
          <para>
            Icon sets have a list of <see cref="T:Gtk.IconSource" />,
            which they use as base icons for rendering icons in
            different states and sizes. Icons are scaled, made to look
            insensitive, etc. in <see cref="M:Gtk.Style.RenderIcon(Gtk.IconSource,Gtk.TextDirection,Gtk.StateType,Gtk.IconSize,Gtk.Widget,System.String)" />,
            but <see cref="T:Gtk.IconSet" /> needs base images to work
            with. The base images and when to use them are described
            by a <see cref="T:Gtk.IconSource" />.
          </para>
          <para>
            This function copies <paramref name="source" />, so you can reuse the same
            source immediately without affecting the icon set.
          </para>
          <para>
            An example of when you'd use this function: a web
            browser's "Back to Previous Page" icon might point in a
            different direction in Hebrew and in English; it might
            look different when insensitive; and it might change size
            depending on toolbar mode (small/large icons). So a single
            icon set would contain all those variants of the icon, and
            you might add a separate source for each one.
          </para>
          <para>
            You should nearly always add a "default" icon source with
            all fields wildcarded, which will be used as a fallback if
            no more specific source matches. <see cref="T:Gtk.IconSet" />always prefers more specific icon sources to more
            generic icon sources. The order in which you add the
            sources to the icon set does not matter.
          </para>
          <para>
            This <see cref="C:Gtk.IconSet(Gdk.Pixbuf)" /> constructor
            creates a new icon set with a default icon source based on
            the given pixbuf.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Ref">
      <MemberSignature Language="C#" Value="public Gtk.IconSet Ref ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.IconSet</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Increments the reference count.</summary>
        <returns>the IconSet with the incremented reference count</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Unref">
      <MemberSignature Language="C#" Value="public void Unref ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Decrements the reference count</summary>
        <remarks>
          Decrements the reference count, and frees memory
          if the reference count reaches 0.
        </remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public IconSet (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 IconSet, 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 IconSet ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>
          Creates a new <see cref="T:Gtk.IconSet" />. A <see cref="T:Gtk.IconSet" /> represents a single
          icon in various sizes and widget states. It can provide a
          <see cref="T:Gdk.Pixbuf" /> for a given size and state on request, and
          automatically caches some of the rendered <see cref="T:Gdk.Pixbuf" /> objects.
        </summary>
        <returns>a new IconSet</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public IconSet (Gdk.Pixbuf pixbuf);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="pixbuf" Type="Gdk.Pixbuf" />
      </Parameters>
      <Docs>
        <summary>
          Creates a new <see cref="T:Gtk.IconSet" /> with <paramref name="pixbuf" /> as the default/fallback source image.
        </summary>
        <param name="pixbuf">
          a <see cref="T:Gdk.Pixbuf" /></param>
        <returns>an <see cref="T:Gtk.IconSet" />.</returns>
        <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.IconSet</summary>
        <returns>The GLib Type for the Gtk.IconSet class.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Sizes">
      <MemberSignature Language="C#" Value="public Gtk.IconSize [] Sizes { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.IconSize[]</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:Gtk.IconSize[]" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
  </Members>
</Type>