refactoring main GUI application to
[wifi-assistant] / package / src / wifi_assistant / gui / application_settings_dialog.py
diff --git a/package/src/wifi_assistant/gui/application_settings_dialog.py b/package/src/wifi_assistant/gui/application_settings_dialog.py
new file mode 100644 (file)
index 0000000..de3b856
--- /dev/null
@@ -0,0 +1,50 @@
+#!/usr/bin/python2.5
+import gtk, hildon
+
+def _(str):
+    return str
+
+class ApplicationSettingsDialog():
+    
+    CANCEL_BUTTON = 1
+    SAVE_BUTTON = 2
+    
+    def __init__(self, parent_window, saveCallback):
+        """saveCallback(popup, url)"""
+        
+        self._parent_window = parent_window
+        self._saveCallback = saveCallback
+
+
+    def show(self, use_popup, url_to_open):
+        checkbox = hildon.CheckButton(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT)
+        checkbox.set_label(_('Show popup when connected to a new SSID'))
+        checkbox.set_active(use_popup)
+        
+        url_label = gtk.Label(_('URL to open when launching browser:')) # IMPROVEMENT: caption?
+        url_label.set_alignment(0, 0.5)
+        url_label.set_padding(5, 5)
+        url_field = hildon.Entry(gtk.HILDON_SIZE_AUTO)
+        url_field.set_text(url_to_open)
+        
+        dialog = gtk.Dialog(_('Settings'), self._parent_window)
+        dialog.vbox.set_homogeneous(False)
+        
+        dialog.vbox.add(checkbox)
+        dialog.vbox.add(url_label)
+        dialog.vbox.add(url_field)
+        
+        dialog.add_button(_('Cancel'), ApplicationSettingsDialog.CANCEL_BUTTON)
+        dialog.add_button(_('Save'), ApplicationSettingsDialog.SAVE_BUTTON)
+        
+        dialog.show_all()
+        result = self._runDialog(dialog)
+        dialog.hide()
+        
+        if result == ApplicationSettingsDialog.SAVE_BUTTON:
+            self._saveCallback(checkbox.get_active(), url_field.get_text())
+
+
+    def _runDialog(self, dialog):
+        result = dialog.run()
+        return result