Extend hildon wrappers to scanning application
[wifihood] / wifiscanner / wifiview
index 4a6f83b..b715609 100755 (executable)
@@ -4,7 +4,7 @@ import gtk
 try :
     import hildon
 except :
-    hildon = False
+    from hildongtk import hildon
 
 import math
 
@@ -13,69 +13,6 @@ 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):
@@ -123,72 +60,47 @@ class AbstractMapWindow:
         self.connect('button_press_event', self.press_event)
         self.connect('button_release_event', self.release_event)
 
-        self.config = wifimap.config.Configuration()
+        self.config = wifimap.config.Configuration( 'map' )
         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 ) :
+class MapWindow ( AbstractMapWindow , hildon.Window ) :
 
         def __init__(self):
             hildon.Window.__init__( self )
+            self.set_title( "Wifi Map" )
+            program = hildon.Program.get_instance()
+            program.add_window(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 )
+            selector = wifimap.config.ZoomDialog( self.map.conf , self.map.SetZoom )
             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 )
+            # FIXME bug#6892 missing signal
+            zoomlevel.connect_object( "value-changed", selector.zoomdialog , zoomlevel , self.map.conf )
             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()