From c7f10c2b6fe95285cb652159297a20105b430518 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Sat, 07 Jul 2012 06:32:47 +0000 Subject: contract by one step rather tnan reset completely when hitting - button --- diff --git a/TurtleArt/tablock.py b/TurtleArt/tablock.py index 5393b44..effe410 100644 --- a/TurtleArt/tablock.py +++ b/TurtleArt/tablock.py @@ -362,6 +362,42 @@ class Block: self.svg.set_show(False) self.refresh() + def contract_in_y(self, dy): + """ We may want to shrink a block veritcally. """ + if self.spr is None: + return + self.ey -= dy + if self.ey < 0: + self.ey = 0 + if self.type == 'block': + if self.ey > 0: + self.svg.set_hide(True) + else: + self.svg.set_hide(False) + self.svg.set_show(True) + else: + self.svg.set_hide(False) + self.svg.set_show(False) + self.refresh() + + def contract_in_x(self, dx): + """ We may want to shrink a block horizontally. """ + if self.spr is None: + return + self.ex -= dx + if self.ex < 0: + self.ex = 0 + if self.type == 'block': + if self.ex > 0: + self.svg.set_hide(True) + else: + self.svg.set_hide(False) + self.svg.set_show(True) + else: + self.svg.set_hide(False) + self.svg.set_show(False) + self.refresh() + def reset_x(self): if self.spr is None: return 0 diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py index 97c70f3..8bf948a 100644 --- a/TurtleArt/tawindow.py +++ b/TurtleArt/tawindow.py @@ -2245,7 +2245,9 @@ class TurtleArtWindow(): elif blk.name == 'identity2' or blk.name == 'hspace': group = find_group(blk) if hide_button_hit(blk.spr, x, y): - dx = blk.reset_x() + dx = -20 + blk.contract_in_x(-dx) + # dx = blk.reset_x() elif show_button_hit(blk.spr, x, y): dx = 20 blk.expand_in_x(dx) @@ -2259,7 +2261,9 @@ class TurtleArtWindow(): elif blk.name == 'vspace': group = find_group(blk) if hide_button_hit(blk.spr, x, y): - dy = blk.reset_y() + dy = -20 + blk.contract_in_y(-dy) + # dy = blk.reset_y() elif show_button_hit(blk.spr, x, y): dy = 20 blk.expand_in_y(dy) @@ -2278,7 +2282,9 @@ class TurtleArtWindow(): dock0 = blk0.connections.index(blk) if hide_button_hit(blk.spr, x, y): - dy = blk.reset_y() + dy = -20 + blk.contract_in_y(-dy) + # dy = blk.reset_y() elif show_button_hit(blk.spr, x, y): dy = 20 blk.expand_in_y(dy) -- cgit v0.9.1