From 734036e4631199afea09e8c8fd9d0fcb60f80095 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Thu, 31 Oct 2013 12:52:40 +0000 Subject: clean up list primitive --- diff --git a/TurtleArt/talogo.py b/TurtleArt/talogo.py index 2b297ef..1ee11f2 100644 --- a/TurtleArt/talogo.py +++ b/TurtleArt/talogo.py @@ -1054,6 +1054,17 @@ class LogoCode: gobject.idle_add(self.tw.send_event, event) os.remove(tmp_file) + def showlist(self, objects): + """ Display list of media objects """ + x = (self.tw.turtles.get_active_turtle().get_xy()[0] / + self.tw.coord_scale) + y = (self.tw.turtles.get_active_turtle().get_xy()[1] / + self.tw.coord_scale) + for obj in objects: + self.tw.turtles.get_active_turtle().set_xy(x, y, pendown=False) + self.show(obj) + y -= int(self.tw.canvas.textsize * self.tw.lead) + def show(self, obj, center=False): """ Show is the general-purpose media-rendering block. """ # media diff --git a/plugins/turtle_blocks_extras/turtle_blocks_extras.py b/plugins/turtle_blocks_extras/turtle_blocks_extras.py index 9136a83..272384c 100644 --- a/plugins/turtle_blocks_extras/turtle_blocks_extras.py +++ b/plugins/turtle_blocks_extras/turtle_blocks_extras.py @@ -1128,12 +1128,6 @@ Journal objects')) chr(self.tw.keyboard)) self.tw.keypress = '' - def _prim_list(self, blklist): - """ Expandable list block """ - self._prim_showlist(blklist) - self.tw.lc.ireturn() - yield True - def after_pop(self, *ignored_args): if self.tw.lc.update_values: if not self.tw.lc.heap: @@ -1267,88 +1261,11 @@ Journal objects')) 'see', self.tw.turtles.get_active_turtle().get_color_index()) - def _prim_show(self, string, center=False): - """ Show is the general-purpose media-rendering block. """ - if type(string) == str or type(string) == unicode: - if string in ['media_', 'descr_', 'audio_', 'video_', - 'media_None', 'descr_None', 'audio_None', - 'video_None']: - pass - elif string[0:6] in ['media_', 'descr_', 'audio_', 'video_']: - self.tw.lc.filepath = None - self.tw.lc.pixbuf = None # Camera writes directly to pixbuf - self.tw.lc.dsobject = None - if string[6:].lower() in media_blocks_dictionary: - media_blocks_dictionary[string[6:].lower()]() - elif os.path.exists(string[6:]): # is it a path? - self.tw.lc.filepath = string[6:] - elif self.tw.running_sugar: # is it a datastore object? - from sugar.datastore import datastore - try: - self.tw.lc.dsobject = datastore.get(string[6:]) - except: - debug_output("Couldn't find dsobject %s" % - (string[6:]), self.tw.running_sugar) - if self.tw.lc.dsobject is not None: - self.tw.lc.filepath = self.tw.lc.dsobject.file_path - if self.tw.lc.pixbuf is not None: - self.tw.lc.insert_image(center=center, pixbuf=True) - elif self.tw.lc.filepath is None: - if self.tw.lc.dsobject is not None: - self.tw.showlabel( - 'nojournal', - self.tw.lc.dsobject.metadata['title']) - else: - self.tw.showlabel('nojournal', string[6:]) - debug_output("Couldn't open %s" % (string[6:]), - self.tw.running_sugar) - elif string[0:6] == 'media_': - self.tw.lc.insert_image(center=center) - elif string[0:6] == 'descr_': - mimetype = None - if self.tw.lc.dsobject is not None and \ - 'mime_type' in self.tw.lc.dsobject.metadata: - mimetype = self.tw.lc.dsobject.metadata['mime_type'] - description = None - if self.tw.lc.dsobject is not None and \ - 'description' in self.tw.lc.dsobject.metadata: - description = self.tw.lc.dsobject.metadata[ - 'description'] - self.tw.lc.insert_desc(mimetype, description) - elif string[0:6] == 'audio_': - self.tw.lc.play_sound() - elif string[0:6] == 'video_': - self.tw.lc.play_video() - if self.tw.lc.dsobject is not None: - self.tw.lc.dsobject.destroy() - else: # assume it is text to display - x, y = self.tw.lc.x2tx(), self.tw.lc.y2ty() - if center: - y -= self.tw.canvas.textsize - self.tw.turtles.get_active_turtle().draw_text(string, x, y, - int(self.tw.canvas.textsize * - self.tw.lc.scale / 100.), - self.tw.canvas.width - x) - elif type(string) == float or type(string) == int: - string = round_int(string) - x, y = self.tw.lc.x2tx(), self.tw.lc.y2ty() - if center: - y -= self.tw.canvas.textsize - self.tw.turtles.get_active_turtle().draw_text(string, x, y, - int(self.tw.canvas.textsize * - self.tw.lc.scale / 100.), - self.tw.canvas.width - x) - - def _prim_showlist(self, sarray): - """ Display list of media objects """ - x = (self.tw.turtles.get_active_turtle().get_xy()[0] / - self.tw.coord_scale) - y = (self.tw.turtles.get_active_turtle().get_xy()[1] / - self.tw.coord_scale) - for s in sarray: - self.tw.turtles.get_active_turtle().set_xy(x, y, pendown=False) - self._prim_show(s) - y -= int(self.tw.canvas.textsize * self.tw.lead) + def _prim_list(self, blklist): + """ Expandable list block """ + self.tw.lc.showlist(blklist) + self.tw.lc.ireturn() + yield True def after_time(self, elapsed_time): """ Update the label of the 'time' block after computing the new -- cgit v0.9.1