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@sugarlabs.org>2010-06-03 20:50:41 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-06-03 20:50:41 (GMT)
commitc4ff1832b2eb280971bc1cdfa920758087f97bcb (patch)
tree8827fb1bce7aba1e893888c484125cc3231db82a /tablock.py
parentc32c4448d843365f3d97bae52792f161099e511d (diff)
non-interactive mode
Diffstat (limited to 'tablock.py')
-rw-r--r--tablock.py61
1 files changed, 43 insertions, 18 deletions
diff --git a/tablock.py b/tablock.py
index ea67ed0..4923ecb 100644
--- a/tablock.py
+++ b/tablock.py
@@ -111,14 +111,18 @@ class Block:
# We may want to highlight a block...
def highlight(self):
- self.spr.set_shape(self.shapes[1])
+ if self.spr is not None:
+ self.spr.set_shape(self.shapes[1])
# Or unhighlight it.
def unhighlight(self):
- self.spr.set_shape(self.shapes[0])
+ if self.spr is not None:
+ self.spr.set_shape(self.shapes[0])
# We need to resize some blocks on the fly so that the labels fit.
def resize(self):
+ if not self.spr is not None:
+ return
dx = (self.spr.label_width()-self.spr.label_safe_width())/self.scale
if dx !=0:
self.dx += dx
@@ -128,12 +132,16 @@ class Block:
# Some blocks get a skin.
def set_image(self, image, x, y):
+ if not self.spr is not None:
+ return
self._image = image
self.spr.set_image(image, 1, x, y)
# The skin might need scaling.
# Keep the original here, the scaled version stays with the sprite.
def scale_image(self, x, y, w, h):
+ if not self.spr is not None:
+ return
if self._image is not None:
tmp = self._image.scale_simple(w, h,
gtk.gdk.INTERP_NEAREST)
@@ -141,6 +149,8 @@ class Block:
# We may want to rescale blocks as well.
def rescale(self, scale):
+ if not self.spr is not None:
+ return
for i in range(len(self._font_size)):
self._font_size[i] /= self.scale
self.dx /= self.scale
@@ -158,12 +168,16 @@ class Block:
self.spr.draw()
def refresh(self):
+ if not self.spr is not None:
+ return
self._make_block(self.svg)
self._set_margins()
self.spr.set_shape(self.shapes[0])
# We may want to add additional slots for arguments ("innies").
def add_arg(self, keep_expanding=True):
+ if not self.spr is not None:
+ return
h = self.svg.get_height()
self._ei += 1
if self.type == 'block' and keep_expanding:
@@ -175,6 +189,8 @@ class Block:
# We may want to grow a block vertically.
def expand_in_y(self, dy):
+ if not self.spr is not None:
+ return
self.ey += dy
if self.type == 'block':
self.svg.set_hide(True)
@@ -186,6 +202,8 @@ class Block:
# We may want to grow a block horizontally.
def expand_in_x(self, dx):
+ if not self.spr is not None:
+ return
self.ex += dx
if self.type == 'block':
self.svg.set_hide(True)
@@ -196,6 +214,8 @@ class Block:
self.refresh()
def reset_x(self):
+ if not self.spr is not None:
+ return 0
dx = -self.ex
self.ex = 0
self.svg.set_hide(False)
@@ -207,6 +227,8 @@ class Block:
return dx
def reset_y(self):
+ if not self.spr is not None:
+ return 0
dy = -self.ey
self.ey = 0
self.svg.set_hide(False)
@@ -218,6 +240,8 @@ class Block:
return dy
def get_expand_x_y(self):
+ if not self.spr is not None:
+ return(0, 0)
return (self.ex, self.ey)
def _new_block_from_factory(self, sprite_list, x, y):
@@ -233,22 +257,23 @@ class Block:
self.svg.set_show(True)
self._make_block(self.svg)
- self.spr = sprites.Sprite(sprite_list, x, y, self.shapes[0])
- self._set_margins()
- self._set_label_attributes()
-
- if (self.name == 'number' or self.name == 'string') and\
- len(self.values) > 0:
- for i, v in enumerate(self.values):
- if v is not None:
- self._set_labels(i, str(v))
- elif BLOCK_NAMES.has_key(self.name):
- for i, n in enumerate(BLOCK_NAMES[self.name]):
- self._set_labels(i, n)
-
- # Make sure the labels fit.
- if self.spr.label_width() > self.spr.label_safe_width():
- self.resize()
+ if sprite_list is not None:
+ self.spr = sprites.Sprite(sprite_list, x, y, self.shapes[0])
+ self._set_margins()
+ self._set_label_attributes()
+
+ if (self.name == 'number' or self.name == 'string') and\
+ len(self.values) > 0:
+ for i, v in enumerate(self.values):
+ if v is not None:
+ self._set_labels(i, str(v))
+ elif BLOCK_NAMES.has_key(self.name):
+ for i, n in enumerate(BLOCK_NAMES[self.name]):
+ self._set_labels(i, n)
+
+ # Make sure the labels fit.
+ if self.spr.label_width() > self.spr.label_safe_width():
+ self.resize()
def _set_margins(self):
self.spr.set_margins(self.svg.margins[0], self.svg.margins[1],