}
static FilterResult
+get_towers_by_search_cb (tower *details,
+ gpointer data)
+{
+ char *s = (char *) data;
+
+ if (strcasestr(details->fields[FieldCountry], s) ||
+ strcasestr(details->fields[FieldCounty], s) ||
+ strcasestr(details->fields[FieldDedication], s) ||
+ strcasestr(details->fields[FieldPlace], s))
+ {
+ return FILTER_ACCEPT;
+ }
+ else
+ {
+ return FILTER_IGNORE;
+ }
+}
+
+static FilterResult
single_tower_cb (tower *details,
gpointer data)
{
GTK_RESPONSE_OK,
NULL);
GtkWidget *entry = gtk_entry_new ();
+ GSList *matches = NULL;
gtk_box_pack_end (GTK_BOX (GTK_DIALOG (terms)->vbox),
entry, TRUE, TRUE, 0);
if (gtk_dialog_run (GTK_DIALOG (terms))==GTK_RESPONSE_OK)
{
- show_message (gtk_entry_get_text (GTK_ENTRY (entry)));
+ GSList *matches = NULL;
+
+ parse_dove (get_towers_by_search_cb,
+ &matches,
+ (char*) gtk_entry_get_text (GTK_ENTRY (entry)));
+
+ show_towers_from_list (matches);
}
gtk_widget_destroy (GTK_WIDGET (terms));