refactoring main GUI application to
[wifi-assistant] / package / src / wifi_assistant / gui / add_network_dialog.py
1 #!/usr/bin/python2.5
2 import gtk, hildon
3
4 def _(str):
5     return str
6
7 class AddNetworkDialog():
8     
9     CANCEL_BUTTON = 1
10     SAVE_BUTTON = 2
11     
12     def __init__(self, parent_window, saveCallback):
13         """saveCallback(ssid, launch_browser)"""
14         
15         self._parent_window = parent_window
16         self._saveCallback = saveCallback
17
18
19     def show(self, ssid=_('MyNetwork'), launch_browser=True):
20         checkbox = hildon.CheckButton(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT)
21         checkbox.set_label(_('Launch browser when connected'))
22         checkbox.set_active(launch_browser)
23         
24         url_label = gtk.Label(_('Name of the network:')) # IMPROVEMENT: caption?
25         url_label.set_alignment(0, 0.5)
26         url_label.set_padding(5, 5)
27         url_field = hildon.Entry(gtk.HILDON_SIZE_AUTO)
28         url_field.set_text(ssid)
29         
30         dialog = gtk.Dialog(_('Add network'), self._parent_window)
31         dialog.vbox.set_homogeneous(False)
32         
33         dialog.vbox.add(url_label)
34         dialog.vbox.add(url_field)
35         dialog.vbox.add(checkbox)
36         
37         dialog.add_button(_('Cancel'), AddNetworkDialog.CANCEL_BUTTON)
38         dialog.add_button(_('Save'), AddNetworkDialog.SAVE_BUTTON)
39         
40         dialog.show_all()
41         result = self._runDialog(dialog)
42         dialog.hide()
43         
44
45         if result == AddNetworkDialog.SAVE_BUTTON:
46             launch_browser = checkbox.get_active()
47             ssid = url_field.get_text()
48             self._saveCallback(ssid, launch_browser)
49     
50
51     def _runDialog(self, dialog):
52         result = dialog.run()
53         return result