Thanks again for your help.
In case it is useful for future reference, here is a simple example of what I am trying to accomplish
using Gtk, Graphics, Cairo, Colors
c = @GtkCanvas()
win = GtkWindow(c, "Canvas",500, 500)
@guarded draw(c) do widget
ctx = getgc(c)
# draw text
select_font_face(ctx, "Sans", Cairo.FONT_SLANT_NORMAL,
Cairo.FONT_WEIGHT_NORMAL);
set_font_size(ctx, 22.5);
set_source_rgb(ctx, 0.8,0.8,0.8)
extents = text_extents(cr, "X");
x = 128.0-(extents[3]/2 + extents[1]);
y = 128.0-(extents[4]/2 + extents[2]);
move_to(ctx, x, y);
show_text(ctx, "X");
#draw red semi-transluecent rectangle
circle(ctx, x + 15/2, y - 15/2, 15)
set_source_rgba(ctx, 1, 0, 0, .5)
# set_source(ctx, Cairo.alphacolor(colorant"red",.5))
fill(ctx)
restore(ctx)
end
show(c)