Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--TurtleArtActivity.py17
-rw-r--r--talogo.py7
-rw-r--r--tawindow.py29
-rwxr-xr-xturtleart.py42
4 files changed, 74 insertions, 21 deletions
diff --git a/TurtleArtActivity.py b/TurtleArtActivity.py
index 94df7d1..186d7b5 100644
--- a/TurtleArtActivity.py
+++ b/TurtleArtActivity.py
@@ -612,7 +612,7 @@ class TurtleArtActivity(activity.Activity):
"""
def _setup_toolbar(self):
- try:
+ try:
# Use 0.86 toolbar design
toolbar_box = ToolbarBox()
# Buttons added to the Activity toolbar
@@ -1018,7 +1018,6 @@ class TurtleArtActivity(activity.Activity):
self.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK)
self.connect("visibility-notify-event", self.__visibility_notify_cb)
-
"""
Write the project to the Journal
"""
@@ -1174,6 +1173,20 @@ class ViewToolbar(gtk.Toolbar):
self.insert(separator, -1)
separator.show()
+ self.activity.resize_up_button = ToolButton('resize+')
+ self.activity.resize_up_button.set_tooltip(_("Grow blocks"))
+ self.activity.resize_up_button.connect('clicked',
+ self.activity._do_resize_blocks_cb, 1.5)
+ self.insert(self.activity.resize_up_button,-1)
+ self.activity.resize_up_button.show()
+
+ self.activity.resize_down_button = ToolButton('resize-')
+ self.activity.resize_down_button.set_tooltip(_("Shrink blocks"))
+ self.activity.resize_down_button.connect('clicked',
+ self.activity._do_resize_blocks_cb, 0.667)
+ self.insert(self.activity.resize_down_button,-1)
+ self.activity.resize_down_button.show()
+
self.activity.rescale_button = ToolButton('expand-coordinates')
self.activity.rescale_button.set_tooltip(_("Rescale coordinates up"))
self.activity.rescale_button.connect('clicked', \
diff --git a/talogo.py b/talogo.py
index add0b8e..8b1db60 100644
--- a/talogo.py
+++ b/talogo.py
@@ -35,8 +35,7 @@ try:
except:
pass
-from taconstants import PRIMITIVES, PALETTES, PALETTE_NAMES, STATUS_LAYER,\
- BOX_STYLE
+from taconstants import PALETTES, PALETTE_NAMES, BOX_STYLE
from tagplay import play_audio, play_movie_from_file, stop_media
from tajail import myfunc, myfunc_import
from tautils import get_pixbuf_from_journal, movie_media_type,\
@@ -175,7 +174,7 @@ class LogoCode:
'+':[None, lambda self,x,y: x+y],
'and':[2, lambda self,x,y: x&y],
'arc':[2, lambda self, x, y: self.tw.canvas.arc(x, y)],
- 'back':[1, lambda self,x: self.prim_forward(-x)],
+ 'back':[1, lambda self,x: self.tw.canvas.forward(-x)],
'blue':[0, lambda self: 70],
'bpos':[0, lambda self: -self.tw.canvas.height/(self.tw.coord_scale*2)],
'box1':[0, lambda self: self.boxes['box1']],
@@ -204,7 +203,7 @@ class LogoCode:
'insertimage':[1, lambda self,x: self.insert_image(x, False)],
'kbinput':[0, lambda self: self.prim_kbinput()],
'keyboard':[0, lambda self: self.keyboard],
- 'left':[1, lambda self,x: self.prim_right(-x)],
+ 'left':[1, lambda self,x: self.tw.canvas.right(-x)],
'lpos':[0, lambda self: -self.tw.canvas.width/(self.tw.coord_scale*2)],
'less?':[2, lambda self,x,y: taless(x,y)],
'minus':[2, lambda self,x,y: taminus(x,y)],
diff --git a/tawindow.py b/tawindow.py
index 75ffafd..3373f85 100644
--- a/tawindow.py
+++ b/tawindow.py
@@ -228,7 +228,7 @@ class TurtleArtWindow():
if self.hide is False:
for blk in self.just_blocks():
blk.spr.hide()
- self._hide_palette()
+ self.hide_palette()
self.hide = True
else:
for blk in self.just_blocks():
@@ -245,7 +245,7 @@ class TurtleArtWindow():
self.palette == False
if self.running_sugar:
self.activity.do_hidepalette()
- self._hide_palette()
+ self.hide_palette()
else:
self.palette == True
if self.running_sugar:
@@ -255,8 +255,8 @@ class TurtleArtWindow():
"""
Show palette
"""
- def show_palette(self):
- self.show_toolbar_palette(0)
+ def show_palette(self, n=0):
+ self.show_toolbar_palette(n)
self.palette_button[self.orientation].set_layer(TAB_LAYER)
self.toolbar_spr.set_layer(CATEGORY_LAYER)
self.palette = True
@@ -264,7 +264,7 @@ class TurtleArtWindow():
"""
Hide the palette.
"""
- def _hide_palette(self):
+ def hide_palette(self):
self.hide_toolbar_palette()
self.palette_button[self.orientation].hide()
self.toolbar_spr.hide()
@@ -556,7 +556,7 @@ class TurtleArtWindow():
self.selected_selector.set_shape(self.selector_shapes[j][0])
self.previous_selector = self.selected_selector
self.selected_selector = spr
- self.show_toolbar_palette(i)
+ self.show_palette(i)
"""
Find a stack to run (any stack without a 'def action'on the top).
@@ -965,9 +965,9 @@ class TurtleArtWindow():
elif MACROS.has_key(blk.name):
self._new_macro(blk.name, x+PALETTE_WIDTH, y+PALETTE_HEIGHT)
else:
- blk.spr.set_shape(blk.shapes[1])
+ blk.highlight()
self._new_block(blk.name, x+PALETTE_WIDTH, y+PALETTE_HEIGHT)
- blk.spr.set_shape(blk.shapes[0])
+ blk.unhighlight()
return True
# Next, look for a turtle
@@ -994,7 +994,7 @@ class TurtleArtWindow():
self.palette_sprs[self.selected_palette][
1-self.orientation].hide()
self._layout_palette(self.selected_palette)
- self.show_toolbar_palette(self.selected_palette)
+ self.show_palette(self.selected_palette)
return True
"""
@@ -1002,7 +1002,7 @@ class TurtleArtWindow():
"""
def _block_pressed(self, mask, x, y, blk):
if blk is not None:
- blk.spr.set_shape(blk.shapes[1])
+ blk.highlight()
self._disconnect(blk)
self.drag_group = self._find_group(blk)
(sx, sy) = blk.spr.get_xy()
@@ -1020,8 +1020,7 @@ class TurtleArtWindow():
self._number_check()
elif self.selected_blk.name == 'string':
self._string_check()
- # Reset shape of the selected block
- self.selected_blk.spr.set_shape(self.selected_blk.shapes[0])
+ self.selected_blk.unhighlight()
self.selected_blk = None
"""
@@ -1083,7 +1082,7 @@ class TurtleArtWindow():
b.type = 'trash'
b.spr.hide()
self.drag_group = None
- self.show_toolbar_palette(PALETTE_NAMES.index('trash'))
+ self.show_palette(PALETTE_NAMES.index('trash'))
return
# Pull a stack of new blocks off of the category palette.
@@ -1898,6 +1897,10 @@ class TurtleArtWindow():
self.status_spr.set_shape(self.status_shapes[shp])
self.status_spr.set_label(label)
self.status_spr.set_layer(STATUS_LAYER)
+ if shp == 'info':
+ self.status_spr.move((PALETTE_WIDTH, self.height-300))
+ else:
+ self.status_spr.move((PALETTE_WIDTH, self.height-200))
def calc_position(self, t):
w,h,x,y,dx,dy = TEMPLATES[t]
diff --git a/turtleart.py b/turtleart.py
index 14c88cc..780cfd3 100755
--- a/turtleart.py
+++ b/turtleart.py
@@ -28,6 +28,7 @@ import os
import os.path
import locale
from gettext import gettext as _
+from taconstants import OVERLAY_LAYER
from tautils import data_to_string, data_from_string
from tawindow import TurtleArtWindow
@@ -92,10 +93,22 @@ class TurtleMain():
menu = gtk.Menu()
+ menu_items = gtk.MenuItem(_("Cartesian"))
+ menu.append(menu_items)
+ menu_items.connect("activate", self._do_cartesian_cb)
+ menu_items.show()
+ menu_items = gtk.MenuItem(_("Polar"))
+ menu.append(menu_items)
+ menu_items.connect("activate", self._do_polar_cb)
+ menu_items.show()
menu_items = gtk.MenuItem(_("Larger"))
menu.append(menu_items)
menu_items.connect("activate", self._do_resize_cb, 1.5)
menu_items.show()
+ menu_items = gtk.MenuItem(_("Smaller"))
+ menu.append(menu_items)
+ menu_items.connect("activate", self._do_resize_cb, 0.667)
+ menu_items.show()
menu_items = gtk.MenuItem(_("Reset"))
menu.append(menu_items)
menu_items.connect("activate", self._do_resize_cb, -1)
@@ -153,6 +166,10 @@ class TurtleMain():
menu.append(menu_items)
menu_items.connect("activate", self._do_step_cb)
menu_items.show()
+ menu_items = gtk.MenuItem(_("Trace"))
+ menu.append(menu_items)
+ menu_items.connect("activate", self._do_trace_cb)
+ menu_items.show()
menu_items = gtk.MenuItem(_("Stop"))
menu.append(menu_items)
menu_items.connect("activate", self._do_stop_cb)
@@ -197,14 +214,30 @@ class TurtleMain():
self.tw.block_scale *= factor
self.tw.resize_blocks()
+ def _do_cartesian_cb(self, button):
+ if self.tw.cartesian is True:
+ self.tw.overlay_shapes['Cartesian'].hide()
+ self.tw.cartesian = False
+ else:
+ self.tw.overlay_shapes['Cartesian'].set_layer(OVERLAY_LAYER)
+ self.tw.cartesian = True
+
+ def _do_polar_cb(self, button):
+ if self.tw.polar is True:
+ self.tw.overlay_shapes['polar'].hide()
+ self.tw.polar = False
+ else:
+ self.tw.overlay_shapes['polar'].set_layer(OVERLAY_LAYER)
+ self.tw.polar = True
+
def _do_palette_cb(self, widget):
- self.tw.show_toolbar_palette(self.i)
+ self.tw.show_palette(self.i)
self.i += 1
if self.i == len(self.tw.palettes):
self.i = 0
def _do_hide_palette_cb(self, widget):
- self.tw.hide_toolbar_palette()
+ self.tw.hide_palette()
def _do_hideshow_cb(self, widget):
self.tw.hideshow_button()
@@ -220,6 +253,11 @@ class TurtleMain():
def _do_step_cb(self, widget):
self.tw.lc.trace = 0
+ self.tw.run_button(3)
+ return
+
+ def _do_trace_cb(self, widget):
+ self.tw.lc.trace = 1
self.tw.run_button(6)
return