Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tawindow.py
diff options
context:
space:
mode:
authorWalter Bender <walter@walter-laptop.(none)>2010-01-26 04:41:46 (GMT)
committer Walter Bender <walter@walter-laptop.(none)>2010-01-26 04:41:46 (GMT)
commit18a50f72447c28c82c6283d51ab52e9b153836bc (patch)
tree03619071243f6acb5d83dfb1e4ddfbffffe64034 /tawindow.py
parentd55ff0e2c64ea5c90a8573ca97b969e09a143d2b (diff)
fixed most of the project-loading problems
Diffstat (limited to 'tawindow.py')
-rw-r--r--tawindow.py54
1 files changed, 22 insertions, 32 deletions
diff --git a/tawindow.py b/tawindow.py
index acc7a96..d61dd6e 100644
--- a/tawindow.py
+++ b/tawindow.py
@@ -178,7 +178,7 @@ class TurtleArtWindow():
change the icon for user-defined blocks after Python code is loaded
"""
def set_userdefined(self):
- for blk in self.block_list.list:
+ for blk in self._just_blocks():
if blk.name == 'nop':
blk.set_image(self.media_shapes['pythonloaded'])
self.nop = 'pythonloaded'
@@ -188,12 +188,12 @@ class TurtleArtWindow():
"""
def hideshow_button(self):
if self.hide is False:
- for blk in self.block_list.list:
+ for blk in self._just_blocks():
blk.spr.set_layer(HIDE_LAYER)
self._hide_palette()
self.hide = True
else:
- for blk in self.block_list.list:
+ for blk in self._just_blocks():
blk.spr.set_layer(BLOCK_LAYER)
self.show_palette()
self.hide = False
@@ -232,14 +232,14 @@ class TurtleArtWindow():
if self._running_sugar():
self.activity.recenter()
# Look for a 'start' block
- for blk in self.block_list.list:
+ for blk in self._just_blocks():
if self._find_start_stack(blk):
self.step_time = time
print "running stack starting from %s" % (blk.name)
self._run_stack(blk)
return
# If there is no 'start' block, run stacks that aren't 'def action'
- for blk in self.blocks_list.list:
+ for blk in self._just_blocks():
if self._find_block_to_run(blk):
self.step_time = time
print "running stack starting from %s" % (blk.name)
@@ -255,6 +255,8 @@ class TurtleArtWindow():
if hide_palette_spr is True:
self.palette_spr.set_layer(HIDE_LAYER)
self.selected_palette = None
+ for i in range(len(PALETTES)):
+ self.selectors[i].set_layer(HIDE_LAYER)
def show_toolbar_palette(self, n, init_only=False):
# TODO: make graphical selector buttons
@@ -281,7 +283,7 @@ class TurtleArtWindow():
self.selectors[i].type = 'selector'
self.selectors[i].set_layer(TAB_LAYER)
w, h = self.selectors[i].get_dimensions()
- x += (w+5)
+ x += int(w+5)
if self.palette_spr is None:
svg = sprite_factory.SVG()
self.palette_spr = sprites.Sprite(self.sprite_list, 0, 0,
@@ -292,12 +294,16 @@ class TurtleArtWindow():
if len(self.palettes) == 0:
for i in range(len(PALETTES)):
self.palettes.append([])
-
+
if init_only is True:
return
if self.selected_palette is not None:
self.hide_toolbar_palette(False)
+
+ for i in range(len(PALETTES)):
+ self.selectors[i].set_layer(TAB_LAYER)
+
self.selected_palette = n
self.selectors[n].set_shape(self.selector_shapes[n][1])
self.selected_selector = self.selectors[n]
@@ -315,10 +321,10 @@ class TurtleArtWindow():
w, h = self.palettes[n][i].spr.get_dimensions()
if y+h > PALETTE_HEIGHT:
y = ICON_SIZE+5
- x += (max_width+5)
+ x += int(max_width+5)
max_width = 0
self.palettes[n][i].spr.move((int(x), int(y)))
- y += (h+5)
+ y += int(h+5)
if w > max_width:
max_width = w
else:
@@ -367,7 +373,6 @@ class TurtleArtWindow():
"""
Select a category.
- TODO: move to toolbar
"""
def _select_category(self, spr):
i = self.selectors.index(spr)
@@ -377,13 +382,6 @@ class TurtleArtWindow():
self.selected_selector.set_shape(self.selector_shapes[j][0])
self.selected_selector = spr
self.show_toolbar_palette(i)
- """
- if hasattr(self, 'current_category'):
- self.current_category.set_shape(self.current_category.offshape)
- spr.set_shape(spr.onshape)
- self.current_category = spr
- self.category_spr.set_shape(spr.group)
- """
"""
Hide the palette.
@@ -457,7 +455,7 @@ class TurtleArtWindow():
self.block_operation = 'move'
# First, check to see if we are dragging or rotating a turtle.
if self.selected_turtle is not None:
- type,dragx,dragy = self.dragpos
+ type, dragx, dragy = self.dragpos
(sx, sy) = self.selected_turtle.spr.get_xy()
if type == 'move':
if mdx != 0 or mdy != 0:
@@ -809,30 +807,19 @@ class TurtleArtWindow():
return True
elif spr.type == 'selector':
self._select_category(spr)
- """
- elif spr.type == 'selbutton':
- self._select_category(spr)
- elif spr.type == 'category':
- self._block_selector_pressed(x,y)
- """
"""
Block pressed
"""
def _block_pressed(self, mask, x, y, blk):
if blk is not None:
- print "in block_pressed: %s" % (blk.name)
- print "0. marking block %s as selected" % (blk.name)
blk.spr.set_shape(blk.shapes[1])
- print "1. disconnecting block %s from those above it" % (blk.name)
self._disconnect(blk)
- print "2. creating drag_group with %s" % (blk.name)
self.drag_group = self._find_group(blk)
- print "drag_group: %s" % (self._print_blk_list(self.drag_group))
- for blk in self.drag_group:
- blk.spr.set_layer(TOP_LAYER)
(sx, sy) = blk.spr.get_xy()
self.dragpos = x-sx, y-sy
+ for blk in self.drag_group:
+ blk.spr.set_layer(TOP_LAYER)
"""
Unselect block
@@ -947,7 +934,7 @@ class TurtleArtWindow():
my_block = self.drag_group[0]
d = 200
for my_dockn in range(len(my_block.docks)):
- for i, your_block in enumerate(self.block_list.list):
+ for i, your_block in enumerate(self._just_blocks()):
# don't link to a block to which you're already connected
if your_block in self.drag_group:
continue
@@ -1012,6 +999,9 @@ class TurtleArtWindow():
run_blocks(self.lc, top, self._just_blocks(), True)
gobject.idle_add(doevalstep, self.lc)
+ """
+ Filter out 'proto' blocks
+ """
def _just_blocks(self):
just_blocks_list = []
for b in self.block_list.list: