diff options
Diffstat (limited to 'TurtleArt')
-rw-r--r-- | TurtleArt/tablock.py | 12 | ||||
-rw-r--r-- | TurtleArt/talogo.py | 1 | ||||
-rw-r--r-- | TurtleArt/tawindow.py | 20 |
3 files changed, 24 insertions, 9 deletions
diff --git a/TurtleArt/tablock.py b/TurtleArt/tablock.py index adbd196..3f8863b 100644 --- a/TurtleArt/tablock.py +++ b/TurtleArt/tablock.py @@ -40,6 +40,7 @@ class Blocks: def __init__(self, font_scale_factor=1, decimal_point='.'): self.list = [] + self.max_width = 400 self.font_scale_factor = font_scale_factor self.decimal_point = decimal_point @@ -245,7 +246,7 @@ class Block: return False if self.name in block_styles['box-style']: return False - if self.name in ['storein', 'box', + if self.name in ['storein', 'box', 'string', # Deprecated blocks 'sandwichtop', 'sandwichtop_no_label']: return False @@ -267,7 +268,12 @@ class Block: return dx = (self.spr.label_width() - self.spr.label_safe_width()) / \ self.scale - if dx != 0: + 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]) + elif dx != 0: self.dx += dx if self.dx < 0: self.dx = 0 @@ -543,6 +549,8 @@ class Block: i=i) elif self.name in EXPANDABLE_FLOW: self._calc_moving_labels(i) + elif self.name == 'string': + self.spr.set_label_attributes(size, False, 'center', 'middle') elif i == 1: # top self.spr.set_label_attributes(size, True, 'right', 'top', i=i) elif i > 0 and i == n - 1: # bottom diff --git a/TurtleArt/talogo.py b/TurtleArt/talogo.py index 7b84e9e..9cdb317 100644 --- a/TurtleArt/talogo.py +++ b/TurtleArt/talogo.py @@ -361,7 +361,6 @@ class LogoCode: self.icall(self.evline, blklist) yield True if self.tw.running_sugar: - # self.tw.activity.stop_turtle_button.set_icon("stopitoff") if self.tw.step_time == 0 and self.tw.selected_blk is None: self.tw.activity.stop_turtle_button.set_icon("hideshowon") self.tw.activity.stop_turtle_button.set_tooltip( diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py index 34d8588..7e70f5f 100644 --- a/TurtleArt/tawindow.py +++ b/TurtleArt/tawindow.py @@ -1780,6 +1780,16 @@ class TurtleArtWindow(): if self._text_to_check: self._test_string() self._text_to_check = False + if self._action_name(self.selected_blk, hat=True): + 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]) + elif self._box_name(self.selected_blk, storein=True): + 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.selected_blk.unhighlight() self.selected_blk = None @@ -2361,10 +2371,11 @@ class TurtleArtWindow(): self._text_entry.modify_font(font_desc) self.activity.fixed.put(self._text_entry, 0, 0) self._text_entry.show() + count = self._saved_string.count(RETURN) self._text_buffer.set_text( self._saved_string.replace(RETURN, '\12')) w = blk.spr.label_safe_width() - h = blk.spr.label_safe_height() + h = blk.spr.label_safe_height() * (count + 1) self._text_entry.set_size_request(w, h) bx, by = blk.spr.get_xy() if not self.running_sugar: @@ -3164,8 +3175,8 @@ class TurtleArtWindow(): self.selected_blk.values[0] = float(str(num)) def _text_focus_out_cb(self, widget=None, event=None): - bounds = self._text_buffer.get_bounds() - text = self._text_buffer.get_text(bounds[0], bounds[1]) + # bounds = self._text_buffer.get_bounds() + # text = self._text_buffer.get_text(bounds[0], bounds[1]) self._text_to_check = True if self.selected_blk is not None: self._unselect_block() @@ -3181,9 +3192,6 @@ class TurtleArtWindow(): self._text_entry.hide() else: text = self.selected_blk.spr.labels[0] - self._string_check(text) - - def _string_check(self, text): self.selected_blk.spr.set_label(text.replace('\12', RETURN)) self.selected_blk.resize() self.selected_blk.values[0] = text.replace(RETURN, '\12') |