pixsize = map( lambda x : x * tileloader.tilesize , self.size )
# FIXME : seems that reproducing the previous behaviour requires an extra subtraction of 128 to vpor[1]
- self.vport = bordersize * tileloader.tilesize + tileloader.refpix[0] , bordersize * tileloader.tilesize + tileloader.refpix[1]
+ # when moving to non-integer viewports, the shift turns and adition, and changes to vpor[0]
+ self.vport = [ bordersize * tileloader.tilesize + tileloader.refpix[0] , bordersize * tileloader.tilesize + tileloader.refpix[1] ]
gtk.gdk.Pixmap.__init__( self , None , pixsize[0] , pixsize[1] , 24 )
self._bg = background_map( map_size , tile_loader( config ) )
- p = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, map_size[0] , map_size[1] )
- p.get_from_drawable( self._bg , self._bg.get_colormap() , self._bg.vport[0] , self._bg.vport[1] , 0 , 0 , map_size[0] , map_size[1] )
+ self.update_background()
+
+ def update_background( self ) :
+ p = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, self.win_x , self.win_y )
+ p.get_from_drawable( self._bg , self._bg.get_colormap() , self._bg.vport[0] , self._bg.vport[1] , 0 , 0 , self.win_x , self.win_y )
self.set_from_pixbuf(p)
def composeMap( self ) :
class mapWidget ( simpleMapWidget , interactiveMapWidget ) :
- pass
+ def Up( self ) :
+ self._bg.vport[1] += 256
+ self.update_background()
+
+ def Down( self ) :
+ self._bg.vport[1] -= 256
+ self.update_background()
+
+ def Right( self ) :
+ self._bg.vport[0] += 256
+ self.update_background()
+
+ def Left( self ) :
+ self._bg.vport[0] -= 256
+ self.update_background()
+
if __name__ == "__main__" :