Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter@walter-laptop.(none)>2009-10-17 18:31:36 (GMT)
committer Walter Bender <walter@walter-laptop.(none)>2009-10-17 18:31:36 (GMT)
commitb0d0233cbf128e5be507339cf589d0e5813ef0fd (patch)
treedf1ff32f329f05006518fd725ea99467216df717
parent40bdabb780f39491573be9d3231dda84a4580318 (diff)
adding rescale option
-rw-r--r--TurtleArtActivity.py83
-rw-r--r--icons/contract-coordinates.svg79
-rw-r--r--icons/expand-coordinates.svg79
-rw-r--r--icons/view-polar.svg25
-rw-r--r--po/TurtleArt.pot208
-rw-r--r--talogo.py44
-rw-r--r--taturtle.py25
-rw-r--r--tawindow.py3
8 files changed, 394 insertions, 152 deletions
diff --git a/TurtleArtActivity.py b/TurtleArtActivity.py
index 5552104..816d803 100644
--- a/TurtleArtActivity.py
+++ b/TurtleArtActivity.py
@@ -160,11 +160,11 @@ class TurtleArtActivity(activity.Activity):
view_toolbar.insert(fullscreen_button,-1)
fullscreen_button.show()
- Cartesian_button = ToolButton('view-Cartesian')
- Cartesian_button.set_tooltip(_("Cartesian coordinates"))
- Cartesian_button.connect('clicked', self._do_Cartesian_cb)
- view_toolbar.insert(Cartesian_button,-1)
- Cartesian_button.show()
+ cartesian_button = ToolButton('view-Cartesian')
+ cartesian_button.set_tooltip(_("Cartesian coordinates"))
+ cartesian_button.connect('clicked', self._do_cartesian_cb)
+ view_toolbar.insert(cartesian_button,-1)
+ cartesian_button.show()
polar_button = ToolButton('view-polar')
polar_button.set_tooltip(_("polar coordinates"))
@@ -178,7 +178,8 @@ class TurtleArtActivity(activity.Activity):
separator.show()
self.coordinates_label = \
- gtk.Label(_("x") + " 0 " + _("y") + " 0 " + _("heading") + " 0")
+ gtk.Label(_("xcor") + " = 0 " + _("ycor") + " = 0 " + \
+ _("heading") + " = 0")
self.coordinates_label.set_line_wrap(True)
self.coordinates_label.show()
self.coordinates_toolitem = gtk.ToolItem()
@@ -193,6 +194,18 @@ class TurtleArtActivity(activity.Activity):
toolbar_box.toolbar.insert(view_toolbar_button, -1)
view_toolbar_button.show()
+ separator = gtk.SeparatorToolItem()
+ separator.props.draw = False
+ separator.set_expand(True)
+ view_toolbar.insert(separator, -1)
+ separator.show()
+
+ self.rescale_button = ToolButton('expand-coordinates')
+ self.rescale_button.set_tooltip(_("Rescale coordinates up"))
+ self.rescale_button.connect('clicked', self._do_rescale_cb)
+ view_toolbar.insert(self.rescale_button,-1)
+ self.rescale_button.show()
+
# palette button (blocks)
self.palette_button = ToolButton( "blocksoff" )
self.palette_button.set_tooltip(_('Hide palette'))
@@ -739,13 +752,13 @@ class TurtleArtActivity(activity.Activity):
"""
Display coordinate grids
"""
- def _do_Cartesian_cb(self, button):
- if self.tw.Cartesian is True:
- tawindow.hide(self.tw.Cartesian_coordinates_spr)
- self.tw.Cartesian = False
+ def _do_cartesian_cb(self, button):
+ if self.tw.cartesian is True:
+ tawindow.hide(self.tw.cartesian_coordinates_spr)
+ self.tw.cartesian = False
else:
- tawindow.setlayer(self.tw.Cartesian_coordinates_spr,610)
- self.tw.Cartesian = True
+ tawindow.setlayer(self.tw.cartesian_coordinates_spr,610)
+ self.tw.cartesian = True
def _do_polar_cb(self, button):
if self.tw.polar is True:
@@ -755,6 +768,20 @@ class TurtleArtActivity(activity.Activity):
tawindow.setlayer(self.tw.polar_coordinates_spr,610)
self.tw.polar = True
+ """
+ Rescale coordinate system to 100 == height/2 or 100 == 100 pixels (default)
+ """
+ def _do_rescale_cb(self, button):
+ if self.tw.coord_scale == 1:
+ self.tw.coord_scale = self.tw.height/200
+ self.rescale_button.set_icon("contract-coordinates")
+ self.rescale_button.set_tooltip(_('Rescale coordinates down'))
+ tawindow.eraser_button(self.tw)
+ else:
+ self.tw.coord_scale = 1
+ self.rescale_button.set_icon("expand-coordinates")
+ self.rescale_button.set_tooltip(_('Rescale coordinates up'))
+ tawindow.eraser_button(self.tw)
"""
Either set up initial share...
@@ -1034,20 +1061,20 @@ class ViewToolbar(gtk.Toolbar):
self.activity.fullscreen_button.show()
# Cartesian coordinates
- self.activity.Cartesian_button = ToolButton( "view-Cartesian" )
- self.activity.Cartesian_button.set_tooltip(_('Cartesian coordinates'))
- self.activity.Cartesian_button.props.sensitive = True
- self.activity.Cartesian_button.connect('clicked', \
- self.activity._do_Cartesian_cb)
- self.insert(self.activity.Cartesian_button, -1)
- self.activity.Cartesian_button.show()
+ self.activity.cartesian_button = ToolButton( "view-Cartesian" )
+ self.activity.cartesian_button.set_tooltip(_('Cartesian coordinates'))
+ self.activity.cartesian_button.props.sensitive = True
+ self.activity.cartesian_button.connect('clicked', \
+ self.activity._do_cartesian_cb)
+ self.insert(self.activity.cartesian_button, -1)
+ self.activity.cartesian_button.show()
# polar coordinates
self.activity.polar_button = ToolButton( "view-polar" )
self.activity.polar_button.set_tooltip(_('polar coordinates'))
self.activity.polar_button.props.sensitive = True
self.activity.polar_button.connect('clicked', \
- self.activity._do_polar_cb)
+ self.activity._do_polar_cb)
self.insert(self.activity.polar_button, -1)
self.activity.polar_button.show()
@@ -1058,13 +1085,27 @@ class ViewToolbar(gtk.Toolbar):
# Coordinates label
self.activity.coordinates_label = \
- gtk.Label(_("x") + " 0 " + _("y") + " 0 " + _("heading") + " 0")
+ gtk.Label(_("xcor") + "= 0 " + _("ycor") + "= 0 " + \
+ _("heading") + "= 0")
self.activity.coordinates_label.show()
self.activity.coordinates_toolitem = gtk.ToolItem()
self.activity.coordinates_toolitem.add(self.activity.coordinates_label)
self.insert(self.activity.coordinates_toolitem,-1)
self.activity.coordinates_toolitem.show()
+ separator = gtk.SeparatorToolItem()
+ separator.set_draw(False)
+ separator.set_expand(True)
+ self.insert(separator, -1)
+ separator.show()
+
+ self.activity.rescale_button = ToolButton('expand-coordinates')
+ self.activity.rescale_button.set_tooltip(_("Rescale coordinates up"))
+ self.activity.rescale_button.connect('clicked', \
+ self.activity._do_rescale_cb)
+ self.insert(self.activity.rescale_button,-1)
+ self.activity.rescale_button.show()
+
"""
Edit toolbar: copy and paste text and stacks
"""
diff --git a/icons/contract-coordinates.svg b/icons/contract-coordinates.svg
new file mode 100644
index 0000000..1f704f3
--- /dev/null
+++ b/icons/contract-coordinates.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.0"
+ width="55"
+ height="55"
+ id="svg2384">
+ <defs
+ id="defs2386" />
+ <rect
+ width="50"
+ height="50"
+ x="2.5"
+ y="2.5"
+ id="rect2394"
+ style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:3.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 27.333333,1 C 28.083333,50.75 27.333333,54 27.333333,54"
+ id="path3168"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 54,27.333333 C 4.2499997,28.083333 1,27.333333 1,27.333333"
+ id="path3170"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="matrix(-1,0,0,-1,72.75,37.25)"
+ id="g3161"
+ style="stroke:#ffffff;stroke-opacity:1">
+ <path
+ d="M 28,27 L 37,18"
+ id="path2387"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 30,17 L 38,17 L 38,25"
+ id="path3159"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ transform="matrix(-1,0,0,1,72.75,18.25)"
+ id="g3167"
+ style="stroke:#ffffff;stroke-opacity:1">
+ <path
+ d="M 28,27 L 37,18"
+ id="path3169"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 30,17 L 38,17 L 38,25"
+ id="path3171"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ transform="matrix(1,0,0,-1,-18.25,37.25)"
+ id="g3173"
+ style="stroke:#ffffff;stroke-opacity:1">
+ <path
+ d="M 28,27 L 37,18"
+ id="path3175"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 30,17 L 38,17 L 38,25"
+ id="path3177"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ transform="translate(-18.25,18.25)"
+ id="g3179"
+ style="stroke:#ffffff;stroke-opacity:1">
+ <path
+ d="M 28,27 L 37,18"
+ id="path3181"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 30,17 L 38,17 L 38,25"
+ id="path3183"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/icons/expand-coordinates.svg b/icons/expand-coordinates.svg
new file mode 100644
index 0000000..6be761e
--- /dev/null
+++ b/icons/expand-coordinates.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.0"
+ width="55"
+ height="55"
+ id="svg2384">
+ <defs
+ id="defs2386" />
+ <rect
+ width="50"
+ height="50"
+ x="2.5"
+ y="2.5"
+ id="rect2394"
+ style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:3.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 27.333333,1 C 28.083333,50.75 27.333333,54 27.333333,54"
+ id="path3168"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 54,27.333333 C 4.2499997,28.083333 1,27.333333 1,27.333333"
+ id="path3170"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="translate(6.75,-6.75)"
+ id="g3161"
+ style="stroke:#ffffff;stroke-opacity:1">
+ <path
+ d="M 28,27 L 37,18"
+ id="path2387"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 30,17 L 38,17 L 38,25"
+ id="path3159"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ transform="matrix(1,0,0,-1,6.75,62.25)"
+ id="g3167"
+ style="stroke:#ffffff;stroke-opacity:1">
+ <path
+ d="M 28,27 L 37,18"
+ id="path3169"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 30,17 L 38,17 L 38,25"
+ id="path3171"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ transform="matrix(-1,0,0,1,47.75,-6.75)"
+ id="g3173"
+ style="stroke:#ffffff;stroke-opacity:1">
+ <path
+ d="M 28,27 L 37,18"
+ id="path3175"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 30,17 L 38,17 L 38,25"
+ id="path3177"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ transform="matrix(-1,0,0,-1,47.75,62.25)"
+ id="g3179"
+ style="stroke:#ffffff;stroke-opacity:1">
+ <path
+ d="M 28,27 L 37,18"
+ id="path3181"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 30,17 L 38,17 L 38,25"
+ id="path3183"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/icons/view-polar.svg b/icons/view-polar.svg
new file mode 100644
index 0000000..85fcb12
--- /dev/null
+++ b/icons/view-polar.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.0"
+ width="55"
+ height="55"
+ id="svg2384">
+ <defs
+ id="defs2386" />
+ <path
+ d="M 50.991903,28.836033 A 22.935223,21.821863 0 1 1 5.1214581,28.836033 A 22.935223,21.821863 0 1 1 50.991903,28.836033 z"
+ transform="matrix(0.9819585,0,0,1.0009824,-5.0496075e-2,-1.3643614)"
+ id="path3157"
+ style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:3.53027272;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 27.333333,1 C 28.083333,50.75 27.333333,54 27.333333,54"
+ id="path3168"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 54,27.333333 C 4.2499997,28.083333 1,27.333333 1,27.333333"
+ id="path3170"
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+</svg>
diff --git a/po/TurtleArt.pot b/po/TurtleArt.pot
index a5dcb40..74bb027 100644
--- a/po/TurtleArt.pot
+++ b/po/TurtleArt.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-17 16:53+0000\n"
+"POT-Creation-Date: 2009-10-17 18:30+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: activity/activity.info:2
-#: /home/walter/Desktop/turtleart-activity/tawindow.py:794
+#: /home/walter/Desktop/turtleart-activity/tawindow.py:795
#: /home/walter/Desktop/turtleart-activity/tahoverhelp.py:125
#: /home/walter/Desktop/turtleart-activity/turtleart.py:73
#: /home/walter/Desktop/turtleart-activity/taexporthtml.py:284
@@ -29,32 +29,29 @@ msgstr ""
msgid "text"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/tasetup.py:108
-#: /home/walter/Desktop/turtleart-activity/talogo.py:604
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:181
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1061
-#: /home/walter/Desktop/turtleart-activity/svg/turtlegroup.py:50
-#: /home/walter/Desktop/turtleart-activity/svg/setxy.py:41
-msgid "x"
-msgstr ""
-
-#: /home/walter/Desktop/turtleart-activity/tasetup.py:136
-#: /home/walter/Desktop/turtleart-activity/tasetup.py:137
+#: /home/walter/Desktop/turtleart-activity/tasetup.py:121
+#: /home/walter/Desktop/turtleart-activity/tasetup.py:122
msgid "action"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/tasetup.py:142
-#: /home/walter/Desktop/turtleart-activity/tasetup.py:143
-#: /home/walter/Desktop/turtleart-activity/tasetup.py:146
+#: /home/walter/Desktop/turtleart-activity/tasetup.py:127
+#: /home/walter/Desktop/turtleart-activity/tasetup.py:128
+#: /home/walter/Desktop/turtleart-activity/tasetup.py:131
msgid "box"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/tasetup.py:144
+#: /home/walter/Desktop/turtleart-activity/tasetup.py:129
#: /home/walter/Desktop/turtleart-activity/svg/myblocksgroup.py:49
#: /home/walter/Desktop/turtleart-activity/svg/turtlegroup.py:59
msgid "name"
msgstr ""
+#: /home/walter/Desktop/turtleart-activity/tasetup.py:136
+#: /home/walter/Desktop/turtleart-activity/svg/turtlegroup.py:50
+#: /home/walter/Desktop/turtleart-activity/svg/setxy.py:41
+msgid "x"
+msgstr ""
+
#: /home/walter/Desktop/turtleart-activity/tasetup.py:151
#: /home/walter/Desktop/turtleart-activity/tasetup.py:152
#: /home/walter/Desktop/turtleart-activity/tasetup.py:153
@@ -794,29 +791,37 @@ msgstr ""
msgid "template"
msgstr ""
+#: /home/walter/Desktop/turtleart-activity/talogo.py:604
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:181
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1088
+#: /home/walter/Desktop/turtleart-activity/svg/turtlegroup.py:53
+#: /home/walter/Desktop/turtleart-activity/svg/xcor.py:40
+msgid "xcor"
+msgstr ""
+
#: /home/walter/Desktop/turtleart-activity/talogo.py:606
#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:181
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1061
-#: /home/walter/Desktop/turtleart-activity/svg/turtlegroup.py:51
-#: /home/walter/Desktop/turtleart-activity/svg/setxy.py:42
-msgid "y"
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1088
+#: /home/walter/Desktop/turtleart-activity/svg/ycor.py:40
+#: /home/walter/Desktop/turtleart-activity/svg/turtlegroup.py:54
+msgid "ycor"
msgstr ""
#: /home/walter/Desktop/turtleart-activity/talogo.py:608
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:181
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1061
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:182
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1089
#: /home/walter/Desktop/turtleart-activity/svg/heading.py:40
#: /home/walter/Desktop/turtleart-activity/svg/turtlegroup.py:55
msgid "heading"
msgstr ""
#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:97
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1313
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1354
msgid "Save snapshot"
msgstr ""
#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:108
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1148
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1189
msgid "Save as HTML"
msgstr ""
@@ -825,186 +830,196 @@ msgid "Save as Logo"
msgstr ""
#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:122
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1166
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1207
msgid "Save as image"
msgstr ""
#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:129
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1180
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1221
msgid "Load my block"
msgstr ""
#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:137
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1190
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1231
msgid "Import project from the Journal"
msgstr ""
#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:157
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1025
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1052
msgid "Fullscreen"
msgstr ""
#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:164
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1038
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1065
msgid "Cartesian coordinates"
msgstr ""
#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:170
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1047
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1074
msgid "polar coordinates"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:198
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:641
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:652
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:668
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:680
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1210
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:204
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:783
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1103
+msgid "Rescale coordinates up"
+msgstr ""
+
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:211
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:654
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:665
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:681
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:693
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1251
msgid "Hide palette"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:201
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1215
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:214
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1256
msgid "<Ctrl>p"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:207
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:661
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:678
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1223
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:220
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:674
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:691
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1264
msgid "Hide blocks"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:210
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1228
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:223
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1269
msgid "<Ctrl>b"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:216
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1295
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:229
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1336
#: /home/walter/Desktop/turtleart-activity/turtleart.py:101
msgid "Clean"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:219
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1300
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:232
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1341
msgid "<Ctrl>e"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:225
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1241
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:238
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1282
#: /home/walter/Desktop/turtleart-activity/turtleart.py:105
msgid "Run"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:228
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1245
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:241
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1286
msgid "<Ctrl>r"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:234
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1253
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:247
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1294
#: /home/walter/Desktop/turtleart-activity/turtleart.py:109
msgid "Step"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:237
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1257
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:250
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1298
msgid "<Ctrl>w"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:243
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1265
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:256
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1306
msgid "Debug"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:246
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:259
msgid "<Alt>d"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:252
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1278
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:265
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1319
msgid "Stop turtle"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:255
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1282
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:268
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1323
msgid "<Ctrl>s"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:267
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1331
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:280
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1372
msgid "Samples"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:278
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1129
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:291
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1170
msgid "Move the cursor over the orange palette for help."
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:287
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:324
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:300
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:337
msgid "Help"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:316
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:526
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:329
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:539
msgid "Project"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:318
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:331
msgid "View"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:320
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:333
msgid "Edit"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:322
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:335
msgid "Import/Export"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:467
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:480
msgid "presentation"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:582
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:595
msgid "image"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:619
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:632
msgid "snapshot"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:637
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:647
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:665
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:674
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:650
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:660
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:678
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:687
msgid "Show palette"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:658
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:672
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:671
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:685
msgid "Show blocks"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1078
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:778
+msgid "Rescale coordinates down"
+msgstr ""
+
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1119
msgid "Copy"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1090
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1131
msgid "Paste"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1157
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1198
msgid "Save Logo"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1270
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1311
msgid "<Ctrl>d"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1336
+#: /home/walter/Desktop/turtleart-activity/TurtleArtActivity.py:1377
msgid "<Ctrl>o"
msgstr ""
@@ -1112,11 +1127,6 @@ msgstr ""
msgid "max"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/svg/ycor.py:40
-#: /home/walter/Desktop/turtleart-activity/svg/turtlegroup.py:54
-msgid "ycor"
-msgstr ""
-
#: /home/walter/Desktop/turtleart-activity/svg/shade.py:40
#: /home/walter/Desktop/turtleart-activity/svg/fillscreen.py:42
#: /home/walter/Desktop/turtleart-activity/svg/pengroup.py:49
@@ -1186,16 +1196,16 @@ msgstr ""
msgid "radius"
msgstr ""
+#: /home/walter/Desktop/turtleart-activity/svg/turtlegroup.py:51
+#: /home/walter/Desktop/turtleart-activity/svg/setxy.py:42
+msgid "y"
+msgstr ""
+
#: /home/walter/Desktop/turtleart-activity/svg/turtlegroup.py:52
#: /home/walter/Desktop/turtleart-activity/svg/seth.py:40
msgid "set heading"
msgstr ""
-#: /home/walter/Desktop/turtleart-activity/svg/turtlegroup.py:53
-#: /home/walter/Desktop/turtleart-activity/svg/xcor.py:40
-msgid "xcor"
-msgstr ""
-
#: /home/walter/Desktop/turtleart-activity/svg/turtlegroup.py:57
#: /home/walter/Desktop/turtleart-activity/svg/show.py:40
msgid "show"
diff --git a/talogo.py b/talogo.py
index 3693ba9..2ca2c24 100644
--- a/talogo.py
+++ b/talogo.py
@@ -598,22 +598,26 @@ def lcNew(tw):
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) + ")")
+ x = round_int(tw.turtle.xcor/tw.coord_scale)
+ y = round_int(tw.turtle.ycor/tw.coord_scale)
+ h = round_int(tw.turtle.heading)
+ tw.activity.coordinates_label.set_text(_("xcor") + " = " + \
+ str(x) + " " + \
+ _("ycor") + " = " + \
+ str(y) + " " + \
+ _("heading") + " = " + \
+ str(h))
tw.activity.coordinates_label.show()
+def round_int(n):
+ if int(float(n)) == n:
+ return int(n)
+ else:
+ nn = int(float(n+0.05)*10)/10.
+ if int(float(nn)) == nn:
+ return int(nn)
+ return nn
+
def box(lc,x):
try:
return lc.boxes['box3'+str(x)]
@@ -939,10 +943,7 @@ def show(lc, string, center=False):
y -= lc.tw.textsize
draw_text(lc.tw.turtle,string,x,y,lc.tw.textsize,lc.tw.turtle.width-x)
elif type(string) == float or type(string) == int:
- if int(string) == string:
- string = int(string)
- else:
- string = float(string*10.0/10.0)
+ string = round_int(string)
if center == True:
y -= lc.tw.textsize
draw_text(lc.tw.turtle,string,x,y,lc.tw.textsize,lc.tw.turtle.width-x)
@@ -1014,12 +1015,7 @@ def status_print(lc,n):
elif type(n) == int:
showlabel(lc,n)
else:
- if int(float(n)) == n:
- # show no decimal for ints
- showlabel(lc, int(n))
- else:
- # show one decimal for floats
- showlabel(lc, int(float(n)*10)/10.)
+ showlabel(lc, round_int(n))
def kbinput(lc):
if len(lc.tw.keypress) == 1:
diff --git a/taturtle.py b/taturtle.py
index 4a3ee53..4671cc8 100644
--- a/taturtle.py
+++ b/taturtle.py
@@ -84,6 +84,7 @@ def clearscreen(t):
return None
def forward(t, n):
+ n *= t.tw.coord_scale
t.gc.set_foreground(t.tw.fgcolor)
oldx, oldy = t.xcor, t.ycor
try:
@@ -116,6 +117,7 @@ def right(t,n):
def arc(t,a,r):
t.gc.set_foreground(t.tw.fgcolor)
+ r *= t.tw.coord_scale
try:
if a<0: larc(t,-a,r)
else: rarc(t,a,r)
@@ -132,7 +134,8 @@ def rarc(t,a,r):
if t.pendown:
t.canvas.image.draw_arc(t.gc,False,x,y,w,h, \
int(180-t.heading-a)*64,int(a)*64)
- invalt(t,x-t.pensize/2-3,y-t.pensize/2-3,w+t.pensize+6,h+t.pensize+6)
+ invalt(t,x-t.pensize*t.tw.coord_scale/2-3,y-t.pensize*t.tw.coord_scale/2-3,\
+ w+t.pensize*t.tw.coord_scale+6,h+t.pensize*t.tw.coord_scale+6)
right(t,a)
t.xcor=cx-r*cos(t.heading*DEGTOR)
t.ycor=cy+r*sin(t.heading*DEGTOR)
@@ -145,12 +148,15 @@ def larc(t,a,r):
if t.pendown:
t.canvas.image.draw_arc(t.gc,False,x,y,w,h,int(360-t.heading)*64, \
int(a)*64)
- invalt(t,x-t.pensize/2-3,y-t.pensize/2-3,w+t.pensize+6,h+t.pensize+6)
+ invalt(t,x-t.pensize*t.tw.coord_scale/2-3,y-t.pensize*t.tw.coord_scale/2-3,\
+ w+t.pensize*t.tw.coord_scale+6,h+t.pensize*t.tw.coord_scale+6)
right(t,-a)
t.xcor=cx+r*cos(t.heading*DEGTOR)
t.ycor=cy-r*sin(t.heading*DEGTOR)
def setxy(t,x,y):
+ x *= t.tw.coord_scale
+ y *= t.tw.coord_scale
try:
t.xcor,t.ycor = x,y
except:
@@ -164,7 +170,8 @@ def setpensize(t,ps):
t.pensize = ps
except:
pass
- t.gc.set_line_attributes(int(t.pensize),gtk.gdk.LINE_SOLID, \
+ t.gc.set_line_attributes(int(t.pensize*t.tw.coord_scale), \
+ gtk.gdk.LINE_SOLID, \
gtk.gdk.CAP_ROUND, gtk.gdk.JOIN_MITER)
return None
@@ -242,14 +249,17 @@ def setpen(t,bool):
t.pendown = bool
def draw_pixbuf(t,pixbuf,a,b,x,y,w,h):
+ w *= t.tw.coord_scale
+ h *= t.tw.coord_scale
t.canvas.image.draw_pixbuf(t.gc, pixbuf, a, b, x, y)
invalt(t,x,y,w,h)
def draw_text(t, label, x, y, size, w):
+ w *= t.tw.coord_scale
t.gc.set_foreground(t.tw.textcolor)
fd = pango.FontDescription('Sans')
try:
- fd.set_size(int(size)*pango.SCALE)
+ fd.set_size(int(size*t.tw.coord_scale)*pango.SCALE)
except:
pass
if type(label) == str or type(label) == unicode:
@@ -265,7 +275,6 @@ def draw_text(t, label, x, y, size, w):
w,h = pl.get_pixel_size()
invalt(t,x,y,w,h)
-
def draw_line(t,x1,y1,x2,y2):
x1,y1 = t.width/2+int(x1), t.height/2-int(y1)
x2,y2 = t.width/2+int(x2), t.height/2-int(y2)
@@ -275,8 +284,10 @@ def draw_line(t,x1,y1,x2,y2):
else: miny,maxy=y2,y1
w,h=maxx-minx,maxy-miny
t.canvas.image.draw_line(t.gc,x1,y1,x2,y2)
- invalt(t,minx-t.pensize/2-3,miny-t.pensize/2-3,w+t.pensize+6, \
- h+t.pensize+6)
+ invalt(t,minx-t.pensize*t.tw.coord_scale/2-3, \
+ miny-t.pensize*t.tw.coord_scale/2-3, \
+ w+t.pensize*t.tw.coord_scale+6, \
+ h+t.pensize*t.tw.coord_scale+6)
def turn_turtle(t):
setshape(t.spr, t.shapelist[(int(t.heading+5)%360)/10])
diff --git a/tawindow.py b/tawindow.py
index 63c4070..005273c 100644
--- a/tawindow.py
+++ b/tawindow.py
@@ -131,12 +131,13 @@ def twNew(win, path, lang, parent=None):
tw.hide = False
tw.palette = True
select_category(tw, tw.selbuttons[0])
+ tw.coord_scale = 1
tw.turtle = tNew(tw,tw.width,tw.height)
tw.lc = lcNew(tw)
tw.buddies = []
tw.dx = 0
tw.dy = 0
- tw.Cartesian = False
+ tw.cartesian = False
tw.polar = False
return tw