<Type Name="IconSource" FullName="Gtk.IconSource">
  <TypeSignature Language="C#" Value="public class IconSource : GLib.Opaque, IWrapper" Maintainer="duncan" />
  <AssemblyInfo>
    <AssemblyName>gtk-sharp</AssemblyName>
    <AssemblyPublicKey></AssemblyPublicKey>
    <AssemblyVersion>0.0.0.0</AssemblyVersion>
    <AssemblyCulture>neutral</AssemblyCulture>
    <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 GtkIconSource contains a <see cref="T:Gdk.Pixbuf" /> (or image
      filename) that serves as the base image for one or more of the
      icons in a <see cref="T:Gtk.IconSet" />, along with a
      specification for which icons in the icon set will be based on
      that pixbuf or image file. An icon set contains a set of icons
      that represent the same logical concept in different states,
      different global text directions, and different sizes.
    </summary>
    <remarks>
      <para>
      A GtkIconSource contains a <see cref="T:Gdk.Pixbuf" /> (or image
      filename) that serves as the base image for one or more of the
      icons in a <see cref="T:Gtk.IconSet" />, along with a
      specification for which icons in the icon set will be based on
      that pixbuf or image file. An icon set contains a set of icons
      that represent the same logical concept in different states,
      different global text directions, and different sizes.
      </para>
      <para>
        So for example 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. <see cref="T:Gtk.IconSet" /> contains a list of <see cref="T:Gtk.IconSource" /> from which
        it can derive specific icon variants in the set.
      </para>
      <para>
        In the simplest case, <see cref="T:Gtk.IconSet" /> contains
        one source pixbuf from which it derives all variants. The
        <see cref="C:Gtk.IconSet(Gdk.Pixbuf)" /> constructor handles
        this case; if you only have one source pixbuf, just use that
        function.
      </para>
      <para>
        If you want to use a different base pixbuf for different icon
        variants, you create multiple icon sources, mark which
        variants they'll be used to create, and add them to the icon
        set with <see cref="M:Gtk.IconSet.AddSource(Gtk.IconSource)" />.
      </para>
      <para>
        By default, the icon source has all parameters
        wildcarded. That is, the icon source will be used as the base
        icon for any desired text direction, widget state, or icon
        size.
      </para>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>GLib.Opaque</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>GLib.IWrapper</InterfaceName>
    </Interface>
  </Interfaces>
  <Attributes />
  <Members>
    <Member MemberName="Copy">
      <MemberSignature Language="C#" Value="public Gtk.IconSource Copy ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.IconSource</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          Creates a copy of the current <see cref="T:Gtk.IconSource" />; mostly useful for language
          bindings.
        </summary>
        <returns>
          a new GtkIconSource that is a copy of the current one
        </returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Free">
      <MemberSignature Language="C#" Value="public void Free ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Frees a dynamically-allocated icon source, along with its filename, size, and pixbuf fields.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public IconSource (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 IconSource, 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 IconSource ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Creates a new <see cref="T:Gtk.IconSource" />.</summary>
        <returns>a new <see cref="T:Gtk.IconSource" />.</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.IconSource</summary>
        <returns>The GLib Type for the Gtk.IconSource class.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="StateWildcarded">
      <MemberSignature Language="C#" Value="public bool StateWildcarded { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters></Parameters>
      <Docs>
        <summary>
          If the widget state is wildcarded, this source can be used
          as the base image for an icon in any <see cref="T:Gtk.StateType" />.
        </summary>
        <returns>
          Whether or not the widget is wildcarded.
        </returns>
        <remarks>
          <para>
            If the widget state is wildcarded, this source can be used
            as the base image for an icon in any <see cref="T:Gtk.StateType" />. If the
            widget state is not wildcarded, then the state the source
            applies to should be set with <see cref="P:Gtk.IconSource.State" />
            and the icon source will only be used with that specific
            state.
          </para>
          <para>
            <see cref="T:Gtk.IconSet" /> prefers non-wildcarded
            sources (exact matches) over wildcarded sources, and will
            use an exact match when possible.
          </para>
          <para>
            <see cref="T:Gtk.IconSet" /> will normally transform
            wildcarded source images to produce an appropriate icon
            for a given state, for example lightening an image on
            prelight, but will not modify source images that match
            exactly.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="SizeWildcarded">
      <MemberSignature Language="C#" Value="public bool SizeWildcarded { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters></Parameters>
      <Docs>
        <summary>
          If the icon size is wildcarded, this source can be used as
          the base image for an icon of any size. If the size is not
          wildcarded, then the size the source applies to should be
          set with <see cref="P:Gtk.IconSource.Size" /> and the icon
          source will only be used with that specific size.
        </summary>
        <param name="value">
          <see langword="true" /> if the size is wildcarded,
          <see langword="false" /> otherwise.
        </param>
        <returns>Whether the size is wildcarded or not</returns>
        <remarks>
          <para>
            If the icon size is wildcarded, this source can be used as
            the base image for an icon of any size. If the size is not
            wildcarded, then the size the source applies to should be
            set with <see cref="P:Gtk.IconSource.Size" /> and the icon
            source will only be used with that specific size.
          </para>
          <para>
            <see cref="T:Gtk.IconSet" /> prefers non-wildcarded
            sources (exact matches) over wildcarded sources, and will
            use an exact match when possible.
          </para>
          <para>
            <see cref="T:Gtk.IconSet" /> will normally scale
            wildcarded source images to produce an appropriate icon at
            a given size, but will not change the size of source
            images that match exactly.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Pixbuf">
      <MemberSignature Language="C#" Value="public Gdk.Pixbuf Pixbuf { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Pixbuf</ReturnType>
      </ReturnValue>
      <Parameters></Parameters>
      <Docs>
        <summary>
          The base image used when creating icon variants of a <see cref="T:Gtk.IconSet" /></summary>
        <param name="value">To be added: an object of type 'Gdk.Pixbuf'</param>
        <returns>the source pixbuf, or <see langword="null" /> if none is set.</returns>
        <remarks>
          <para>
            If an icon source has both a filename and a pixbuf set, the
            pixbuf will take priority.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Direction">
      <MemberSignature Language="C#" Value="public Gtk.TextDirection Direction { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TextDirection</ReturnType>
      </ReturnValue>
      <Parameters></Parameters>
      <Docs>
        <summary>
          The text direction this icon source applies to.
        </summary>
        <param name="value">The text direction this source applies to</param>
        <returns>
          Obtains the text direction this icon source applies to. The
          return value is only useful/meaningful if the text direction
          is not wildcarded.
        </returns>
        <remarks>
          Setting the text direction on an icon source makes no
          difference if the text direction is wildcarded. Therefore,
          you should usually set the <see cref="P:Gtk.IconSource.DirectionWildcarded" /> property to
          un-wildcard it in addition to calling this function.
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Size">
      <MemberSignature Language="C#" Value="public Gtk.IconSize Size { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.IconSize</ReturnType>
      </ReturnValue>
      <Parameters></Parameters>
      <Docs>
        <summary>
          The icon size this icon source is intended to be used with.
        </summary>
        <param name="value">The icon size this source applies to</param>
        <returns>
          Obtains the icon size this source applies to. The return
          value is only useful/meaningful if the icon size is not
          wildcarded.
        </returns>
        <remarks>
          Setting the icon size on an icon source makes no difference
          if the size is wildcarded. Therefore, you should usually set
          the <see cref="P:Gtk.IconSource.SizeWildcarded" /> property
          to un-wildcard it in addition to calling this function.
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="State">
      <MemberSignature Language="C#" Value="public Gtk.StateType State { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.StateType</ReturnType>
      </ReturnValue>
      <Parameters></Parameters>
      <Docs>
        <summary>
          The widget state this icon source applies to.
        </summary>
        <param name="value">The widget state this icon source applies to.</param>
        <returns>
          Obtains the widget state this icon source applies to. The
          return value is only useful/meaningful if the widget state
          is not wildcarded.
        </returns>
        <remarks>
          Setting the widget state on an icon source makes no
          difference if the state is wildcarded. Therefore, you should
          usually set the <see cref="P:Gtk.IconSource.StateWildcarded" /> propertyto un-wildcard it in addition to calling this
          function.
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="DirectionWildcarded">
      <MemberSignature Language="C#" Value="public bool DirectionWildcarded { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters></Parameters>
      <Docs>
        <summary>
          If the text direction is wildcarded, this source can be used
          as the base image for an icon in any <see cref="T:Gtk.TextDirection" />.
        </summary>
        <param name="value">
          <see langword="true" /> if the text direction is wildcarded,
          <see langword="false" /> otherwise.
        </param>
        <returns>Whether the text direction is wildcarded or not</returns>
        <remarks>
          <para>
            If the text direction is wildcarded, this source can be
            used as the base image for an icon in any <see cref="T:Gtk.TextDirection" />. If the text direction is
            not wildcarded, then the text direction the icon source
            applies to should be set with <see cref="P:Gtk.IconSource.Direction" />, and the icon source
            will only be used with that text direction.
          </para>
          <para>
            <see cref="T:Gtk.IconSet" /> prefers non-wildcarded
            sources (exact matches) over wildcarded sources, and will
            use an exact match when possible.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Filename">
      <MemberSignature Language="C#" Value="public string Filename { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters></Parameters>
      <Docs>
        <summary>
          Retrieves the source filename, or <see langword="null" /> if none is set. 
        </summary>
        <param name="value">
          Sets the name of an image file to use as a base image when
          creating icon variants for <see cref="T:Gtk.IconSet" />. The filename must be
          absolute.
        </param>
        <returns>
          Retrieves the source filename, or <see langword="null" /> if
          none is set. The filename is not a copy, and should not be
          modified or expected to persist beyond the lifetime of the
          icon source.
        </returns>
        <remarks />
      </Docs>
    </Member>
  </Members>
</Type>