Initial implementation of still not working drag & drop based shifts
authorjaviplx <javiplx@gmail.com>
Sun, 15 May 2011 00:05:07 +0000 (00:05 +0000)
committerjaviplx <javiplx@gmail.com>
Sun, 15 May 2011 00:05:07 +0000 (00:05 +0000)
git-svn-id: file:///svnroot/wifihood/branches/mapview-redesign@182 c51dfc6a-5949-4919-9c8e-f207a149c383

view.py

diff --git a/view.py b/view.py
index d617f91..f4dd385 100755 (executable)
--- a/view.py
+++ b/view.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
 
 import gtk
 import gobject
@@ -216,28 +217,25 @@ class interactiveMapWidget :
     self.show()
 
   def Up( self ) :
-    self.hide()
-    self.reftile_y -= 1
-    self.composeMap()
-    self.show()
+        self.mapwidget.reftile_y -= 1
+        self.mapwidget._bg.vport[1] += 256
+        self.mapwidget.update_background()
 
   def Down( self ) :
-    self.hide()
-    self.reftile_y += 1
-    self.composeMap()
-    self.show()
+        self.mapwidget.reftile_y += 1
+        self.mapwidget._bg.vport[1] -= 256
+        self.mapwidget.update_background()
 
   def Right( self ) :
-    self.hide()
-    self.reftile_x += 1
-    self.composeMap()
-    self.show()
+        self.mapwidget.reftile_x += 1
+        self.mapwidget._bg.vport[0] += 256
+        self.mapwidget.update_background()
 
   def Left( self ) :
-    self.hide()
-    self.reftile_x -= 1
-    self.composeMap()
-    self.show()
+        self.mapwidget.reftile_x -= 1
+        self.mapwidget._bg.vport[0] -= 256
+        self.mapwidget.update_background()
+
 
 class simpleMapWidget ( AbstractmapWidget , gtk.Image ) :
 
@@ -357,24 +355,25 @@ class simpleMapWidget ( AbstractmapWidget , gtk.Image ) :
 
         self.get_pixbuf().get_from_drawable( pixmap , pixmap.get_colormap() , 0, 0 , 0 , 0 , self.win_x, self.win_y )
 
-class mapWidget ( simpleMapWidget , interactiveMapWidget ) :
+class mapWidget ( gtk.EventBox , interactiveMapWidget ) :
 
-    def Up( self ) :
-        self._bg.vport[1] += 256
-        self.update_background()
+    def __init__ ( self , config ) :
+        gtk.EventBox.__init__( self )
+        self.mapwidget = simpleMapWidget( config )
+        self.add( self.mapwidget )
 
-    def Down( self ) :
-        self._bg.vport[1] -= 256
-        self.update_background()
-
-    def Right( self ) :
-        self._bg.vport[0] += 256
-        self.update_background()
+        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)
 
-    def Left( self ) :
-        self._bg.vport[0] -= 256
-        self.update_background()
+    def press_event ( self , widget , event ) :
+        self.click_x , self.click_y = event.x , event.x
 
+    def release_event ( self , widget, event ) :
+        shift = math.sqrt( (event.x-self.click_x)**2 + (event.y-self.click_y)**2 )
+        widget.Shift(delta_x, delta_y)
+        self.click_x , self.click_y = None , None
 
 if __name__ == "__main__" :
 
@@ -407,7 +406,6 @@ if __name__ == "__main__" :
     map = mapWidget( config )
     window = gtk.Window()
     window.connect("destroy", gtk.main_quit )
-    #window.connect_object("destroy", gtk.Window.destroy , window )
     window.connect("key-press-event", on_key_press, map )
     window.add( map )
     window.show_all()