Initial implementation of settings window under hildon
[wifihood] / wifiscanner / wifiscanner
index 88a9e4c..f50cc63 100755 (executable)
@@ -94,7 +94,8 @@ class AbstractWifiscanner :
 
         scrollview = gtk.ScrolledWindow()
         notebook.append_page( scrollview , gtk.Label("Scanning") )
-        notebook.append_page( MapWindow() , gtk.Label("Map") )
+        self.map = MapWindow()
+        notebook.append_page( self.map , gtk.Label("Map") )
 
         buttons = gtk.VBox(homogeneous=False, spacing=0)
         hbox.pack_end(buttons, expand=False)
@@ -120,7 +121,7 @@ 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
         bottom_box.pack_start( status , expand=False , padding=20 )
 
     def run ( self ) :
@@ -137,16 +138,19 @@ if hildon :
             self.config.zoom = 16
             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 ) :
@@ -168,6 +172,24 @@ 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.config )
+            menubar.append( settings )
+
+            menubar.show_all()
+
+    def settings_cb ( widget , config ) :
+        wifimap.config.SettingsWindow( config )
+
+
 else :
 
     class MapWindow ( gtk.Frame ) :