Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2014-01-17 17:40:23 (GMT)
committer Walter Bender <walter@sugarlabs.org>2014-01-17 17:40:23 (GMT)
commit22b1af75535c78e9f67556a6fa7027cf60b5b019 (patch)
treee5772291a093a7467f584c5f0c7d7376bb1a82b0
parentfeb87b1cf2df012f8823c7636bf7495d17baac89 (diff)
fix labeling problems with action and box blocks
-rw-r--r--TurtleArt/tablock.py8
-rw-r--r--TurtleArt/tacanvas.py8
-rw-r--r--TurtleArt/tawindow.py45
3 files changed, 38 insertions, 23 deletions
diff --git a/TurtleArt/tablock.py b/TurtleArt/tablock.py
index 81bdd2a..5f3315a 100644
--- a/TurtleArt/tablock.py
+++ b/TurtleArt/tablock.py
@@ -371,11 +371,11 @@ class Block:
return
dx = (self.spr.label_width() - self.spr.label_safe_width()) / \
self.scale
- if self.dx + dx >= self.block_list.max_width and \
- self.name == 'string':
+ if self.dx + dx >= self.block_list.max_width and self.name == 'string':
self.dx = self.block_list.max_width
self.refresh()
- self._set_labels(0, self.spr.labels[0])
+ for i, label in enumerate(self.spr.labels):
+ self._set_labels(i, label)
elif dx != 0:
self.dx += dx
if self.dx < 0:
@@ -640,7 +640,7 @@ class Block:
else:
n = 0
if self.name in block_names:
- n = len(block_names[self.name])
+ n = len(self.spr.labels)
elif self.name not in BLOCKS_WITH_SKIN:
debug_output('WARNING: unknown block name %s' % (self.name))
for i in range(n):
diff --git a/TurtleArt/tacanvas.py b/TurtleArt/tacanvas.py
index c12e2c7..e5e0c0a 100644
--- a/TurtleArt/tacanvas.py
+++ b/TurtleArt/tacanvas.py
@@ -310,12 +310,14 @@ class TurtleGraphics:
def draw_text(self, label, x, y, size, width, heading, scale):
''' Draw text '''
- def _draw_text(cr, label, x, y, size, width, scale, heading, rgb):
+ def _draw_text(cr, label, x, y, size, width, scale, heading, rgb,
+ wrap=False):
import textwrap
final_scale = int(size * scale) * pango.SCALE
label = str(label)
- label = '\n'.join(textwrap.wrap(label, int(width / scale)))
+ if wrap:
+ label = '\n'.join(textwrap.wrap(label, int(width / scale)))
cc = pangocairo.CairoContext(cr)
pl = cc.create_layout()
@@ -343,7 +345,7 @@ class TurtleGraphics:
self.inval()
if self.cr_svg is not None: # and self.pendown:
_draw_text(self.cr_svg, label, x, y, size, width, scale, heading,
- self._fgrgb)
+ self._fgrgb, wrap=True)
def set_source_rgb(self):
r = self._fgrgb[0] / 255.
diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py
index 4edf593..fe006a7 100644
--- a/TurtleArt/tawindow.py
+++ b/TurtleArt/tawindow.py
@@ -1574,16 +1574,22 @@ before making changes to your program'))
def _unselect_all_blocks(self):
# Unselect things that may have been selected earlier
if self.selected_blk is not None:
+ label_with_no_returns = \
+ self.selected_blk.spr.labels[0].replace(RETURN, ' ')
if self._action_name(self.selected_blk, hat=True):
+ self.selected_blk.values[0] = label_with_no_returns
+ self.selected_blk.spr.labels[0] = label_with_no_returns
if self.selected_blk.values[0] == _('action'):
- self._new_stack_block(self.selected_blk.spr.labels[0])
- self._update_action_names(self.selected_blk.spr.labels[0])
+ self._new_stack_block(label_with_no_returns)
+ self._update_action_names(label_with_no_returns)
elif self._box_name(self.selected_blk, storein=True):
+ self.selected_blk.values[0] = label_with_no_returns
+ self.selected_blk.spr.labels[0] = label_with_no_returns
if self.selected_blk.values[0] == _('my box'):
- self._new_storein_block(self.selected_blk.spr.labels[0])
- self._new_box_block(self.selected_blk.spr.labels[0])
- self._update_storein_names(self.selected_blk.spr.labels[0])
- self._update_box_names(self.selected_blk.spr.labels[0])
+ self._new_storein_block(label_with_no_returns)
+ self._new_box_block(label_with_no_returns)
+ self._update_storein_names(label_with_no_returns)
+ self._update_box_names(label_with_no_returns)
# Un-highlight any blocks in the stack
grp = find_group(self.selected_blk)
for blk in grp:
@@ -2338,16 +2344,23 @@ before making changes to your program'))
if self._text_to_check:
self._test_string()
self._text_to_check = False
+
+ label_with_no_returns = \
+ self.selected_blk.spr.labels[0].replace(RETURN, ' ')
if self._action_name(self.selected_blk, hat=True):
+ self.selected_blk.spr.labels[0] = label_with_no_returns
+ self.selected_blk.values[0] = label_with_no_returns
if self._saved_action_name == _('action'):
- self._new_stack_block(self.selected_blk.spr.labels[0])
- self._update_action_names(self.selected_blk.spr.labels[0])
+ self._new_stack_block(label_with_no_returns)
+ self._update_action_names(label_with_no_returns)
elif self._box_name(self.selected_blk, storein=True):
+ self.selected_blk.spr.labels[0] = label_with_no_returns
+ self.selected_blk.values[0] = label_with_no_returns
if self._saved_box_name == _('my box'):
- self._new_storein_block(self.selected_blk.spr.labels[0])
- self._new_box_block(self.selected_blk.spr.labels[0])
- self._update_storein_names(self.selected_blk.spr.labels[0])
- self._update_box_names(self.selected_blk.spr.labels[0])
+ self._new_storein_block(label_with_no_returns)
+ self._new_box_block(label_with_no_returns)
+ self._update_storein_names(label_with_no_returns)
+ self._update_box_names(label_with_no_returns)
self.selected_blk.unhighlight()
self.selected_blk = None
@@ -2993,7 +3006,7 @@ before making changes to your program'))
if blk.name == 'string':
count = self._saved_string.count(RETURN)
self._text_buffer.set_text(
- self._saved_string.replace(RETURN, '\12'))
+ self._saved_string.replace(RETURN, '\n'))
h = blk.spr.label_safe_height() * (count + 1)
else:
self._text_buffer.set_text(self._saved_string)
@@ -3925,7 +3938,7 @@ before making changes to your program'))
def _insert_text_cb(self, textbuffer, textiter, text, length):
self._text_to_check = True
- if '\12' in text:
+ if '\n' in text:
self._unselect_block()
def _test_string(self):
@@ -3935,9 +3948,9 @@ before making changes to your program'))
self._hide_text_entry()
else:
text = self.selected_blk.spr.labels[0]
- self.selected_blk.spr.set_label(text.replace('\12', RETURN))
+ self.selected_blk.spr.set_label(text.replace('\n', RETURN))
self.selected_blk.resize()
- self.selected_blk.values[0] = text.replace(RETURN, '\12')
+ self.selected_blk.values[0] = text.replace(RETURN, '\n')
self._saved_string = self.selected_blk.values[0]
def load_python_code_from_file(self, fname=None, add_new_block=True):