<chapter id="gtk-migrating-GtkColorButton">

  <title>Migrating from GnomeColorPicker to GtkColorButton</title>

  <para>
    Since version 2.6, GTK+ provides the #GtkColorButton
    widget as a replacement for the <structname>GnomeColorPicker</structname> 
    widget in the libgnomeui library.
  </para>

  <para>
   Porting an application from <structname>GnomeColorPicker</structname> to 
   <structname>GtkColorButton</structname> is very simple. 
   <structname>GtkColorButton</structname> doesn't support dithering 
   (since it is rarely needed on modern hardware), and it doesn't have 
   setters and getters to set the color from floating point or integer 
    components. So instead of
   <informalexample><programlisting>
   guint red, green, blue, alpha;
   /* ... */
   gnome_color_picker_set_i8 (color_picker, red, green, blue, alpha);
   </programlisting></informalexample>   
   you have to write
   <informalexample><programlisting>
   GdkColor color;

   color.red = red &lt;&lt; 8;
   color.green = green &lt;&lt; 8;
   color.blue = blue &lt;&lt; 8;
   gtk_color_button_set_color (color_picker, &amp;color);
   gtk_color_button_set_alpha (color_picker, alpha &lt;&lt; 8);
   </programlisting></informalexample>   
  and similarly for the setters taking other number formats. For 
  <function>gnome_color_picker_set_i16()</function> no conversion is needed, 
  for <function>gnome_color_picker_set_d()</function>, you need to convert 
  the color components like this:
   <informalexample><programlisting>  
   color.red = (guint16) (red * 65535.0 + 0.5);
   color.green = (guint16) (green * 65535.0 + 0.5);
   color.blue = (guint16) (blue * 65535.0 + 0.5);
   </programlisting></informalexample>   
  </para>
</chapter>

<!--
Local variables:
mode: sgml
sgml-parent-document: ("gtk-docs.sgml" "book" "part" "chapter")
End:
-->
