more work on redesigning
[meabook] / ui / hildon_ui / search.py
diff --git a/ui/hildon_ui/search.py b/ui/hildon_ui/search.py
new file mode 100644 (file)
index 0000000..0f12fbb
--- /dev/null
@@ -0,0 +1,47 @@
+"""
+Search dialogs
+"""
+
+import gtk
+import hildon
+from gettext import gettext as _
+
+
+class SearchDialog:
+    """Hildon Search Dialog."""
+
+    def __init__(self, controller):
+        self.controller = controller
+
+    def run(self):
+        dialog = hildon.Dialog()
+        dialog.set_title(_('Search'))
+
+        selector = hildon.TouchSelector(text=True)
+        #for item in ('cn', 'mobile'):
+        for item in self.controller.get_fields():
+            selector.append_text(_(item))
+        selector.set_active(0, 0)
+
+        button = hildon.PickerButton(gtk.HILDON_SIZE_AUTO | \
+            gtk.HILDON_SIZE_FINGER_HEIGHT, hildon.BUTTON_ARRANGEMENT_VERTICAL)
+        button.set_alignment(0, 0, 0, 0)
+        button.set_title(_("Search criterion"))
+        button.set_selector(selector)
+
+        entry = hildon.Entry(gtk.HILDON_SIZE_AUTO | \
+            gtk.HILDON_SIZE_FINGER_HEIGHT)
+        entry.set_placeholder(_("Enter search text here"))
+
+        dialog.vbox.pack_start(button, expand=False)
+        dialog.vbox.pack_end(entry, expand=False)
+        dialog.vbox.show_all()
+        dialog.add_button(_('Search'), gtk.RESPONSE_OK)
+        response = dialog.run()
+        if response == gtk.RESPONSE_OK:
+            result = (self.controller.get_localized_fields()[ \
+                button.get_value().decode('utf-8')], entry.get_text())
+            dialog.destroy()
+            return result
+        dialog.destroy()
+        return False