<Type Name="Color" FullName="Gdk.Color">
  <TypeSignature Language="C#" Value="public sealed struct Color;" Maintainer="auto" />
  <AssemblyInfo>
    <AssemblyName>gdk-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>Describes an allocated or unallocated color.</summary>
    <remarks>
      <para>
	The Gdk.Color structure is used to describe an allocated or
	unallocated color.  Unallocated colors only have the red,
	green and blue ushort values initialized.  Colors are
	allocated using the <see cref="M:Gdk.Colormap.AllocColor(Gdk.Color,bool,bool)" />
	method.  After a color is allocated the value in the <see cref="F:Gdk.Color.pixel" /> field is valid.
      </para>
      <example>
        <code lang="C#">
	  DrawRedLine (Gdk.Drawable drawable)
	  {
	  	Gdk.GC gc = new Gdk.GC (drawable);
	  
	  	Gdk.Color red_color = new Gdk.Color (0xff, 0, 0);
	  
		  // Use the system colormap, easy.
		  Gdk.Colormap colormap = Gdk.Colormap.System;
		  
		  colormap.AllocColor (red_color, true, true);
	
	          gc.Foreground = red_color;
	  
		  // Now you can use it
		  drawable.DrawLine (gc, 0, 0, 100, 100);
	  }
	</code>
      </example>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>System.ValueType</BaseTypeName>
  </Base>
  <Interfaces />
  <Attributes />
  <Members>
    <Member MemberName="Zero">
      <MemberSignature Language="C#" Value="public static Gdk.Color Zero;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Color</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Unallocated, empty color.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Color (byte r, byte g, byte b);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="r" Type="System.Byte" />
        <Parameter Name="g" Type="System.Byte" />
        <Parameter Name="b" Type="System.Byte" />
      </Parameters>
      <Docs>
        <summary>Color constructor from RGB byte values</summary>
        <param name="r">Red value (0-255)</param>
        <param name="g">Green value (0-255)</param>
        <param name="b">Blue value (0-255)</param>
        <returns>The constructed color structure</returns>
        <remarks>
          <para>
	    This constructs the color from three byte values for red,
	    green and blue.  Notice that the Gdk.Color structure
	    actually uses 16-bit color values, so the byte values are
	    mapped into the 16-bit value space.  This is just a
	    convenience routine to initialize this structure. 
	  </para>
          <para>
	    To use the Gdk.Color you must allocate it within the
	    current colormap. 
	  </para>
          <example>
            <code lang="C#">
	      DrawRedLine (Gdk.Drawable drawable)
	      {
	              Gdk.GC gc = new Gdk.GC (drawable);
	              
	              Gdk.Color red_color = new Gdk.Color (0xff, 0, 0);
	              
	              // Use the system colormap, easy.
	              Gdk.Colormap colormap = Gdk.Colormap.System;
	              
	              colormap.AllocColor (red_color, true, true);
	              
	              // Now you can use it
	              drawable.DrawLine (gc, 0, 0, 100, 100);
              }
	    </code>
          </example>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Parse">
      <MemberSignature Language="C#" Value="public static bool Parse (string spec, ref Gdk.Color color);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="spec" Type="System.String" />
        <Parameter Name="color" Type="Gdk.Color&amp;" RefType="ref" />
      </Parameters>
      <Docs>
        <summary>Parses a textual color representation</summary>
        <param name="spec">A string specification for the color.</param>
        <param name="color">A structure where the colors are generated</param>
        <returns>Non-zero on success</returns>
        <remarks>
          <para>
	    Parses a textual specification of a color and fill in the
	    red, green, and blue fields of the Gdk.Color structure.
	    The color is not allocated, you must call <see cref="M:Gdk.Colormap.AllocColor(Gdk.Color,bool,bool)" />
	    yourself.
	  </para>
          <para>
	    The text string can be in any of the forms accepted by
	    XParseColor; these include name for a color from rgb.txt,
	    such as DarkSlateGray, or a hex specification such as
	    305050.
	  </para>
          <example>
            <code lang="C#">
	      DrawRedLine (Gdk.Drawable drawable)
	      {
	              Gdk.GC gc = new Gdk.GC (drawable);
	              Gdk.Color red_color;
	              Gdk.Color.Parse ("red", ref red_color);
	              
	              // Use the system colormap, easy.
	              Gdk.Colormap colormap = Gdk.Colormap.System;
	              
	              colormap.AllocColor (red_color, true, true);
	              
	              // Now you can use it
	              drawable.DrawLine (gc, 0, 0, 100, 100);
              }
	    </code>
          </example>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="New">
      <MemberSignature Language="C#" Value="public static Gdk.Color New (IntPtr raw);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Color</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>Creates a color from an unmanaged location.</summary>
        <param name="raw">A pointer to the unmanaged GdkColor structure.</param>
        <returns>This returns a Gdk.Color structure.</returns>
        <remarks>
          <para>
	    The <paramref name="raw" /> parameter points to a C-based
	    GdkColor structure.  This routine creates a Gdk.Color
	    structure from its unmanaged version.
	  </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Equal">
      <MemberSignature Language="C#" Value="public bool Equal (Gdk.Color colorb);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="colorb" Type="Gdk.Color" />
      </Parameters>
      <Docs>
        <summary>Compares whether two colors are equal.</summary>
        <param name="colorb">The color to compare</param>
        <returns>true if the red, green and blue components are the same</returns>
        <remarks>
          <para>
	    Notice that this will not compare the <see cref="F:Gdk.Color.pixel" /> value, it will
	    only compare the red, green and blue elements.
	  </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="ToString">
      <MemberSignature Language="C#" Value="public override string ToString ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The color value as a <see cref="T:System.String" />.</summary>
        <returns>The color value as a <see cref="T:System.String" />.</returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetHashCode">
      <MemberSignature Language="C#" Value="public override int GetHashCode ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>A hash function suitable for using for a hash table
