From c032083e68dc93f9eefb7cc1a2386658ea1e702d Mon Sep 17 00:00:00 2001 From: javiplx Date: Sun, 1 May 2011 19:53:34 +0000 Subject: [PATCH] Turn back wifiscanner and wifiview modules into programs git-svn-id: file:///svnroot/wifihood/trunk@105 c51dfc6a-5949-4919-9c8e-f207a149c383 --- wifiscanner/setup.py | 3 +- wifiscanner/wifiscanner | 208 +++++++++++++++++++++++++++++++++++++++++++- wifiscanner/wifiscanner.py | 201 ------------------------------------------ wifiscanner/wifiview | 195 ++++++++++++++++++++++++++++++++++++++++- wifiscanner/wifiview.py | 191 ---------------------------------------- 5 files changed, 396 insertions(+), 402 deletions(-) delete mode 100755 wifiscanner/wifiscanner.py delete mode 100755 wifiscanner/wifiview.py diff --git a/wifiscanner/setup.py b/wifiscanner/setup.py index 289f5b8..700f51c 100755 --- a/wifiscanner/setup.py +++ b/wifiscanner/setup.py @@ -5,7 +5,7 @@ from distutils.extension import Extension # url setup(name='wifihood', - version='1.0', + version='1.2', description='WifiHood scanner application', author='Javier Palacios', author_email='javiplx@gmail.com', @@ -13,7 +13,6 @@ setup(name='wifihood', data_files = [ ( 'share/applications/hildon' , [ 'wifiscanner.desktop' , 'wifiview.desktop' ] ) ], - py_modules=['wifiscanner', 'wifiview'], packages=['wifimap'] ) diff --git a/wifiscanner/wifiscanner b/wifiscanner/wifiscanner index 03ff1ad..be2b7b4 100755 --- a/wifiscanner/wifiscanner +++ b/wifiscanner/wifiscanner @@ -1,8 +1,208 @@ #!/usr/bin/python -import wifiscanner +import wifimap -if __name__ == "__main__": - window = wifiscanner.Wifiscanner() - window.run() +import gtk , pango +try : + import hildon +except : + hildon = False + +def global_start(button, scanner): + scanner.start() + if button._id : + button.disconnect( button._id ) + button._id = button.connect("clicked", global_stop, scanner) + button.set_label("Switch GPS Off") + +def global_stop(button, scanner): + scanner.stop() + if button._id : + button.disconnect( button._id ) + button._id = button.connect("clicked", global_start, scanner) + button.set_label("Switch GPS On") + +def enable_agps(button): + if button.get_active() : + print "%s state is active" % button + +def start_scan(button, scanner): + # BUG : If gps is not started in advance, database is not opened and an exception happens + scanner.scan() + if button._id : + button.disconnect( button._id ) + button._id = button.connect("clicked", stop_scan, scanner) + button.set_label("Stop scanning") + +def stop_scan(button, scanner): + # FIXME : This method do not clear the scheduled scan + scanner.scan_timeout = 0 + if button._id : + button.disconnect( button._id ) + button._id = button.connect("clicked", start_scan, scanner) + button.set_label("Start scanning") + + +class scanner ( wifimap.Scanner ) : + + def scan ( self ) : + wifimap.Scanner.scan( self ) + self.report() + + def report ( self ) : + self.status.set_label( wifimap.Scanner.report(self) ) + start, end = self.buffer.get_bounds() + self.buffer.delete( start , end ) + for mac,rss in self.scanlist.iteritems() : + self.buffer.insert_at_cursor( "%s %5d\n" % ( mac , rss ) ) + + +class AbstractWifiscanner : + + def __init__ ( self ) : + + _scanner = scanner() + + self.connect("delete_event", gtk.main_quit, None) + + self.vbox = gtk.VBox(homogeneous=False, spacing=0) + + # Top frame creation + top_frame = gtk.Frame() + self.vbox.pack_start(top_frame) + + hbox = gtk.HBox(homogeneous=False, spacing=0) + top_frame.add(hbox) + + # Bottom frame creation + bottom_frame = gtk.Frame() + self.vbox.pack_end(bottom_frame, expand=False) + + bottom_box = gtk.HBox(homogeneous=False, spacing=0) + bottom_frame.add( bottom_box ) + + # Top frame population + notebook = gtk.Notebook() + hbox.pack_start( notebook ) + + scrollview = gtk.ScrolledWindow() + notebook.append_page( scrollview , gtk.Label("Scanning") ) + notebook.append_page( MapWindow() , gtk.Label("Map") ) + + buttons = gtk.VBox(homogeneous=False, spacing=0) + hbox.pack_end(buttons, expand=False) + + textview = self.TextView( "Scan results ..." ) + scrollview.add( textview ) + scrollview.set_policy( gtk.POLICY_NEVER , gtk.POLICY_AUTOMATIC ) + + # Buttons creation + button = self.Button( "Switch GPS On") + button._id = button.connect("clicked", global_start, _scanner) + buttons.pack_start(button, expand=False) + + button_scan = self.Button( "Start scanning") + button_scan._id = button_scan.connect("clicked", start_scan, _scanner) + buttons.pack_start(button_scan, expand=False) + + toggle_button = self.CheckButton( "Use Assisted GPS" ) + toggle_button.connect("toggled", enable_agps) + buttons.pack_start(toggle_button, expand=False) + + # Bottom frame population + status = gtk.Label( "status bar ..." ) + _scanner.status = status + _scanner.buffer = textview.get_buffer() + bottom_box.pack_start( status , expand=False , padding=20 ) + + def run ( self ) : + gtk.main() + +if hildon : + + class MapWindow ( gtk.Frame ) : + + def __init__(self): + gtk.Frame.__init__( self ) + + self.config = wifimap.config.Configuration() + self.config.zoom = 16 + self.map = wifimap.simpleMapWidget( self.config ) + self.map.plot_APs() + self.add( self.map ) + + class Wifiscanner ( AbstractWifiscanner , hildon.Window ) : + + def __init__ ( self ) : + hildon.Window.__init__( self ) + program = hildon.Program.get_instance() + program.add_window(self) + + AbstractWifiscanner.__init__( self ) + self.add(self.vbox) + + self.show_all() + + def TextView ( self , placeholder=None ) : + textview = hildon.TextView() + if placeholder : + textview.set_placeholder( placeholder ) + textview.set_editable( False ) + textview.set_cursor_visible( False ) + textview.modify_font( pango.FontDescription("Courier 12") ) + return textview + + def Button ( self , label="" ) : + button = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT, hildon.BUTTON_ARRANGEMENT_VERTICAL, label) + return button + + def CheckButton ( self , label=None ) : + toggle_button = hildon.CheckButton( gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT ) + if label : + toggle_button.set_label( label ) + return toggle_button + +else : + + class MapWindow ( gtk.Frame ) : + + def __init__(self): + gtk.Frame.__init__( self ) + + self.config = wifimap.config.Configuration() + self.config.zoom = 16 + self.add( wifimap.simpleMapWidget( self.config , (640,400) ) ) + + class Wifiscanner ( AbstractWifiscanner , gtk.Window ) : + + def __init__ ( self ) : + gtk.Window.__init__( self ) + self.resize(640,400) + + AbstractWifiscanner.__init__( self ) + self.add(self.vbox) + + self.show_all() + + def TextView ( self , placeholder=None ) : + textview = gtk.TextView() + if placeholder : + textview.get_buffer().set_text( placeholder ) + textview.set_editable( False ) + textview.set_cursor_visible( False ) + textview.modify_font( pango.FontDescription("Courier 12") ) + return textview + + def Button ( self , label="" ) : + button = gtk.Button( label ) + return button + + def CheckButton ( self , label=None ) : + toggle_button = gtk.CheckButton() + if label : + toggle_button.set_label( label ) + return toggle_button + +window = Wifiscanner() +window.run() diff --git a/wifiscanner/wifiscanner.py b/wifiscanner/wifiscanner.py deleted file mode 100755 index a73d763..0000000 --- a/wifiscanner/wifiscanner.py +++ /dev/null @@ -1,201 +0,0 @@ - -import wifimap - -import gtk , pango -try : - import hildon -except : - hildon = False - -def global_start(button, scanner): - scanner.start() - if button._id : - button.disconnect( button._id ) - button._id = button.connect("clicked", global_stop, scanner) - button.set_label("Switch GPS Off") - -def global_stop(button, scanner): - scanner.stop() - if button._id : - button.disconnect( button._id ) - button._id = button.connect("clicked", global_start, scanner) - button.set_label("Switch GPS On") - -def enable_agps(button): - if button.get_active() : - print "%s state is active" % button - -def start_scan(button, scanner): - # BUG : If gps is not started in advance, database is not opened and an exception happens - scanner.scan() - if button._id : - button.disconnect( button._id ) - button._id = button.connect("clicked", stop_scan, scanner) - button.set_label("Stop scanning") - -def stop_scan(button, scanner): - # FIXME : This method do not clear the scheduled scan - scanner.scan_timeout = 0 - if button._id : - button.disconnect( button._id ) - button._id = button.connect("clicked", start_scan, scanner) - button.set_label("Start scanning") - - -class scanner ( wifimap.Scanner ) : - - def scan ( self ) : - wifimap.Scanner.scan( self ) - self.report() - - def report ( self ) : - self.status.set_label( wifimap.Scanner.report(self) ) - start, end = self.buffer.get_bounds() - self.buffer.delete( start , end ) - for mac,rss in self.scanlist.iteritems() : - self.buffer.insert_at_cursor( "%s %5d\n" % ( mac , rss ) ) - - -class AbstractWifiscanner : - - def __init__ ( self ) : - - _scanner = scanner() - - self.connect("delete_event", gtk.main_quit, None) - - self.vbox = gtk.VBox(homogeneous=False, spacing=0) - - # Top frame creation - top_frame = gtk.Frame() - self.vbox.pack_start(top_frame) - - hbox = gtk.HBox(homogeneous=False, spacing=0) - top_frame.add(hbox) - - # Bottom frame creation - bottom_frame = gtk.Frame() - self.vbox.pack_end(bottom_frame, expand=False) - - bottom_box = gtk.HBox(homogeneous=False, spacing=0) - bottom_frame.add( bottom_box ) - - # Top frame population - notebook = gtk.Notebook() - hbox.pack_start( notebook ) - - scrollview = gtk.ScrolledWindow() - notebook.append_page( scrollview , gtk.Label("Scanning") ) - notebook.append_page( MapWindow() , gtk.Label("Map") ) - - buttons = gtk.VBox(homogeneous=False, spacing=0) - hbox.pack_end(buttons, expand=False) - - textview = self.TextView( "Scan results ..." ) - scrollview.add( textview ) - scrollview.set_policy( gtk.POLICY_NEVER , gtk.POLICY_AUTOMATIC ) - - # Buttons creation - button = self.Button( "Switch GPS On") - button._id = button.connect("clicked", global_start, _scanner) - buttons.pack_start(button, expand=False) - - button_scan = self.Button( "Start scanning") - button_scan._id = button_scan.connect("clicked", start_scan, _scanner) - buttons.pack_start(button_scan, expand=False) - - toggle_button = self.CheckButton( "Use Assisted GPS" ) - toggle_button.connect("toggled", enable_agps) - buttons.pack_start(toggle_button, expand=False) - - # Bottom frame population - status = gtk.Label( "status bar ..." ) - _scanner.status = status - _scanner.buffer = textview.get_buffer() - bottom_box.pack_start( status , expand=False , padding=20 ) - - def run ( self ) : - self.show_all() - gtk.main() - -if hildon : - - class MapWindow ( gtk.Frame ) : - - def __init__(self): - gtk.Frame.__init__( self ) - - self.config = wifimap.config.Configuration() - self.config.zoom = 16 - self.map = wifimap.simpleMapWidget( self.config ) - self.map.plot_APs() - self.add( self.map ) - - class Wifiscanner ( AbstractWifiscanner , hildon.Window ) : - - def __init__ ( self ) : - hildon.Window.__init__( self ) - program = hildon.Program.get_instance() - program.add_window(self) - - AbstractWifiscanner.__init__( self ) - self.add(self.vbox) - - def TextView ( self , placeholder=None ) : - textview = hildon.TextView() - if placeholder : - textview.set_placeholder( placeholder ) - textview.set_editable( False ) - textview.set_cursor_visible( False ) - textview.modify_font( pango.FontDescription("Courier 12") ) - return textview - - def Button ( self , label="" ) : - button = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT, hildon.BUTTON_ARRANGEMENT_VERTICAL, label) - return button - - def CheckButton ( self , label=None ) : - toggle_button = hildon.CheckButton( gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT ) - if label : - toggle_button.set_label( label ) - return toggle_button - -else : - - class MapWindow ( gtk.Frame ) : - - def __init__(self): - gtk.Frame.__init__( self ) - - self.config = wifimap.config.Configuration() - self.config.zoom = 16 - self.add( wifimap.simpleMapWidget( self.config , (640,400) ) ) - - class Wifiscanner ( AbstractWifiscanner , gtk.Window ) : - - def __init__ ( self ) : - gtk.Window.__init__( self ) - self.resize(640,400) - - AbstractWifiscanner.__init__( self ) - self.add(self.vbox) - - def TextView ( self , placeholder=None ) : - textview = gtk.TextView() - if placeholder : - textview.get_buffer().set_text( placeholder ) - textview.set_editable( False ) - textview.set_cursor_visible( False ) - textview.modify_font( pango.FontDescription("Courier 12") ) - return textview - - def Button ( self , label="" ) : - button = gtk.Button( label ) - return button - - def CheckButton ( self , label=None ) : - toggle_button = gtk.CheckButton() - if label : - toggle_button.set_label( label ) - return toggle_button - diff --git a/wifiscanner/wifiview b/wifiscanner/wifiview index b534841..4a6f83b 100755 --- a/wifiscanner/wifiview +++ b/wifiscanner/wifiview @@ -1,8 +1,195 @@ #!/usr/bin/python -import wifiview +import gtk +try : + import hildon +except : + hildon = False -if __name__ == "__main__": - map = wifiview.MapWindow() - map.main() +import math + +import wifimap.config + +import wifimap.view + + +if hildon : + + class ZoomDialog ( hildon.TouchSelector ) : + + def __init__ ( self , widget ) : + hildon.TouchSelector.__init__( self ) + + zooms = gtk.ListStore(str) + + active = index = 0 + for zoom in range(8,19) : + iter = zooms.append() + zooms.set( iter , 0 , "%2d" % zoom ) + if zoom == widget.conf.zoom : + active = index + index += 1 + + column = self.append_text_column( zooms , True ) + #renderer = gtk.CellRendererText() + #column = self.append_column( zooms , renderer ) + #column.set_property('text-column', 0) + + # NOTE : with text=True, we must use 1 instead of 0 + self.set_active( 0 , active ) + +else : + + class ZoomDialog ( gtk.Dialog ) : + + def __init__ ( self , widget ) : + gtk.Dialog.__init__( self , "Select zoom level", + None, + gtk.DIALOG_MODAL, + ( gtk.STOCK_OK, gtk.RESPONSE_ACCEPT, + gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT + ) + ) + + zooms = gtk.ListStore(int) + combo = gtk.ComboBox( zooms ) + + for zoom in range(8,19) : + iter = zooms.append() + zooms.set( iter , 0 , zoom ) + if zoom == widget.conf.zoom : + combo.set_active_iter( iter ) + + cell = gtk.CellRendererText() + combo.pack_start(cell, True) + combo.add_attribute(cell, 'text', 0) + + self.vbox.pack_start(combo , True, True, 0) + + self.connect_object( "response", self.response , combo , widget ) + + def response ( self , combo , response , widget ) : + if response == gtk.RESPONSE_ACCEPT : + item = combo.get_active_iter() + model = combo.get_model() + widget.SetZoom( model.get(item,0)[0] ) + self.destroy() + + +class AbstractMapWindow: + + def destroy(self, widget, data=None): + gtk.main_quit() + + def press_event ( self, widget, event, *args ) : + border_x , border_y = 40 , 30 + if event.x > border_x and event.y > border_y and event.x < ( self.size_x - border_x ) and event.y < ( self.size_y - border_y ) : + self.click_x = event.x + self.click_y = event.y + + def release_event ( self, widget, event, *args ) : + min_shift = 50 + if self.click_x is not None and self.click_y is not None : + delta_x = int( event.x - self.click_x ) + delta_y = int( event.y - self.click_y ) + shift = math.sqrt( delta_x * delta_x + delta_y * delta_y ) + if shift > min_shift : + self.map.Shift(delta_x, delta_y) + self.click_x , self.click_y = None , None + + def on_key_press ( self, widget, event, *args ) : + if event.keyval == gtk.keysyms.Up : + self.map.Up() + elif event.keyval == gtk.keysyms.Down : + self.map.Down() + elif event.keyval == gtk.keysyms.Right : + self.map.Right() + elif event.keyval == gtk.keysyms.Left : + self.map.Left() + else : + print "UNKNOWN",event.keyval + + def __init__( self , map_size=(800,480) ) : + + self.connect("destroy", self.destroy) + + self.set_border_width(10) + + self.connect("key-press-event", self.on_key_press) + + self.vbox = gtk.VBox(False, 0) + + self.set_events( gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK ) + self.connect('button_press_event', self.press_event) + self.connect('button_release_event', self.release_event) + + self.config = wifimap.config.Configuration() + self.map = wifimap.view.mapWidget( self.config , map_size ) + self.vbox.pack_end( self.map , True , True , 5) + + self.size_x , self.size_y = map_size + self.click_x , self.click_y = None , None + + def zoomdialog ( self , widget ) : + dialog = ZoomDialog( widget ) + dialog.show_all() + + def run(self): + gtk.main() + +if hildon : + + class MapWindow ( AbstractMapWindow , hildon.Window ) : + + def __init__(self): + hildon.Window.__init__( self ) + AbstractMapWindow.__init__(self) + self.add( self.vbox ) + self.create_menu( self.vbox ) + self.show_all() + + def create_menu ( self , vbox ) : + + self.menubar = menubar = hildon.AppMenu() + + #zoomlevel = hildon.Button(gtk.HILDON_SIZE_AUTO, + # hildon.BUTTON_ARRANGEMENT_VERTICAL, + # "Zoom level", None) + #zoomlevel.connect_object( "clicked", self.zoomstack, self.map ) + selector = ZoomDialog( self.map ) + zoomlevel = hildon.PickerButton(gtk.HILDON_SIZE_AUTO, + hildon.BUTTON_ARRANGEMENT_VERTICAL) + zoomlevel.set_title( "Zoom" ) + zoomlevel.set_selector( selector ) + zoomlevel.connect_object( "value-changed", self.map.ZoomChange , selector ) + menubar.append( zoomlevel ) + + menubar.show_all() + self.set_app_menu( menubar ) + +else : + + class MapWindow ( AbstractMapWindow , gtk.Window ) : + + def __init__(self): + gtk.Window.__init__( self , gtk.WINDOW_TOPLEVEL ) + AbstractMapWindow.__init__(self) + self.add( self.vbox ) + self.create_menu( self.vbox ) + self.show_all() + + self.resize( self.size_x , self.size_y) + + def create_menu ( self , vbox ) : + + menubar = gtk.MenuBar() + + zoomlevel = gtk.MenuItem( label="Zoom level" ) + zoomlevel.connect_object( "activate", self.zoomdialog, self.map ) + menubar.append( zoomlevel ) + + vbox.pack_start(menubar,True,True,5) + +window = MapWindow() +window.run() diff --git a/wifiscanner/wifiview.py b/wifiscanner/wifiview.py deleted file mode 100755 index 0437d70..0000000 --- a/wifiscanner/wifiview.py +++ /dev/null @@ -1,191 +0,0 @@ - -import gtk -try : - import hildon -except : - hildon = False - -import math - -import wifimap.config - -import wifimap.view - - -if hildon : - - class ZoomDialog ( hildon.TouchSelector ) : - - def __init__ ( self , widget ) : - hildon.TouchSelector.__init__( self ) - - zooms = gtk.ListStore(str) - - active = index = 0 - for zoom in range(8,19) : - iter = zooms.append() - zooms.set( iter , 0 , "%2d" % zoom ) - if zoom == widget.conf.zoom : - active = index - index += 1 - - column = self.append_text_column( zooms , True ) - #renderer = gtk.CellRendererText() - #column = self.append_column( zooms , renderer ) - #column.set_property('text-column', 0) - - # NOTE : with text=True, we must use 1 instead of 0 - self.set_active( 0 , active ) - -else : - - class ZoomDialog ( gtk.Dialog ) : - - def __init__ ( self , widget ) : - gtk.Dialog.__init__( self , "Select zoom level", - None, - gtk.DIALOG_MODAL, - ( gtk.STOCK_OK, gtk.RESPONSE_ACCEPT, - gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT - ) - ) - - zooms = gtk.ListStore(int) - combo = gtk.ComboBox( zooms ) - - for zoom in range(8,19) : - iter = zooms.append() - zooms.set( iter , 0 , zoom ) - if zoom == widget.conf.zoom : - combo.set_active_iter( iter ) - - cell = gtk.CellRendererText() - combo.pack_start(cell, True) - combo.add_attribute(cell, 'text', 0) - - self.vbox.pack_start(combo , True, True, 0) - - self.connect_object( "response", self.response , combo , widget ) - - def response ( self , combo , response , widget ) : - if response == gtk.RESPONSE_ACCEPT : - item = combo.get_active_iter() - model = combo.get_model() - widget.SetZoom( model.get(item,0)[0] ) - self.destroy() - - -class AbstractMapWindow: - - def destroy(self, widget, data=None): - gtk.main_quit() - - def press_event ( self, widget, event, *args ) : - border_x , border_y = 40 , 30 - if event.x > border_x and event.y > border_y and event.x < ( self.size_x - border_x ) and event.y < ( self.size_y - border_y ) : - self.click_x = event.x - self.click_y = event.y - - def release_event ( self, widget, event, *args ) : - min_shift = 50 - if self.click_x is not None and self.click_y is not None : - delta_x = int( event.x - self.click_x ) - delta_y = int( event.y - self.click_y ) - shift = math.sqrt( delta_x * delta_x + delta_y * delta_y ) - if shift > min_shift : - self.map.Shift(delta_x, delta_y) - self.click_x , self.click_y = None , None - - def on_key_press ( self, widget, event, *args ) : - if event.keyval == gtk.keysyms.Up : - self.map.Up() - elif event.keyval == gtk.keysyms.Down : - self.map.Down() - elif event.keyval == gtk.keysyms.Right : - self.map.Right() - elif event.keyval == gtk.keysyms.Left : - self.map.Left() - else : - print "UNKNOWN",event.keyval - - def __init__( self , map_size=(800,480) ) : - - self.connect("destroy", self.destroy) - - self.set_border_width(10) - - self.connect("key-press-event", self.on_key_press) - - self.vbox = gtk.VBox(False, 0) - - self.set_events( gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK ) - self.connect('button_press_event', self.press_event) - self.connect('button_release_event', self.release_event) - - self.config = wifimap.config.Configuration() - self.map = wifimap.view.mapWidget( self.config , map_size ) - self.vbox.pack_end( self.map , True , True , 5) - - self.size_x , self.size_y = map_size - self.click_x , self.click_y = None , None - - def zoomdialog ( self , widget ) : - dialog = ZoomDialog( widget ) - dialog.show_all() - - def main(self): - gtk.main() - -if hildon : - - class MapWindow ( AbstractMapWindow , hildon.Window ) : - - def __init__(self): - hildon.Window.__init__( self ) - AbstractMapWindow.__init__(self) - self.add( self.vbox ) - self.create_menu( self.vbox ) - self.show_all() - - def create_menu ( self , vbox ) : - - self.menubar = menubar = hildon.AppMenu() - - #zoomlevel = hildon.Button(gtk.HILDON_SIZE_AUTO, - # hildon.BUTTON_ARRANGEMENT_VERTICAL, - # "Zoom level", None) - #zoomlevel.connect_object( "clicked", self.zoomstack, self.map ) - selector = ZoomDialog( self.map ) - zoomlevel = hildon.PickerButton(gtk.HILDON_SIZE_AUTO, - hildon.BUTTON_ARRANGEMENT_VERTICAL) - zoomlevel.set_title( "Zoom" ) - zoomlevel.set_selector( selector ) - zoomlevel.connect_object( "value-changed", self.map.ZoomChange , selector ) - menubar.append( zoomlevel ) - - menubar.show_all() - self.set_app_menu( menubar ) - -else : - - class MapWindow ( AbstractMapWindow , gtk.Window ) : - - def __init__(self): - gtk.Window.__init__( self , gtk.WINDOW_TOPLEVEL ) - AbstractMapWindow.__init__(self) - self.add( self.vbox ) - self.create_menu( self.vbox ) - self.show_all() - - self.resize( self.size_x , self.size_y) - - def create_menu ( self , vbox ) : - - menubar = gtk.MenuBar() - - zoomlevel = gtk.MenuItem( label="Zoom level" ) - zoomlevel.connect_object( "activate", self.zoomdialog, self.map ) - menubar.append( zoomlevel ) - - vbox.pack_start(menubar,True,True,5) - -- 1.7.9.5