Implemented the new scanner layout
[wifihood] / wifiscanner / wifiscanner
1 #!/usr/bin/python
2
3 import wifimap
4
5 import gtk
6 import hildon
7
8 import gobject
9
10 def hello(widget, data):
11     data.do_start()
12     if widget.handler_id :
13         widget.disconnect( widget.handler_id )
14         widget.handler_id = widget.connect("clicked", bye, data)
15         widget.set_label("Switch Off!")
16
17 def bye(widget, data):
18     data.do_stop()
19     if widget.handler_id :
20         widget.disconnect( widget.handler_id )
21         widget.handler_id = widget.connect("clicked", hello, data)
22         widget.set_label("Switch On!")
23
24 def enable_agps(widget):
25     if widget.get_active() :
26         print "%s state is active" % widget
27
28 def scana(widget, data):
29     if not data._timer :
30         data._timer = gobject.timeout_add( 5000 , data.scan )
31     else :
32         hildon.hildon_banner_show_information( widget , "icon_path" , "Scanning was already active" )
33     if widget.handler_id :
34         widget.disconnect( widget.handler_id )
35         widget.handler_id = widget.connect("clicked", scano, data)
36         widget.set_label("Stop scanning now !!")
37
38 def scano(widget, data):
39     if data._timer :
40         hildon.hildon_banner_show_information( widget , "icon_path" , "Timer was running, stopping it" )
41         gobject.source_remove( data._timer )
42         data._timer = None
43         data.stop()
44     else :
45         hildon.hildon_banner_show_information( widget , "icon_path" , "Scanning is not active" )
46     if widget.handler_id :
47         widget.disconnect( widget.handler_id )
48         widget.handler_id = widget.connect("clicked", scana, data)
49         widget.set_label("Start scanning now !!")
50
51 def main():
52
53     window = hildon.Window()
54     program = hildon.Program.get_instance()
55     program.add_window(window)
56
57     gpsdev = wifimap.Scanner( window )
58
59     window.connect("delete_event", gtk.main_quit, None)
60
61     vbox = gtk.VBox(homogeneous=False, spacing=0)
62     top_frame = gtk.Frame(label="top")
63     bottom_frame = gtk.Frame(label="bottom")
64     bottom_box = gtk.HBox(homogeneous=False, spacing=0)
65
66     hbox = gtk.HBox(homogeneous=False, spacing=0)
67     top_frame.add(hbox)
68
69     textview = gtk.TextView()
70  
71     scrollview = gtk.ScrolledWindow()
72     scrollview.set_policy( gtk.POLICY_NEVER , gtk.POLICY_AUTOMATIC )
73     scrollview.add( textview )
74     hbox.pack_start( scrollview )
75
76     buttons = gtk.VBox(homogeneous=False, spacing=0)
77     hbox.pack_end( buttons )
78
79     button = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH, hildon.BUTTON_ARRANGEMENT_VERTICAL, "Switch On!")
80     button.handler_id = button.connect("clicked", hello, gpsdev)
81     buttons.pack_start(button, expand=False)
82
83     button_scan = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH, hildon.BUTTON_ARRANGEMENT_VERTICAL, "Start scanning now !!")
84     button_scan.handler_id = button_scan.connect("clicked", scana, gpsdev)
85     buttons.pack_start(button_scan, expand=False)
86
87     toggle_button = gtk.CheckButton(label="Use Assisted GPS")
88     toggle_button.connect("toggled", enable_agps)
89     buttons.pack_start(toggle_button, expand=False)
90
91     status = gtk.Label( "status bar ..." )
92     bottom_box.pack_start( status , expand=False , padding=20 )
93
94     bottom_frame.add( bottom_box )
95
96     vbox.pack_start(top_frame)
97     vbox.pack_end(bottom_frame)
98     window.add(vbox)
99
100     window.show_all()
101
102     gpsdev.start()
103
104     gtk.main()
105
106 if __name__ == "__main__":
107     main()
108