#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <glib.h>
#include <hildon/hildon.h>
#include <gtk/gtk.h>
primary_key);
}
+static gint strcmp_f (gconstpointer a,
+ gconstpointer b)
+{
+ return strcmp ((char*)a, (char*)b);
+}
+
static void
put_areas_into_list (gpointer key,
gpointer value,
gpointer data)
{
+ GSList **list = (GSList **)data;
+ *list = g_slist_insert_sorted (*list,
+ value,
+ strcmp_f);
+}
+
+static void
+area_activated (GtkTreeView *treeview,
+ GtkTreePath *path,
+ GtkTreeViewColumn *column,
+ gpointer data)
+{
+ GtkTreeModel *model = gtk_tree_view_get_model (treeview);
GtkTreeIter iter;
- GtkListStore *list_store = (GtkListStore*) data;
- gtk_list_store_append (list_store, &iter);
- gtk_list_store_set (list_store, &iter,
- 0, value,
- -1);
+
+ if (gtk_tree_model_get_iter (model, &iter, path))
+ {
+ char *r;
+ gtk_tree_model_get (model, &iter, 0, &r, -1);
+ if (r == NULL)
+ return;
+
+ show_message (r);
+ }
}
static void
towers_by_area (void)
{
- GtkWidget *dialog = gtk_dialog_new ();
+ GtkWidget *dialog = hildon_picker_dialog_new (GTK_WINDOW (window));
GtkWidget *vbox = GTK_DIALOG(dialog)->vbox;
GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
GtkWidget *treeview = hildon_gtk_tree_view_new (HILDON_UI_MODE_NORMAL);
GtkWidget *pan = hildon_pannable_area_new ();
GtkListStore *list_store = gtk_list_store_new(1, G_TYPE_STRING);
+ GtkWidget *selector = hildon_touch_selector_new_text ();
+
GHashTable *hash = g_hash_table_new_full (g_str_hash,
g_str_equal,
g_free,
g_free);
+
+ GSList *list, *cursor;
+
parse_dove (get_areas_cb,
hash);
g_hash_table_foreach (hash,
put_areas_into_list,
- list_store);
-
- /* g_signal_connect (G_OBJECT (dialog), "delete_event", G_CALLBACK (g_hash_table_destroy), hash)*/
-
- gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (list_store),
- 0,
- GTK_SORT_ASCENDING);
-
- g_object_set (GTK_OBJECT(renderer), "yalign", 0.5, NULL);
- g_object_set (GTK_OBJECT(renderer), "xpad", 24, NULL);
-
- gtk_window_set_title (GTK_WINDOW (dialog), "Towers by area");
+ &list);
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
- 0, "",
- renderer,
- "text", 0,
- NULL);
-
- gtk_tree_view_set_model (GTK_TREE_VIEW (treeview),
- GTK_TREE_MODEL (list_store));
-
- g_object_unref (list_store);
-
- hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA (pan),
- treeview);
+ for (cursor=list; cursor; cursor=cursor->next)
+ {
+ hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector),
+ cursor->data);
+ }
- hildon_pannable_area_set_size_request_policy (HILDON_PANNABLE_AREA (pan),
- HILDON_SIZE_REQUEST_CHILDREN);
- gtk_container_add(GTK_CONTAINER (vbox), pan);
+ hildon_picker_dialog_set_selector (HILDON_PICKER_DIALOG (dialog),
+ HILDON_TOUCH_SELECTOR (selector));
gtk_widget_show_all (GTK_WIDGET (dialog));
gtk_dialog_run (GTK_DIALOG (dialog));
+ show_message (hildon_touch_selector_get_current_text (HILDON_TOUCH_SELECTOR (selector)));
gtk_widget_destroy (GTK_WIDGET (dialog));
/* g_hash_table_unref (hash); */