@@ -187,7 +187,7 @@ def draw_pixel():
187187
188188 cr .rectangle (x , y , 1.5 , 1.5 )
189189 cr .fill ()
190- if pixel_count % 500 == 0 :
190+ if pixel_count % 1000 == 0 :
191191 self .canvas .queue_draw ()
192192
193193 return False
@@ -254,10 +254,34 @@ def onCanvasButtonPress(self, canvas, event):
254254 center_x .set_text (str (x ))
255255 center_y .set_text (str (y ))
256256
257+ crosshairs = None
258+
259+ def onCanvasMotion (self , canvas , event ):
260+ step = fix2float (self .view .step )
261+ x = fix2float (self .view .corner_x ) + (event .x * step )
262+ y = fix2float (self .view .corner_y ) + ((self .view .height - event .y ) * step )
263+ self .crosshairs = [(event .x , event .y ), (x ,y )]
264+ canvas .queue_draw ()
265+
257266 def onDraw (self , canvas : DrawingArea , cr : cairo .Context ):
258- #code.interact(local=locals())
259267 cr .set_source_surface (self .surface , 0 , 0 )
260268 cr .paint ()
269+ if not self .crosshairs is None :
270+ x , y = self .crosshairs [0 ]
271+ cr .set_source_rgb (1 , 1 , 1 )
272+ cr .set_line_width (1 )
273+ cr .move_to (x , 0 )
274+ cr .line_to (x , self .view .height )
275+ cr .move_to (0 , y )
276+ cr .line_to (self .view .width , y )
277+ cr .stroke ()
278+
279+ cr .set_font_size (20 )
280+ cr .move_to (20 , 20 )
281+ cr .show_text (f"x: { str (self .crosshairs [1 ][0 ])} " )
282+ cr .move_to (20 , 40 )
283+ cr .show_text (f"y: { str (self .crosshairs [1 ][1 ])} " )
284+
261285
262286 builder = Gtk .Builder ()
263287 builder .add_from_file ("mandelbrot-client-gui.glade" )
0 commit comments