Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tablock.py
diff options
context:
space:
mode:
authorWalter Bender <walter@walter-laptop.(none)>2010-02-09 16:17:44 (GMT)
committer Walter Bender <walter@walter-laptop.(none)>2010-02-09 16:17:44 (GMT)
commit21b5205a773fb9a5049a7ed9b973f268fd598d63 (patch)
treed68288ac04f50d8ebe7bdf25d6a2c1e10e18b540 /tablock.py
parent25d9cf32599975491adec6ea6d0b955c620125cf (diff)
expandable no. args to user-defined blocks
Diffstat (limited to 'tablock.py')
-rw-r--r--tablock.py26
1 files changed, 24 insertions, 2 deletions
diff --git a/tablock.py b/tablock.py
index 5d46a97..895d31b 100644
--- a/tablock.py
+++ b/tablock.py
@@ -152,10 +152,10 @@ class Block:
self.spr.draw()
# We may want to add additional slots for arguments ("innies").
- def add_arg(self):
+ def add_arg(self, keep_expanding=True):
h = self.svg.get_height()
self._ei += 1
- if self.type == 'block':
+ if self.type == 'block' and keep_expanding:
self.svg.set_show(True)
else:
self.svg.set_show(False)
@@ -307,6 +307,8 @@ class Block:
self._make_number_style(svg)
elif self.name in NUMBER_STYLE_BLOCK:
self._make_number_style_block(svg)
+ elif self.name in NUMBER_STYLE_VAR_ARG:
+ self._make_number_style_var_arg(svg)
elif self.name in NUMBER_STYLE_1ARG:
self._make_number_style_1arg(svg)
elif self.name in NUMBER_STYLE_1STRARG:
@@ -458,6 +460,26 @@ class Block:
['number', False, self.svg.docks[1][0],
self.svg.docks[1][1]]]
+ def _make_number_style_var_arg(self, svg):
+ self.svg.expand(self._dx+self._ex, self._ey)
+ innie = [True]
+ for i in range(self._ei+1):
+ innie.append(True)
+ self.svg.set_innie(innie)
+ self.svg.set_outie(True)
+ self.svg.set_tab(False)
+ self.svg.set_slot(False)
+ self._make_basic_block(svg)
+ self.docks = [['number', True, self.svg.docks[2+self._ei][0],
+ self.svg.docks[2+self._ei][1]],
+ ['number', False, self.svg.docks[0][0],
+ self.svg.docks[0][1], '[']]
+ for i in range(self._ei+1):
+ self.docks.append(['number', False, self.svg.docks[i+1][0],
+ self.svg.docks[i+1][1]])
+ self.docks.append(['unavailable', False, 0, 0, ']'])
+ print self.docks
+
def _make_number_style_block(self, svg):
self.svg.expand(self._dx+self._ex, self._ey)
self.svg.set_innie([True,True])