Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block.py24
-rw-r--r--constants.py3
-rwxr-xr-xsprite_factory.py8
-rw-r--r--tawindow.py9
4 files changed, 23 insertions, 21 deletions
diff --git a/block.py b/block.py
index 4ec0595..2336905 100644
--- a/block.py
+++ b/block.py
@@ -116,7 +116,8 @@ class Block:
self._make_block(name, 0, svg)
self.spr = sprites.Sprite(sprite_list, x, y, self.shape)
- self.spr.set_margins(self._left, 0, self._right, 0)
+ self.spr.set_margins(self._left, svg.get_slot_depth(), self._right,
+ svg.get_slot_depth()*2)
# if labels were passed, use them
if len(labels) > 0:
@@ -145,10 +146,6 @@ class Block:
self._make_block(name, e, svg)
self.spr.set_shape(self.shape)
- """
- Do something with default values?
- """
-
def _make_block(self, name, e, svg):
self._set_colors(name, svg)
svg.set_stroke_width(STANDARD_STROKE_WIDTH)
@@ -164,7 +161,7 @@ class Block:
elif name in BASIC_STYLE_1ARG:
self._make_basic_style_1arg(e, svg)
elif name in BASIC_STYLE_2ARG:
- self._make_basic_style_1arg(e, svg)
+ self._make_basic_style_2arg(e, svg)
elif name in BOX_STYLE:
self._make_box_style(e, svg)
elif name in NUMBER_STYLE:
@@ -187,11 +184,7 @@ class Block:
self._make_flow_style_boolean(e, svg)
else:
self._make_basic_style(e, svg)
- print "don't know how to create a block for %s" % (name)
-
- print self.docks
- print "w %d h %d" % (svg._width, svg._height)
- print "l %d r %d" % (self._left, self._right)
+ print "don't know how to create a %s block" % (name)
def _set_colors(self, name, svg):
if name in TURTLE_PALETTE:
@@ -234,7 +227,7 @@ class Block:
self.docks = (('start', True, 0, 0),
('string', False, svg.docks[0][0], svg.docks[0][1]),
('flow', False, svg.docks[1][0], svg.docks[1][1]))
- self._left, self._right = 0, svg.get_innie_size()
+ self._left, self._right = 0, svg.get_innie_width()
def _make_basic_style_tail(self, e, svg):
svg.expand(40+e, 0)
@@ -250,7 +243,7 @@ class Block:
self.docks = (('flow', True, svg.docks[0][0], svg.docks[0][1]),
('number', False, svg.docks[1][0], svg.docks[1][1]),
('flow', False, svg.docks[2][0], svg.docks[2][1]))
- self._left, self._right = 0, svg.get_innie_size()
+ self._left, self._right = 0, svg.get_innie_width()
def _make_basic_style_2arg(self, e, svg):
svg.expand(25+e, 0)
@@ -260,7 +253,7 @@ class Block:
('number', False, svg.docks[1][0], svg.docks[1][1]),
('number', False, svg.docks[2][0], svg.docks[2][1]),
('flow', False, svg.docks[3][0], svg.docks[3][1]))
- self._left, self._right = 0, svg.get_width()-svg.docks[1][0]
+ self._left, self._right = 0, svg.get_innie_width()*1.5
def _make_box_style(self, e, svg):
svg.expand(60+e, 0)
@@ -308,7 +301,8 @@ class Block:
self.docks = (('number', True, svg.docks[2][0], svg.docks[2][1]),
('number', False, svg.docks[0][0], svg.docks[0][1]),
('number', False, svg.docks[1][0], svg.docks[1][1]))
- self._left, self._right = svg.docks[2][0], svg.get_width()-svg.docks[0][0]
+ self._left = svg.docks[2][0]
+ self._right = svg.get_width()-svg.docks[0][0]
def _make_compare_style(self, e, svg):
svg.expand(10+e,0)
diff --git a/constants.py b/constants.py
index cc3c56a..2af8c74 100644
--- a/constants.py
+++ b/constants.py
@@ -163,7 +163,8 @@ DEFAULTS = {'forward':[100], 'back':[100], 'left':[90], 'right':[90],
'set shade':[50], 'fill screen':[60,80], 'number':[100],
'random':[0,100], 'wait':[1], 'repeat':[4], 'set xy':[0,0],
'store in':[_('my box'),100], 'box':[_('my box')],
- 'def action':[_('action')], 'action':[_('action')]}
+ 'def action':[_('action')], 'action':[_('action')],
+ 'store in box 1':[100], 'store in box 2':[100]}
#
# 'dead key' Unicode dictionaries
diff --git a/sprite_factory.py b/sprite_factory.py
index 1bfb1b1..b761d61 100755
--- a/sprite_factory.py
+++ b/sprite_factory.py
@@ -256,9 +256,12 @@ class SVG:
def get_height(self):
return self._height
- def get_innie_size(self):
+ def get_innie_width(self):
return (self._innie_x1+self._innie_x2)*self._scale
+ def get_slot_depth(self):
+ return self._slot_y*self._scale
+
def clear_docks(self):
self.docks = []
@@ -510,7 +513,8 @@ class SVG:
self._rline_to(0, -self._slot_y),
self._rline_to(-self._stroke_width, 0))
self.docks.append((int(self._x*self._scale),
- int(self._y*self._scale)))
+ int((self._y+self._stroke_width)*\
+ self._scale)))
return s
else:
return self._rline_to(-self._slot_x, 0)
diff --git a/tawindow.py b/tawindow.py
index 4b9daa2..5e845d5 100644
--- a/tawindow.py
+++ b/tawindow.py
@@ -913,12 +913,15 @@ class TurtleArtWindow():
self.dragpos = 20, 20
newblk.connections = [None]*len(newblk.docks)
print "new block %s" % (newblk.name)
- for i in range(len(newblk.defaults)):
- dock = newblk.docks[i+1] # the first dock position is a connector
+ print newblk.defaults
+ print newblk.docks
+ for i, argvalue in enumerate(newblk.defaults):
+ # skip the first dock position--it is always a connector
+ dock = newblk.docks[i+1]
argname = dock[0]
+ print "adding block %s with value %s" % (argname, str(argvalue))
if argname == 'unavailable':
continue
- argvalue = newblk.defaults[i]
if (type(argvalue) is str or type(argvalue) is unicode) and\
argname == 'number':
argname = 'string'