+static void
+show_towers_from_list (GSList *list)
+{
+ GtkWidget *dialog;
+ GtkWidget *selector;
+ gchar *result = NULL;
+ GSList *cursor;
+
+ if (!list)
+ {
+ hildon_banner_show_information(window,
+ NULL,
+ "No towers found.");
+ return;
+ }
+
+ if (!list->next)
+ {
+ /* don't bother showing the list */
+ hildon_banner_show_information(window,
+ NULL,
+ "One tower found.");
+ show_tower (list->data);
+ return;
+ }
+
+ dialog = hildon_picker_dialog_new (GTK_WINDOW (window));
+ selector = hildon_touch_selector_new_text ();
+
+ for (cursor=list; cursor; cursor=cursor->next)
+ {
+ hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector),
+ cursor->data);
+ }
+
+ hildon_picker_dialog_set_selector (HILDON_PICKER_DIALOG (dialog),
+ HILDON_TOUCH_SELECTOR (selector));
+
+ gtk_widget_show_all (GTK_WIDGET (dialog));
+
+ if (gtk_dialog_run (GTK_DIALOG (dialog))==GTK_RESPONSE_OK)
+ {
+ result = g_strdup (hildon_touch_selector_get_current_text (HILDON_TOUCH_SELECTOR (selector)));
+ }
+
+ gtk_widget_destroy (GTK_WIDGET (dialog));
+
+ if (result)
+ {
+ show_tower (result);
+ g_free (result);
+ }
+}
+