--- /dev/null
+#include <hildon/hildon.h>
+#include "app_data.h"
+#include "loc_data.h"
+
+void
+exit_wai(GtkWidget *widget,
+ gpointer data)
+{
+ gtk_main_quit();
+ AppData *app_data = app_data_get();
+ /* Free AppData */
+ app_data_free();
+}
+
+int
+main(int argc, char *argv[])
+{
+ HildonProgram *program;
+ AppData *app_data;
+
+ hildon_gtk_init (&argc, &argv);
+
+ program = hildon_program_get_instance ();
+
+ app_data_init();
+ app_data = app_data_get();
+
+ app_data->main_ui = create_ui();
+
+ // FIXME move out
+ g_signal_connect(app_data->control, "error-verbose", G_CALLBACK(on_error), NULL);
+ g_signal_connect(app_data->device, "changed", G_CALLBACK(on_changed), app_data);
+ g_signal_connect(app_data->control, "gpsd-stopped", G_CALLBACK(on_stop), NULL);
+
+ g_idle_add(start_location, app_data->control);
+
+ g_signal_connect (app_data->main_ui->window, "destroy", G_CALLBACK (exit_wai), NULL);
+
+
+ gtk_main();
+
+ return 0;
+}