<< Back to man.ChinaUnix.net

<< Back to man.ChinaUnix.net

Migrating from GnomeColorPicker to GtkColorButton

Since version 2.6, GTK+ provides the GtkColorButton widget as a replacement for the GnomeColorPicker widget in the libgnomeui library.

Porting an application from GnomeColorPicker to GtkColorButton is very simple. GtkColorButton 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

   guint red, green, blue, alpha;
   /* ... */
   gnome_color_picker_set_i8 (color_picker, red, green, blue, alpha);

you have to write

   GdkColor color;

   color.red = red << 8;
   color.green = green << 8;
   color.blue = blue << 8;
   gtk_color_button_set_color (color_picker, &color);
   gtk_color_button_set_alpha (color_picker, alpha << 8);

and similarly for the setters taking other number formats. For gnome_color_picker_set_i16() no conversion is needed, for gnome_color_picker_set_d(), you need to convert the color components like this:

   color.red = (guint16) (red * 65535.0 + 0.5);
   color.green = (guint16) (green * 65535.0 + 0.5);
   color.blue = (guint16) (blue * 65535.0 + 0.5);