diff options
author | Walter 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) |
commit | 61247fb0e77c0717a65de9ce0790011ba038f470 (patch) | |
tree | 765c6a6c998cd14bd45ab0c92a676c66208db6df | |
parent | 259f968184d27a9f5fd3007f99a5d0ef525072aa (diff) |
simple expandable block scheme
-rw-r--r-- | block.py | 50 | ||||
-rw-r--r-- | tawindow.py | 6 |
2 files changed, 37 insertions, 19 deletions
@@ -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) diff --git a/tawindow.py b/tawindow.py index 8c15123..e74201f 100644 --- a/tawindow.py +++ b/tawindow.py @@ -834,13 +834,13 @@ class TurtleArtWindow(): if hasattr(spr, 'type'): if spr.type == "canvas": spr.set_layer(CANVAS_LAYER) - return True elif spr.type == 'selector': self._select_category(spr) elif spr.type == 'category': r,g,b,a = spr.get_pixel((x, y)) if (r == 255 and g == 0) or g == 255: self._hide_palette() + return True """ Block pressed @@ -961,6 +961,10 @@ class TurtleArtWindow(): elif blk.name in self.importblocks: self._import_from_journal(self.selected_spr) ''' + elif blk.name=='vspace': + blk.expand_in_y(20) + elif blk.name=='hspace': + blk.expand_in_x(20) elif blk.name=='nop' and self.myblock==None: self._import_py() else: |