[cairo] How to render 1bpp bitmaps normally & selected (in GTK+ 3)

Mark Leisher mleisher at gmail.com
Mon Jul 11 13:20:28 PDT 2011


On 07/11/2011 12:40 PM, Maarten Bosmans wrote:
> 2011/7/11 Mark Leisher<mleisher at gmail.com>:
>> It took a while to piece this together, so for future reference.
>>
>> Is there a more elegant solution?
>
>  From the subject it seems that you want the bitmap to draw inverted
> when the widget is selected. Why don't you just give the right
> GtkStateFlags to gtk_style_context_get_color? That would take care of
> the right forground/background colors for normal/selected and gives a
> result more consistent with the current theme.
>

What I'm working on is porting 
http://www.math.nmsu.edu/~mleisher/Software/gbdfed to Gtk+ 3. I need to 
be able to select/deselect individual glyph bitmaps in discrete 
rectangular areas. Sort of like a spreadsheet for glyph bitmaps. 
Selected is not really a state that applies to this custom widget as a 
whole.


In response to your reply on gtk-list:

1. You mention the XOR operator. I never could get it to work (OpenSuSE 
11.4 32-bit/Gtk+ 3.0.10/cairo 1.10.2) and never managed to dig up any 
examples that did. The DIFFERENCE operator worked exactly as advertised, 
but it wasn't quite what I was looking for. Before I dig into the cairo 
sources, any pointers to XOR examples that work?

2. The rectangle geometry and bitmap offsets are just chosen as an 
example "cell" in the "spreadsheet."
-- 
Mark Leisher


More information about the cairo mailing list