-        that stores <see cref="T:Gdk.Color" /> objects.</summary>
        <returns>The hash code.</returns>
        <remarks>
        </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>The GLib.GType for Gdk.Color</summary>
        <returns>a <see cref="T:GLib.GType" /></returns>
        <remarks>The GLib.GType for the Gdk.Color class.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Pixel">
      <MemberSignature Language="C#" Value="public uint Pixel;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Pixel value for the color.</summary>
        <remarks>
          <para>
	    Colors are specified in Gdk by their red, green and blue
	    elements.   But before the color can be used, the color
	    has to be allocated in a given colormap.  The value of the
	    allocation is stored in this pixel field and it is the
	    token used to render the color.  
	  </para>
          <para>
	    The pixel value is initialized when using the <see cref="M:Gdk.Colormap.AllocColor(Gdk.Color,bool,bool)" /> method.
	  </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Red">
      <MemberSignature Language="C#" Value="public ushort Red;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt16</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Red element of the color.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Green">
      <MemberSignature Language="C#" Value="public ushort Green;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt16</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Green element of the color.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Blue">
      <MemberSignature Language="C#" Value="public ushort Blue;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt16</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Blue element of the color.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Alloc">
      <MemberSignature Language="C#" Value="public static int Alloc (Gdk.Colormap colormap, Gdk.Color color);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="colormap" Type="Gdk.Colormap" />
        <Parameter Name="color" Type="Gdk.Color" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="colormap">a <see cref="T:Gdk.Colormap" /></param>
        <param name="color">a <see cref="T:Gdk.Color" /></param>
        <returns>a <see cref="T:System.Int32" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="White">
      <MemberSignature Language="C#" Value="public static int White (Gdk.Colormap colormap, Gdk.Color color);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="colormap" Type="Gdk.Colormap" />
        <Parameter Name="color" Type="Gdk.Color" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="colormap">a <see cref="T:Gdk.Colormap" /></param>
        <param name="color">a <see cref="T:Gdk.Color" /></param>
        <returns>a <see cref="T:System.Int32" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Change">
      <MemberSignature Language="C#" Value="public static int Change (Gdk.Colormap colormap, Gdk.Color color);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="colormap" Type="Gdk.Colormap" />
        <Parameter Name="color" Type="Gdk.Color" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="colormap">a <see cref="T:Gdk.Colormap" /></param>
        <param name="color">a <see cref="T:Gdk.Color" /></param>
        <returns>a <see cref="T:System.Int32" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Black">
      <MemberSignature Language="C#" Value="public static int Black (Gdk.Colormap colormap, Gdk.Color color);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="colormap" Type="Gdk.Colormap" />
        <Parameter Name="color" Type="Gdk.Color" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="colormap">a <see cref="T:Gdk.Colormap" /></param>
        <param name="color">a <see cref="T:Gdk.Color" /></param>
        <returns>a <see cref="T:System.Int32" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
  </Members>
</Type>