X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=wifiscanner%2Fwifiscanner;h=7fe9bc7b80eae40c17f4368eb82387bc88894d74;hb=a19180f508361eba59c489d9b1be9a406cd14085;hp=cb2a4522489c5438f03a285d53d454de2f8684b7;hpb=71dd6ad8f5852cf274bf046d54ec4c476268cce7;p=wifihood diff --git a/wifiscanner/wifiscanner b/wifiscanner/wifiscanner index cb2a452..7fe9bc7 100755 --- a/wifiscanner/wifiscanner +++ b/wifiscanner/wifiscanner @@ -8,18 +8,18 @@ try : except : hildon = False -def global_start(button, scanner): - scanner.start() +def global_start(button, scanner, config): + scanner.start( int( 1000 * config.scan_period ) , config.store_log ) if button._id : button.disconnect( button._id ) - button._id = button.connect("clicked", global_stop, scanner) + button._id = button.connect("clicked", global_stop, scanner, config) button.set_label("Switch GPS Off") -def global_stop(button, scanner): +def global_stop(button, scanner, config): scanner.stop() if button._id : button.disconnect( button._id ) - button._id = button.connect("clicked", global_start, scanner) + button._id = button.connect("clicked", global_start, scanner, config) button.set_label("Switch GPS On") def enable_agps(button): @@ -57,8 +57,16 @@ class scanner ( wifimap.Scanner ) : self.buffer.insert_at_cursor( "%s %5d\n" % ( mac , rss ) ) if self.info[0] == "FIX" : self.map.hide() + self.map.recenter( self.info[4:6] ) pixmap,mask = self.map.get_pixbuf().render_pixmap_and_mask() - self.map.plot( pixmap , ( float(self.info[4]) , float(self.info[5]) ) , "red" , 2 ) + pointsize = 2 + if self.newaps : + pointsize += 2 + self.map.plot( pixmap , ( float(self.info[4]) , float(self.info[5]) ) , "red" , pointsize ) + for mac,ap in self.aps.iteritems() : + if self.oldpos.get( mac ) : + self.map.line( pixmap , self.oldpos[mac] , ( ap[1]/ap[0] , ap[2]/ap[0] ) , "green" ) + self.map.plot( pixmap , ( ap[1]/ap[0] , ap[2]/ap[0] ) , "green" , 2 ) self.map.get_pixbuf().get_from_drawable( pixmap , pixmap.get_colormap() , 0, 0 , 0 , 0 , self.map.win_x, self.map.win_y ) self.map.show() @@ -67,7 +75,8 @@ class AbstractWifiscanner : def __init__ ( self ) : - _scanner = scanner( "wlan0" ) + config = wifimap.config.Configuration( 'scanner' ) + _scanner = scanner( config , "wlan0" ) self.connect("delete_event", gtk.main_quit, None) @@ -75,7 +84,6 @@ class AbstractWifiscanner : # Top frame creation top_frame = gtk.Frame() - self.vbox.pack_start(top_frame) hbox = gtk.HBox(homogeneous=False, spacing=0) top_frame.add(hbox) @@ -84,6 +92,8 @@ class AbstractWifiscanner : bottom_frame = gtk.Frame() self.vbox.pack_end(bottom_frame, expand=False) + self.vbox.pack_end(top_frame) + bottom_box = gtk.HBox(homogeneous=False, spacing=0) bottom_frame.add( bottom_box ) @@ -93,7 +103,8 @@ class AbstractWifiscanner : scrollview = gtk.ScrolledWindow() notebook.append_page( scrollview , gtk.Label("Scanning") ) - notebook.append_page( MapWindow() , gtk.Label("Map") ) + self.map = MapWindow( config ) + notebook.append_page( self.map , gtk.Label("Map") ) buttons = gtk.VBox(homogeneous=False, spacing=0) hbox.pack_end(buttons, expand=False) @@ -104,7 +115,7 @@ class AbstractWifiscanner : # Buttons creation button = self.Button( "Switch GPS On") - button._id = button.connect("clicked", global_start, _scanner) + button._id = button.connect("clicked", global_start, _scanner, config) buttons.pack_start(button, expand=False) button_scan = self.Button( "Start scanning") @@ -119,35 +130,39 @@ class AbstractWifiscanner : status = gtk.Label( "status bar ..." ) _scanner.status = status _scanner.buffer = textview.get_buffer() - _scanner.map = notebook.get_nth_page(1).child + _scanner.map = self.map.child bottom_box.pack_start( status , expand=False , padding=20 ) def run ( self ) : gtk.main() +def settings_cb ( widget , map ) : + window = wifimap.config.SettingsWindow( map.config , map.child.SetZoom ) + + if hildon : class MapWindow ( gtk.Frame ) : def __init__(self): - gtk.Frame.__init__( self ) + gtk.Frame.__init__( self , config ) - self.config = wifimap.config.Configuration() - self.config.zoom = 16 - self.map = wifimap.simpleMapWidget( self.config ) - self.map.plot_APs() - self.add( self.map ) + self.config = config + self.add( wifimap.simpleMapWidget( self.config ) ) - class Wifiscanner ( AbstractWifiscanner , hildon.Window ) : + class Wifiscanner ( AbstractWifiscanner , hildon.StackableWindow ) : def __init__ ( self ) : - hildon.Window.__init__( self ) + hildon.StackableWindow.__init__( self ) + self.set_title( "Wifihood Scanner" ) program = hildon.Program.get_instance() program.add_window(self) AbstractWifiscanner.__init__( self ) self.add(self.vbox) + self.create_menu( ) + self.show_all() def TextView ( self , placeholder=None ) : @@ -169,15 +184,28 @@ if hildon : toggle_button.set_label( label ) return toggle_button + def create_menu ( self ) : + + menubar = hildon.AppMenu() + self.set_app_menu( menubar ) + + settings = hildon.Button(gtk.HILDON_SIZE_AUTO, + hildon.BUTTON_ARRANGEMENT_VERTICAL, + "Settings", + None) + settings.connect( "clicked", settings_cb , self.map ) + menubar.append( settings ) + + menubar.show_all() + else : class MapWindow ( gtk.Frame ) : def __init__(self): - gtk.Frame.__init__( self ) + gtk.Frame.__init__( self , config ) - self.config = wifimap.config.Configuration() - self.config.zoom = 16 + self.config = config self.add( wifimap.simpleMapWidget( self.config , (640,400) ) ) class Wifiscanner ( AbstractWifiscanner , gtk.Window ) : @@ -189,6 +217,8 @@ else : AbstractWifiscanner.__init__( self ) self.add(self.vbox) + self.create_menu() + self.show_all() def TextView ( self , placeholder=None ) : @@ -210,6 +240,17 @@ else : toggle_button.set_label( label ) return toggle_button + def create_menu ( self ) : + + menubar = gtk.MenuBar() + self.vbox.pack_start( menubar ) + + settings = gtk.MenuItem( "Settings" ) + settings.connect( "activate", settings_cb , self.map ) + menubar.append( settings ) + + menubar.show_all() + window = Wifiscanner() window.run()