I'm trying to create a customized cursor crosshair in my plot. It is inserted into a gtk.Window. I'm using GTKAGG backend.
In order do this, I need to create a class CursorCrosshair for a code like this:
** CODE **
win = gtk.Window()
win.connect("destroy", lambda x: gtk.main_quit())
figure = Figure()
t = arange(0.0, 1.0, 0.01)
s = sin(2*2*pi*t)
sub1 = figure.add_subplot(111)
sub1.plot(t, s, 'o')
box = gtk.VBox()
canvas = FigureCanvasGTKAgg(figure)
cursor = CursorCrosshair()
toolbar = NavigationToolbar2GTK( canvas, win )
box.pack_start(canvas, True, True)
box.pack_end(toolbar, False, False)
Into the draw_cursor method of CursorCrosshair class I'll paint the horizontal and vertical lines.
Well, the canvas in my example (FigureCanvasGTKAgg) inherits from gtk.DrawingArea, that is the GTK "real" canvas I need to paint into CursorCrosshair.draw_cursor(...) method. gtk.DrawingArea has a method named draw_line(gc, x1, y1, x2, y2) that needs the coordinates and a graphics context as input parameters.
OK: how can I get the graphics context? What is it? And can I really use FigureCanvasGTKAgg like a gtk.DrawingArea object? If I cannot, how can I draw a line directly on the gtk inner canvas class (gtk.DrawingArea).
Thanks in advance.