self.draw_pixbuf( None , pixbuf , 0 , 0 , dest_x , dest_y )
- def do_change_viewport ( self , dx , dy ) :
+ def do_change_refpix ( self , dx , dy ) :
dx , dy = self.tileloader.do_change_refpix( dx , dy )
if dx or dy :
self.do_change_reftile( dx , dy )
os.mkdir(rootsubdir)
return "%s/%s.png" % ( rootsubdir , tiley )
-class interactiveMapWidget :
-
- def Shift( self , dx , dy ) :
- self.mapwidget._bg.do_change_viewport( dx , dy )
- self.mapwidget.update_background()
-
- def Up( self ) :
- self.mapwidget._bg.do_change_reftile( 0 , -1 )
- self.mapwidget.update_background()
-
- def Down( self ) :
- self.mapwidget._bg.do_change_reftile( 0 , +1 )
- self.mapwidget.update_background()
-
- def Right( self ) :
- self.mapwidget._bg.do_change_reftile( +1 , 0 )
- self.mapwidget.update_background()
-
- def Left( self ) :
- self.mapwidget._bg.do_change_reftile( -1 , 0 )
- self.mapwidget.update_background()
-
class simpleMapWidget ( AbstractmapWidget , gtk.Image ) :
p.get_from_drawable( self._bg , self._bg.get_colormap() , vport[0] , vport[1] , 0 , 0 , self.win_x , self.win_y )
self.set_from_pixbuf(p)
+ def do_change_refpix ( self , dx , dy ) :
+ self._bg.do_change_refpix( dx , dy )
+ self.update_background()
+
+ def do_change_reftile ( self , dx , dy ) :
+ self._bg.do_change_reftile( dx , dy )
+ self.update_background()
+
def composeMap( self ) :
center_x , center_y = self.center()
self.get_pixbuf().get_from_drawable( pixmap , pixmap.get_colormap() , 0, 0 , 0 , 0 , self.win_x, self.win_y )
-class mapWidget ( gtk.EventBox , interactiveMapWidget ) :
+class mapWidget ( gtk.EventBox ) :
def __init__ ( self , config ) :
gtk.EventBox.__init__( self )
self.click_x , self.click_y = None , None
self.set_events( gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK )
self.connect_object('button_press_event', self.press_event, self.mapwidget)
- self.connect_object('button_release_event', self.release_event, self)
+ self.connect_object('button_release_event', self.release_event, self.mapwidget)
def press_event ( self , widget , event ) :
self.click_x , self.click_y = event.x , event.y
# NOTE : we use origin-current for deltas because the map center moves in the opposite direction
delta_x = int( self.click_x - event.x )
delta_y = int( self.click_y - event.y )
- widget.Shift(delta_x, delta_y)
+ widget.do_change_refpix(delta_x, delta_y)
self.click_x , self.click_y = None , None
if __name__ == "__main__" :
def on_key_press ( widget, event , map ) :
if event.keyval == gtk.keysyms.Up :
- map.Up()
+ map.do_change_reftile(0,-1)
elif event.keyval == gtk.keysyms.Down :
- map.Down()
+ map.do_change_reftile( 0 , +1 )
elif event.keyval == gtk.keysyms.Right :
- map.Right()
+ map.do_change_reftile( +1 , 0 )
elif event.keyval == gtk.keysyms.Left :
- map.Left()
+ map.do_change_reftile( -1 , 0 )
else :
print "UNKNOWN",event.keyval
mapwidget = mapWidget( config )
window = gtk.Window()
window.connect("destroy", gtk.main_quit )
- window.connect("key-press-event", on_key_press, mapwidget )
+ window.connect("key-press-event", on_key_press, mapwidget.mapwidget )
window.add( mapwidget )
window.show_all()
gtk.main()