From 84a9eecceca98a9df6f429ecb8d06c749ef292eb Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Sat, 17 Oct 2009 14:36:46 +0000 Subject: display coordinates --- diff --git a/TurtleArtActivity.py b/TurtleArtActivity.py index b4d4b23..12889b5 100644 --- a/TurtleArtActivity.py +++ b/TurtleArtActivity.py @@ -165,6 +165,20 @@ class TurtleArtActivity(activity.Activity): Cartesian_button.connect('clicked', self._do_Cartesian_cb) view_toolbar.insert(Cartesian_button,-1) Cartesian_button.show() + + separator = gtk.SeparatorToolItem() + separator.props.draw = True + view_toolbar.insert(separator, -1) + separator.show() + + self.coordinates_label = \ + gtk.Label(_("(x,y): ") + "(0,0)") + self.coordinates_label.set_line_wrap(True) + self.coordinates_label.show() + self.coordinates_toolitem = gtk.ToolItem() + self.coordinates_toolitem.add(self.coordinates_label) + view_toolbar.insert(self.coordinates_toolitem,-1) + self.coordinates_toolitem.show() view_toolbar_button = ToolbarButton( page=view_toolbar, diff --git a/talogo.py b/talogo.py index a49b3f9..3693ba9 100644 --- a/talogo.py +++ b/talogo.py @@ -189,6 +189,7 @@ def evline(lc, list): raise logoerror(str(lc.iresult)) lc.iline = oldiline ireturn(lc) + display_coordinates(lc.tw) yield True def eval(lc, infixarg=False): @@ -247,15 +248,16 @@ def infixnext(lc): def debug_trace(lc, token): if lc.trace: - if token.name in ['forward', 'right', 'back', 'left', 'seth', 'setxy', 'arc', \ - 'heading', 'xcor', 'ycor']: + if token.name in ['forward', 'right', 'back', 'left', 'seth', 'setxy', \ + 'arc', 'heading', 'xcor', 'ycor']: my_string = token.name +\ "\nxcor= " + str(int(lc.tw.turtle.xcor)) +\ "\nycor= " + str(int(lc.tw.turtle.ycor)) +\ "\nheading= " + str(int(lc.tw.turtle.heading)) +\ "\nscale= " + str(lc.scale) - elif token.name in ['penup', 'pendown', 'setcolor', 'setshade', 'fillscreen',\ - 'settextcolor', 'settextsize', 'shade', 'color', 'pensize']: + elif token.name in ['penup', 'pendown', 'setcolor', 'setshade', \ + 'settextcolor', 'settextsize', 'shade', 'color', \ + 'fillscreen', 'pensize']: if lc.tw.turtle.pendown: penstatus = "\npen down" else: @@ -593,6 +595,25 @@ def lcNew(tw): return lc +def display_coordinates(tw): + if hasattr(tw, "activity"): + if hasattr(tw.activity, "coordinates_label"): + x = tw.turtle.xcor + if int(float(x)) == x: + xx = int(x) + else: + xx = int(float(x)*10)/10. + y = tw.turtle.ycor + if int(float(y)) == y: + yy = int(y) + else: + yy = int(float(y)*10)/10. + # print _("(x,y): ") + "(" + str(xx) + "," + str(yy) + ")" + tw.activity.coordinates_label.set_text(_("(x,y): ") + "(" + \ + str(xx) + "," + \ + str(yy) + ")") + tw.activity.coordinates_label.show() + def box(lc,x): try: return lc.boxes['box3'+str(x)] diff --git a/tawindow.py b/tawindow.py index 30ba715..e41af70 100644 --- a/tawindow.py +++ b/tawindow.py @@ -404,6 +404,7 @@ def button_release(tw, x, y, verbose=False): tw.turtle.ycor = tw.turtle.canvas.height/2-tw.turtle.spr.y+ \ tw.turtle.canvas.y-30 move_turtle(tw.turtle) + display_coordinates(tw) tw.draggroup = None return if tw.block_operation=='move' and hit(tw.category_spr, (x,y)): -- cgit v0.9.1