Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2013-12-12 16:48:56 (GMT)
committer Walter Bender <walter@sugarlabs.org>2013-12-12 16:48:56 (GMT)
commitf76778cb84a098aa2b22a957f87e1b8c75015747 (patch)
tree150f5095dac52b434ecb9b364d31a5e0de0af59a
parent7fa8f0461713faacb2a54d30d507f65d7fe863f2 (diff)
auto-resize until boolean section
-rw-r--r--TurtleArt/tablock.py3
-rw-r--r--TurtleArt/taconstants.py5
-rwxr-xr-xTurtleArt/tasprite_factory.py12
-rw-r--r--TurtleArt/tawindow.py63
-rw-r--r--plugins/turtle_blocks_extras/turtle_blocks_extras.py8
5 files changed, 47 insertions, 44 deletions
diff --git a/TurtleArt/tablock.py b/TurtleArt/tablock.py
index 3b9650f..402de33 100644
--- a/TurtleArt/tablock.py
+++ b/TurtleArt/tablock.py
@@ -1088,7 +1088,8 @@ class Block:
self.svg.docks[4][1], ']']]
def _make_clamp_style_until(self, svg, extend_x=0, extend_y=4):
- self.svg.expand(self.dx + self.ex + extend_x, self.ey + extend_y)
+ self.svg.expand(self.dx + self.ex + extend_x, self.ey + extend_y,
+ 0, self.ey2)
self.svg.set_slot(True)
self.svg.set_tab(True)
self.svg.set_boolean(True)
diff --git a/TurtleArt/taconstants.py b/TurtleArt/taconstants.py
index 81f15f0..3e92956 100644
--- a/TurtleArt/taconstants.py
+++ b/TurtleArt/taconstants.py
@@ -341,8 +341,6 @@ VOICES = {'af': 'afrikaans', 'cy': 'welsh-test', 'el': 'greek',
MACROS = {
'ifthenelse': # Because it is too big to fit on the palette
[[0, 'ifelse', 0, 0, [None, None, None, None, None]]],
- 'untilmacro': # Because it is too big to fit on the palette
- [[0, 'until', 0, 0, [None, None, None, None]]],
'kbinput':
[[0, 'until', 0, 0, [None, 1, 4, None]],
[1, 'greater2', 0, 0, [0, 2, 3, None]],
@@ -545,9 +543,6 @@ MACROS = {
'reskin':
[[0, 'skin', 0, 0, [None, 1, None]],
[1, 'journal', 0, 0, [0, None]]],
- 'saveheaptojournal':
- [[0, 'saveheap', 0, 0, [None, 1, None]],
- [1, 'journal', 0, 0, [0, None]]],
'loadheapfromjournal':
[[0, 'loadheap', 0, 0, [None, 1, None]],
[1, 'journal', 0, 0, [0, None]]]}
diff --git a/TurtleArt/tasprite_factory.py b/TurtleArt/tasprite_factory.py
index 7f9494c..8360dbb 100755
--- a/TurtleArt/tasprite_factory.py
+++ b/TurtleArt/tasprite_factory.py
@@ -634,22 +634,12 @@ stroke-width="3.5" fill="%s" stroke="none" />\n' % (self._stroke)
svg += self._inverse_corner(1, 1, 90, 0, 0)
svg += self._do_slot()
svg += self._rline_to(self._radius, 0)
- if self._second_clamp:
- svg += self._corner(-1, 1)
- svg += self.line_to(xx, self._y)
- svg += self._rline_to(-self._expand_x, 0)
- svg += self._do_tab()
- svg += self._inverse_corner(-1, 1, 90, 0, 0)
- svg += self._rline_to(0, self._expand_y2)
- svg += self._inverse_corner(1, 1, 90, 0, 0)
- svg += self._do_slot()
- svg += self._rline_to(self._radius, 0)
if self._innie[0] is True:
svg += self._do_innie()
else:
self.margins[2] = \
int((self._x - self._stroke_width + 0.5) * self._scale)
- svg += self._rline_to(0, self._radius * 3)
+ svg += self._rline_to(0, self._radius + self._expand_y2)
if self._bool is True:
svg += self._do_boolean()
svg += self._corner(-1, 1)
diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py
index 2f0a036..4584726 100644
--- a/TurtleArt/tawindow.py
+++ b/TurtleArt/tawindow.py
@@ -2554,10 +2554,14 @@ before making changes to your program'))
continue
if blk.name in EXPANDABLE_FLOW:
if blk.name in block_styles['clamp-style-1arg'] or \
- blk.name in block_styles['clamp-style-boolean'] or \
- blk.name in block_styles['clamp-style-until']:
+ blk.name in block_styles['clamp-style-boolean']:
if blk.connections[2] is not None:
self._resize_clamp(blk, blk.connections[2])
+ elif blk.name in block_styles['clamp-style-until']:
+ if blk.connections[2] is not None:
+ self._resize_clamp(blk, blk.connections[2])
+ if blk.connections[1] is not None:
+ self._resize_clamp(blk, blk.connections[1], dockn=1)
elif blk.name in block_styles['clamp-style']:
if blk.connections[1] is not None:
self._resize_clamp(blk, blk.connections[1])
@@ -3392,12 +3396,18 @@ before making changes to your program'))
if best_destination.name in \
block_styles['clamp-style-1arg'] or \
best_destination.name in \
- block_styles['clamp-style-boolean'] or \
- best_destination.name in \
- block_styles['clamp-style-until']:
+ block_styles['clamp-style-boolean']:
if best_destination_dockn == 2:
self._resize_clamp(best_destination,
self.drag_group[0])
+ elif best_destination.name in \
+ block_styles['clamp-style-until']:
+ if best_destination_dockn == 2:
+ self._resize_clamp(best_destination,
+ self.drag_group[0])
+ elif best_destination_dockn == 1:
+ self._resize_clamp(best_destination,
+ self.drag_group[0], dockn=1)
elif best_destination.name in block_styles['clamp-style'] or \
best_destination.name in \
block_styles['clamp-style-collapsible']:
@@ -3496,16 +3506,18 @@ before making changes to your program'))
self._cascade_expandable(blk2)
elif c is not None and blk2.name in EXPANDABLE_FLOW:
if blk2.name in block_styles['clamp-style-1arg'] or \
- blk2.name in block_styles['clamp-style-boolean'] or \
- blk2.name in block_styles['clamp-style-until']:
+ blk2.name in block_styles['clamp-style-boolean']:
if c == 2:
- self._resize_clamp(blk2, None, c)
+ self._resize_clamp(blk2, None, dockn=c)
+ elif blk2.name in block_styles['clamp-style-until']:
+ if c in [1, 2]:
+ self._resize_clamp(blk2, None, dockn=c)
elif blk2.name in block_styles['clamp-style'] or \
blk2.name in block_styles['clamp-style-collapsible']:
if c == 1:
self._resize_clamp(blk2, None)
elif blk2.name in block_styles['clamp-style-else']:
- if c == 2 or c == 3:
+ if c in [2, 3]:
self._resize_clamp(blk2, None, dockn=c)
while blk3 is not None and blk3.connections[dockn] is not None:
self._resize_clamp(blk3, blk3.connections[dockn], dockn=dockn)
@@ -3521,22 +3533,35 @@ before making changes to your program'))
y1 = blk.docks[-1][3]
if blk.name in block_styles['clamp-style-else'] and dockn == 3:
blk.reset_y2()
+ elif blk.name in block_styles['clamp-style-until'] and dockn == 1:
+ blk.reset_y2()
else:
blk.reset_y()
dy = 0
# Calculate height of drag group
- while gblk is not None:
- delta = int((gblk.docks[-1][3] - gblk.docks[0][3]) / gblk.scale)
- if delta == 0:
- dy += 21 # Fixme: don't hardcode size of stop action block
- else:
- dy += delta
- gblk = gblk.connections[-1]
- # Clamp has room for one 'standard' block by default
- if dy > 0:
- dy -= 21 # Fixme: don't hardcode
+ if blk.name in block_styles['clamp-style-until'] and dockn == 1:
+ if gblk is not None:
+ dy = int(gblk.spr.rect.height / gblk.scale)
+ # Room for part of one 'standard' boolean by default
+ if dy > 0:
+ dy -= 25 # Fixme: don't hardcode size of slot
+ if dy < 0:
+ dy = 0
+ else:
+ while gblk is not None:
+ delta = int((gblk.docks[-1][3] - gblk.docks[0][3]) / gblk.scale)
+ if delta == 0:
+ dy += 21 # Fixme: don't hardcode size of slot
+ else:
+ dy += delta
+ gblk = gblk.connections[-1]
+ # Clamp has room for one 'standard' block by default
+ if dy > 0:
+ dy -= 21 # Fixme: don't hardcode size of slot
if blk.name in block_styles['clamp-style-else'] and dockn == 3:
blk.expand_in_y2(dy)
+ elif blk.name in block_styles['clamp-style-until'] and dockn == 1:
+ blk.expand_in_y2(dy)
else:
blk.expand_in_y(dy)
y2 = blk.docks[-1][3]
diff --git a/plugins/turtle_blocks_extras/turtle_blocks_extras.py b/plugins/turtle_blocks_extras/turtle_blocks_extras.py
index ec4558f..d23672d 100644
--- a/plugins/turtle_blocks_extras/turtle_blocks_extras.py
+++ b/plugins/turtle_blocks_extras/turtle_blocks_extras.py
@@ -93,7 +93,6 @@ boolean operators from Numbers palette'))
True)
palette.add_block('until',
- hidden=True, # Too big to fit on palette
style='clamp-style-until',
label=_('until'),
prim_name='until',
@@ -116,13 +115,6 @@ boolean operators from Numbers palette'))
ArgSlot(TYPE_OBJECT)]),
True)
- # macro
- palette.add_block('untilmacro',
- style='basic-style-extended-vertical',
- label=_('until'),
- help_string=_('do-until-True operator that uses \
-boolean operators from Numbers palette'))
-
palette.add_block('sandwichclamp',
style='clamp-style-collapsible',
label=' ',