Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/block.py
diff options
context:
space:
mode:
authorWalter Bender <walter@walter-laptop.(none)>2010-01-29 22:37:18 (GMT)
committer Walter Bender <walter@walter-laptop.(none)>2010-01-29 22:37:18 (GMT)
commit61247fb0e77c0717a65de9ce0790011ba038f470 (patch)
tree765c6a6c998cd14bd45ab0c92a676c66208db6df /block.py
parent259f968184d27a9f5fd3007f99a5d0ef525072aa (diff)
simple expandable block scheme
Diffstat (limited to 'block.py')
-rw-r--r--block.py50
1 files changed, 32 insertions, 18 deletions
diff --git a/block.py b/block.py
index 8137f74..e955895 100644
--- a/block.py
+++ b/block.py
@@ -86,6 +86,8 @@ class Block:
self.content = None
self.primitive = None
self.type = type
+ self._ex = 0
+ self._ey = 0
self._font_size = [6.0, 4.5]
self._left = 2
self._right = 2
@@ -129,6 +131,18 @@ class Block:
self._make_block(e, self.svg)
self.spr.set_shape(self.shapes[0])
+ # We may want to grow a block vertically.
+ def expand_in_y(self, dy):
+ self._ey += dy
+ self._make_block(0, self.svg)
+ self.spr.set_shape(self.shapes[0])
+
+ # We may want to grow a block vertically.
+ def expand_in_x(self, dx):
+ self._ex += dx
+ self._make_block(0, self.svg)
+ self.spr.set_shape(self.shapes[0])
+
def _new_block_from_factory(self, sprite_list, x, y):
self.svg = SVG()
self.svg.set_scale(self.scale)
@@ -221,14 +235,14 @@ class Block:
self.svg.set_colors(self.colors)
def _make_basic_style(self, e, svg):
- self.svg.expand(e, 0)
+ self.svg.expand(e+self._ex, self._ey)
self._make_basic_block(svg)
self.docks = (('flow',True,self.svg.docks[0][0],self.svg.docks[0][1]),
('flow',False,self.svg.docks[1][0],self.svg.docks[1][1]))
self._left, self._right = 2, 2
def _make_basic_style_head(self, e, svg):
- self.svg.expand(10+e, 0)
+ self.svg.expand(10+e+self._ex, self._ey)
self.svg.set_slot(False)
self.svg.set_cap(True)
self._make_basic_block(svg)
@@ -238,7 +252,7 @@ class Block:
self._left, self._right = 2, 2
def _make_basic_style_head_1arg(self, e, svg):
- self.svg.expand(10+e, 0)
+ self.svg.expand(10+e+self._ex, self._ey)
self.svg.set_innie([True])
self.svg.set_slot(False)
self.svg.set_cap(True)
@@ -251,7 +265,7 @@ class Block:
self._left, self._right = 2, self.svg.get_innie_width()*1.5
def _make_basic_style_tail(self, e, svg):
- self.svg.expand(10+e, 0)
+ self.svg.expand(10+e+self._ex, self._ey)
self.svg.set_tab(False)
self._make_basic_block(svg)
self.docks = (('flow', True, self.svg.docks[0][0],
@@ -259,7 +273,7 @@ class Block:
('unavailable', False, 0, 0))
def _make_basic_style_1arg(self, e, svg):
- self.svg.expand(10+e, 0)
+ self.svg.expand(10+e+self._ex, self._ey)
self.svg.set_innie([True])
self._make_basic_block(svg)
self.docks = (('flow', True, self.svg.docks[0][0],
@@ -271,7 +285,7 @@ class Block:
self._left, self._right = 2, self.svg.get_innie_width()*1.5
def _make_basic_style_2arg(self, e, svg):
- self.svg.expand(10+e, 0)
+ self.svg.expand(10+e+self._ex, self._ey)
self.svg.set_innie([True,True])
self._make_basic_block(svg)
self.docks = (('flow', True, self.svg.docks[0][0],
@@ -285,7 +299,7 @@ class Block:
self._left, self._right = 2, self.svg.get_innie_width()*1.5
def _make_box_style(self, e, svg):
- self.svg.expand(60+e, 0)
+ self.svg.expand(60+e+self._ex, self._ey)
self._make_basic_box(svg)
self.docks = (('number', True, self.svg.docks[0][0],
self.svg.docks[0][1]),
@@ -293,7 +307,7 @@ class Block:
self._left, self._right = self.svg.docks[1][0], 1
def _make_number_style(self, e, svg):
- self.svg.expand(e, 0)
+ self.svg.expand(e+self._ex, self._ey)
self.svg.set_innie([True,True])
self.svg.set_outie(True)
self.svg.set_tab(False)
@@ -313,7 +327,7 @@ class Block:
self._right = self.svg.get_innie_width()*1.5
def _make_number_style_block(self, e, svg):
- self.svg.expand(e, 0)
+ self.svg.expand(e+self._ex, self._ey)
self.svg.set_innie([True,True])
self.svg.set_outie(True)
self.svg.set_tab(False)
@@ -330,7 +344,7 @@ class Block:
self._right = self.svg.get_innie_width()*1.5
def _make_number_style_1arg(self, e, svg):
- self.svg.expand(e, 0)
+ self.svg.expand(e+self._ex, self._ey)
self.svg.set_innie([True])
self.svg.set_outie(True)
self.svg.set_tab(False)
@@ -343,7 +357,7 @@ class Block:
self._left, self._right = self.svg.docks[1][0], self.svg.docks[1][0]
def _make_number_style_porch(self, e, svg):
- self.svg.expand(e, 0)
+ self.svg.expand(e+self._ex, self._ey)
self.svg.set_innie([True,True])
self.svg.set_outie(True)
self.svg.set_tab(False)
@@ -360,7 +374,7 @@ class Block:
self._right = self.svg.get_width()-self.svg.docks[0][0]
def _make_compare_style(self, e, svg):
- self.svg.expand(10+e,0)
+ self.svg.expand(10+e+self._ex, self._ey)
self._make_boolean_compare(svg)
self.docks = (('bool', True, self.svg.docks[0][0],
self.svg.docks[0][1], '('),
@@ -372,7 +386,7 @@ class Block:
self._left, self._right = self.svg.get_width()-self.svg.docks[2][0], 0
def _make_boolean_style(self, e, svg):
- self.svg.expand(10+e,0)
+ self.svg.expand(10+e+self._ex, self._ey)
self._make_boolean_and_or(svg)
self.docks = (('bool', True, self.svg.docks[0][0],
self.svg.docks[0][1]),
@@ -383,7 +397,7 @@ class Block:
self._left, self._right = self.svg.get_width()-self.svg.docks[1][0], 0
def _make_not_style(self, e, svg):
- self.svg.expand(15+e, 0)
+ self.svg.expand(15+e+self._ex, self._ey)
self._make_boolean_not(svg)
self.docks = (('bool', True, self.svg.docks[0][0],
self.svg.docks[0][1]),
@@ -393,7 +407,7 @@ class Block:
self._left = self._right
def _make_flow_style(self, e, svg):
- self.svg.expand(e, 0)
+ self.svg.expand(e+self._ex, self._ey)
self.svg.set_slot(True)
self._make_basic_flow(svg)
self.docks = (('flow', True, self.svg.docks[0][0],
@@ -404,7 +418,7 @@ class Block:
self._left, self._right = 0, self.svg.get_width()-self.svg.docks[1][0]
def _make_flow_style_1arg(self, e, svg):
- self.svg.expand(e, 0)
+ self.svg.expand(e+self._ex, self._ey)
self.svg.set_slot(True)
self.svg.set_tab(True)
self.svg.set_innie([True])
@@ -422,7 +436,7 @@ class Block:
self.svg.get_innie_width()*1.5
def _make_flow_style_boolean(self, e, svg):
- self.svg.expand(e, 0)
+ self.svg.expand(e+self._ex, self._ey)
self.svg.set_slot(True)
self.svg.set_tab(True)
self.svg.set_boolean(True)
@@ -438,7 +452,7 @@ class Block:
self._left, self._right = 2, self.svg.get_width()-self.svg.docks[1][0]
def _make_flow_style_else(self, e, svg):
- self.svg.expand(e, 0)
+ self.svg.expand(e+self._ex, self._ey)
self.svg.set_slot(True)
self.svg.set_tab(True)
self.svg.set_else(True)