[maemo-developers] hildon_color_button & custom colors issue

From: Aniello Del Sorbo anidel at gmail.com
Date: Wed Apr 16 13:40:47 EEST 2008
Hi,

this may help other people when working with RGBA values.

I did indeed solved the problem.

Anyway.. the first issue below happened because I was running Xournal from
root in an SSH remote shell.
Thus, probably, colormaps  were wrong.
Running it the usual way (from the Menu) fixed a bit things.
The GdkColor returned by the hildon color chooser was, when drawn on the
canvas, slightly different from the one showed in the button itself.
I think it looked darker.

After digging a bit I figured out that the GdkColor RGB values where RGB16
(guint16) while I needed the RGB8 format.
Thus, I had to first divide red, green and blue by 255 before putting them
into a single guint value (RGBA) in the form of 0xRRGGBBAA.

guint rgba = GNOME_CANVAS_COLOR_A  (color->red / 255.0, color->green /
255.0, color->blue / 255.0, alpha)

Is that the correct explanation ?

--
anidel

On Tue, Apr 15, 2008 at 8:16 PM, Aniello Del Sorbo <anidel at gmail.com> wrote:

> I reply to myself.
> I was testing the app running it from a remote SSH (root) and not from the
> user's Menu.
>
> It works.
> Thanks anyway.
>
> Aniello
>
>
> On Tue, Apr 15, 2008 at 5:50 PM, Aniello Del Sorbo <anidel at gmail.com>
> wrote:
>
> > Hi,
> >
> > while porting Xournal to Maemo I decided to give it as much
> > hildonization is possible.
> > Base xournal uses only a bunch of predefined colors (something like 9 or
> > 10 colors).
> >
> > I decided to use the hildon_color_button widget to give the user a much
> > wide choice of colors.
> > I get the GdkColor from the color button and have to convert it in RGBA
> > because Xournal only works with those values
> > (passing "fill-color-rgba" to the canvas items). It does this, I think,
> > for being able to make a highlighter tool available in different colors
> > (by making use of the alpha channel).
> >
> > anyway, I convert the GdkColor to RGBA using the macro:
> >
> > GdkColor *color; // read from the hildon_color widget
> > guint alpha = 0xFF; // no transparency
> >
> > guint rgba = GNOME_CANVAS_COLOR_A  (color->red, color->green,
> > color->blue, alpha)
> >
> > and then use it wherever it is needed.
> >
> > This works for the predefined colors in the color chooser dialog.
> > But if I choose my own custom color it does not.
> >
> > If I use the GdkColor as is (thus passing "fill-color-gdk" to the canvas
> > items), it works, but I can't use the alpha channel (can I ?).
> > If I convert this custom color to RGBA with the given macro, it paints
> > in a totally different color.
> >
> > Is this some issue with the colormap ?
> > Is GNOME_CANVAS_COLOR_A not good for this ?
> >
> > Any other hints ?
> >
> > --
> > anidel
>
>
>
>
> --
> anidel
>



-- 
anidel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maemo.org/pipermail/maemo-developers/attachments/20080416/4d2bedcb/attachment.htm 
More information about the maemo-developers mailing list