From 48ad61d49c5928fa8993451c20a1223339974e1e Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Wed, 20 Jan 2010 15:55:08 +0000 Subject: migration to sprites.py --- diff --git a/tasetup.py b/tasetup.py index 3179e94..6e1f727 100644 --- a/tasetup.py +++ b/tasetup.py @@ -29,7 +29,7 @@ import time from gettext import gettext as _ -from tasprites import * +# from tasprites import * import block import sprites @@ -265,15 +265,18 @@ def setup_selectors(tw,s): tw.selbuttons.append(cat) def setup_misc(tw): - tw.category_spr = Sprite(tw,0, 0, tw.selbuttons[0].group) + # tw.category_spr = Sprite(tw, 0, 0, tw.selbuttons[0].group) + tw.category_spr = sprites.Sprite(tw.sprites, 0, 0, tw.selbuttons[0].group) tw.category_spr.type = 'category' tw.category_spr.set_layer(660) # masks get positioned on top of other blocks - tw.select_mask = Sprite(tw,100,100,\ + # tw.select_mask = Sprite(tw,100,100,\ + tw.select_mask = sprites.Sprite(tw.sprites, 100, 100,\ load_image(tw, tw.path, '', 'masknumber')) tw.select_mask.type = 'selectmask' - tw.select_mask_string = Sprite(tw,100,100,load_image(tw, tw.path, '', \ - 'maskstring')) + # tw.select_mask_string = Sprite(tw,100,100,\ + tw.select_mask_string = sprites.Sprite(tw.sprites, 100, 100,\ + load_image(tw, tw.path, '', 'maskstring')) tw.select_mask_string.type = 'selectmask' # used to hide the palette tw.hidden_palette_icon = load_image(tw, tw.path, '','blocks-') @@ -287,12 +290,14 @@ def setup_misc(tw): tw.media_shapes['pythonloaded'] = \ load_image(tw, tw.path_lang, 'sensors', 'nop-loaded') # coordinare systems - tw.cartesian_coordinates_spr = Sprite(tw, tw.width/2-600, tw.height/2-450, \ + # tw.cartesian_coordinates_spr = Sprite(tw, tw.width/2-600, tw.height/2-450, \ + tw.cartesian_coordinates_spr = sprites.Sprite(tw.sprites, tw.width/2-600, tw.height/2-450, \ load_image(tw, tw.path, '', "Cartesian")) tw.cartesian_coordinates_spr.type = 'coordinates' tw.cartesian_coordinates_spr.set_layer(610) tw.cartesian_coordinates_spr.hide() - tw.polar_coordinates_spr = Sprite(tw, tw.width/2-600, tw.height/2-450, \ + # tw.polar_coordinates_spr = Sprite(tw, tw.width/2-600, tw.height/2-450, \ + tw.polar_coordinates_spr = sprites.Sprite(tw.sprites, tw.width/2-600, tw.height/2-450, \ load_image(tw, tw.path, '', "polar")) tw.polar_coordinates_spr.type = 'coordinates' tw.polar_coordinates_spr.set_layer(610) @@ -310,8 +315,10 @@ def setup_misc(tw): tw.status_shapes['overflowerror'] = \ load_image(tw, tw.path, '', 'overflowerror') tw.status_shapes['syntaxerror'] = load_image(tw, tw.path, '', 'syntaxerror') - tw.status_spr = Sprite(tw,0,(tw.height-175), \ - tw.status_shapes['status'],True) + # tw.status_spr = Sprite(tw,0,(tw.height-175), \ + tw.status_spr = sprites.Sprite(tw.sprites, 0, (tw.height-175), \ + tw.status_shapes['status']) + tw.status_spr.set_label_attributes(1.0, True, "left") tw.status_spr.type = 'status' tw.status_spr.set_layer(900) tw.status_spr.hide() @@ -323,7 +330,8 @@ def setup_selector(tw,name,y,blockdescriptions): # selector tabs offshape = load_image(tw, tw.path, 'palette', name+'off') onshape = load_image(tw, tw.path, 'palette', name+'on') - spr = Sprite(tw,143,y,offshape) + # spr = Sprite(tw,143,y,offshape) + spr = sprites.Sprite(tw.sprites, 143, y, offshape) spr.set_layer(800) spr.offshape = offshape spr.onshape = onshape diff --git a/taturtle.py b/taturtle.py index 350b9b5..3423533 100644 --- a/taturtle.py +++ b/taturtle.py @@ -23,8 +23,9 @@ import gtk from math import sin,cos,pi class taTurtle: pass -from tasprites import * +# from tasprites import * from tasetup import load_image +import sprites colors = {} DEGTOR = 2*pi/360 @@ -54,12 +55,14 @@ color_table = ( def tNew(tw,w,h): t = taTurtle() t.tw, t.width, t.height = tw, w, h - t.canvas = Sprite(tw,0,0,gtk.gdk.Pixmap(tw.area,w,h,-1)) + # t.canvas = Sprite(tw,0,0,gtk.gdk.Pixmap(tw.area,w,h,-1)) + t.canvas = sprites.Sprite(tw.sprites, 0, 0, gtk.gdk.Pixmap(tw.area,w,h,-1)) t.canvas.type = 'canvas' t.canvas.set_layer(600) t.shapelist = \ [load_image(tw, tw.path, 'shapes','t'+str(i)) for i in range(36)] - t.spr = Sprite(tw,100,100,t.shapelist[0]) + # t.spr = Sprite(tw,100,100,t.shapelist[0]) + t.spr = sprites.Sprite(tw.sprites, 100, 100, t.shapelist[0]) t.spr.type = 'turtle' t.spr.set_layer(630) t.gc = t.canvas.image.new_gc() @@ -292,7 +295,7 @@ def draw_line(t,x1,y1,x2,y2): h+t.pensize*t.tw.coord_scale+6) def turn_turtle(t): - t.spr.setshape(t.shapelist[(int(t.heading+5)%360)/10]) + t.spr.set_shape(t.shapelist[(int(t.heading+5)%360)/10]) def move_turtle(t): x,y = t.width/2+int(t.xcor), t.height/2-int(t.ycor) diff --git a/tawindow.py b/tawindow.py index 6126f6e..f782a35 100644 --- a/tawindow.py +++ b/tawindow.py @@ -42,7 +42,7 @@ from math import atan2, pi DEGTOR = 2*pi/360 from tasetup import * -from tasprites import * +#from tasprites import * from talogo import * from taturtle import * from taproject import * @@ -130,7 +130,6 @@ class TurtleArtWindow(): self.fgcolor = self.cm.alloc_color('red') self.textcolor = self.cm.alloc_color('blue') self.textsize = 32 - self.sprites = [] self.selected_block = None self.draggroup = None self.myblock = None @@ -140,6 +139,13 @@ class TurtleArtWindow(): self.hide = False self.palette = True self.coord_scale = 1 + """ + NEW SVG/BLOCK initializations + """ + self.sprites = sprites.Sprites(self.window, self.area, self.gc) + self.blocks = block.Blocks(self.sprites) + """ + """ self.turtle = tNew(self,self.width,self.height) self.lc = lcNew(self) self.buddies = [] @@ -149,11 +155,6 @@ class TurtleArtWindow(): self.polar = False self.spr = None # "currently selected spr" - """ - NEW SVG/BLOCK initializations - """ - self.nsprites = sprites.Sprites(self.window, self.area, self.gc) - self.blocks = block.Blocks(self.nsprites) """ @@ -180,7 +181,7 @@ class TurtleArtWindow(): change the icon for user-defined blocks after Python code is loaded """ def set_userdefined(self): - list = self.sprites[:] + list = self.sprites.list[:] for spr in list: if hasattr(spr,'proto') and spr.proto.name == 'nop': setimage(spr,self.media_shapes['pythonloaded']) @@ -235,7 +236,7 @@ class TurtleArtWindow(): self._unselect() else: self.status_spr.set_layer(400) - spr = findsprite(self,(x,y)) + spr = self.sprites.find_sprite((x,y)) self.x, self.y = x,y self.dx = 0 self.dy = 0 @@ -311,17 +312,17 @@ class TurtleArtWindow(): """ def _select_category(self, spr): if hasattr(self, 'current_category'): - self.current_category.setshape(self.current_category.offshape) - spr.setshape(spr.onshape) + self.current_category.set_shape(self.current_category.offshape) + spr.set_shape(spr.onshape) self.current_category = spr - self.category_spr.setshape(spr.group) + self.category_spr.set_shape(spr.group) """ hide palette """ def _hide_palette(self): for i in self.selbuttons: i.hide() - self.category_spr.setshape(self.hidden_palette_icon) + self.category_spr.set_shape(self.hidden_palette_icon) self.palette = False """ @@ -448,7 +449,7 @@ class TurtleArtWindow(): """ def _get_proto_from_category(self, x, y): dx, dy = x-self.category_spr.x, y-self.category_spr.y, - pixel = self.current_category.getpixel(self.current_category.mask,dx,dy) + pixel = self.current_category.get_pixel(self.current_category.mask,dx,dy) index = ((pixel%256)>>3)-1 if index==0: return 'hide' @@ -461,7 +462,7 @@ class TurtleArtWindow(): lets help our our user by displaying a little help """ def _show_popup(self, x, y): - spr = findsprite(self, (x,y)) + spr = self.sprites.find_sprite((x,y)) if spr and spr.type == 'category': proto = self._get_proto_from_category(x, y) if proto and proto!='hide': @@ -777,7 +778,7 @@ class TurtleArtWindow(): Repaint """ def _expose_cb(self, win, event): - redrawsprites(self) + self.sprites.redraw_sprites() return True """ @@ -866,7 +867,7 @@ class TurtleArtWindow(): filter out blocks """ def _blocks(self): - return [spr for spr in self.sprites if spr.type == 'block'] + return [spr for spr in self.sprites.list if spr.type == 'block'] """ block selector pressed @@ -893,11 +894,13 @@ class TurtleArtWindow(): # load alternative image of nop block if python code is loaded if proto.name == 'nop' and self.nop == 'pythonloaded': - newspr = Sprite(self,x-20,y-20,self.media_shapes['pythonloaded']) + pass + # TODO: handle python-loaded case + # newspr = Sprite(self,x-20,y-20,self.media_shapes['pythonloaded']) else: - newspr = Sprite(self,x-20,y-20,proto.image) - newblk = block.Block(self.blocks,proto.name,x-20,y-20,[proto.name]) - newspr = newblk.spr + # newspr = Sprite(self,x-20,y-20,proto.image) + newblk = block.Block(self.blocks,proto.name,x-20,y-20,[proto.name]) + newspr = newblk.spr newspr.set_layer(2000) self.dragpos = 20,20 @@ -911,10 +914,12 @@ class TurtleArtWindow(): argproto = self.protodict[self.valdict[dock[0]]] argdock = argproto.docks[0] nx,ny = newspr.x+dock[2]-argdock[2],newspr.y+dock[3]-argdock[3] - argspr = Sprite(self,nx,ny,argproto.image) + # argspr = Sprite(self,nx,ny,argproto.image) + argblk = block.Block(self.blocks,argproto.name,nx,ny) + argspr = argblk.spr argspr.type = 'block' argspr.proto = argproto - argspr.label = str(proto.defaults[i]) + argspr.set_label(str(proto.defaults[i])) argspr.set_layer(2000) argspr.connections = [newspr,None] newspr.connections[i+1] = argspr -- cgit v0.9.1