From b1ad07cd7e9c28270a7beb7d2d5e6edade179cb9 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Sat, 06 Feb 2010 13:20:18 +0000 Subject: cleaned up status code --- diff --git a/talogo.py b/talogo.py index a2b680b..add0b8e 100644 --- a/talogo.py +++ b/talogo.py @@ -637,7 +637,7 @@ class LogoCode: self.tw.turtles.show_all() return False except logoerror, e: - self.tw.showlabel(str(e)[1:-1]) + self.tw.showlabel('syntaxerror', str(e)[1:-1]) self.tw.turtles.show_all() return False return True @@ -671,13 +671,17 @@ class LogoCode: for k, v in self.boxes.iteritems(): tmp = k +":" + str(v) + "\n" my_string += tmp - self.tw.showlabel('#trace',my_string) + self.tw.showlabel('info',my_string) return def undefined_check(self, token): if token.fcn is not None: return False - raise logoerror("%s %s" % (_("I don't know how to"), token.name)) + if token.name == '%nothing%': + errormsg = '' + else: + errormsg = "%s %s" % (_("I don't know how to"), _(token.name)) + raise logoerror(errormsg) def no_args_check(self): if self.iline and self.iline[0] is not self.symnothing: @@ -786,7 +790,7 @@ class LogoCode: self.procstop = True def prim_print_heap(self): - self.tw.showlabel(self.heap) + self.tw.showlabel('status', self.heap) def an_int(self, n): if type(n) == int: @@ -807,7 +811,10 @@ class LogoCode: def prim_myblock(self, x): if self.tw.myblock is not None: - y = myfunc_import(self, self.tw.myblock, x) + try: + y = myfunc_import(self, self.tw.myblock, x) + except: + raise logoerror("#nocode") else: raise logoerror("#nocode") return @@ -824,17 +831,20 @@ class LogoCode: if type(n) == str or type(n) == unicode: if n[0:6] == 'media_': try: - dsobject = datastore.get(n[6:]) - self.tw.showlabel(dsobject.metadata['title']) - dsobject.destroy() + if self.tw.running_sugar: + dsobject = datastore.get(n[6:]) + self.tw.showlabel('status', dsobject.metadata['title']) + dsobject.destroy() + else: + self.tw.showlabel('status', n[6:]) except: - self.tw.showlabel(n) + self.tw.showlabel('status', n) else: - self.tw.showlabel(n) + self.tw.showlabel('status', n) elif type(n) == int: - self.tw.showlabel(n) + self.tw.showlabel('status', n) else: - self.tw.showlabel(round_int(n)) + self.tw.showlabel('status', round_int(n)) def prim_kbinput(self): if len(self.tw.keypress) == 1: @@ -900,7 +910,7 @@ class LogoCode: def show_description(self, media, x, y, w, h): if media == "" or media[6:] == "": - pass + return elif media[6:] is not "None": text = None if self.tw.running_sugar: diff --git a/tawindow.py b/tawindow.py index ca378e2..75ffafd 100644 --- a/tawindow.py +++ b/tawindow.py @@ -1517,13 +1517,13 @@ class TurtleArtWindow(): f = float(n) if f > 1000000: n = 1 - self.lc.showlabel("#overflowerror") + self.showlabel("#overflowerror") elif f < -1000000: n = -1 - self.lc.showlabel("#overflowerror") + self.showlabel("#overflowerror") except ValueError: n = 0 - self.lc.showlabel("#notanumber") + self.showlabel("#notanumber") else: n = 0 self.selected_blk.spr.set_label(n) @@ -1885,39 +1885,16 @@ class TurtleArtWindow(): else: return True - def showlabel(self, label, str=''): - if label=='#nostack': - shp = 'nostack' - label='' - elif label=='#noinput': - shp = 'noinput' - label='' - elif label=='#emptyheap': - shp = 'emptyheap' - label='' - elif label=='#emptybox': - shp = 'emptybox' - label='' - elif label=='#nomedia': - shp = 'nomedia' - label='' - elif label=='#nocode': - shp = 'nocode' - label='' - elif label=='#syntaxerror': - shp = 'syntaxerror' - label='' - elif label=='#overflowerror': + def showlabel(self, shp, label=''): + print "shp: %s, label: %s" % (shp, label) + if shp == 'syntaxerror' and label != '': + shp = label[1:] + label = '' + elif shp[0] == '#': + shp = shp[1:] + label = '' + if shp=='notanumber': shp = 'overflowerror' - label='' - elif label=='#notanumber': - shp = 'overflowerror' - label='' - elif label=='#trace': - shp = 'info' - label = str - else: - shp = 'status' self.status_spr.set_shape(self.status_shapes[shp]) self.status_spr.set_label(label) self.status_spr.set_layer(STATUS_LAYER) -- cgit v0.9.1