X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=callbacks.c;h=bb6dbdade47680181195c8ec2a56a49a2f156d5a;hb=633158f78b1a600b464275f7eea62fb776652b91;hp=ff693f8bf4b2ab9a578ed22d2ad00a6b069e7106;hpb=c04ab31999e20c6e5996ff79264474631e42c2e3;p=speedometer diff --git a/callbacks.c b/callbacks.c index ff693f8..bb6dbda 100644 --- a/callbacks.c +++ b/callbacks.c @@ -14,57 +14,73 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . -****/ + ****/ -#include +#include +#include +#include #include "callbacks.h" - -void location_changed(LocationGPSDevice* device, gpointer userdata) { - g_print ("Latitude: %.2f\nLongitude: %.2f\nAltitude: %.2f\n", - device->fix->latitude, device->fix->longitude, device->fix->altitude); +#include "appdata.h" +#include "ui.h" + +void location_changed(LocationGPSDevice* device, gpointer data) { + // check for NaN before passing values + if(device->fix->fields & LOCATION_GPS_DEVICE_SPEED_SET) { + if(!isnan(device->fix->speed)) { + interpret_and_set_speed(device->fix->speed); + } + } } - -/* Callback for hardware keys */ gboolean key_press_cb(GtkWidget* widget, GdkEventKey* event, HildonWindow* window) { - switch (event->keyval) { - case GDK_Up: - hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Up"); - return TRUE; + switch (event->keyval) { + case GDK_Up: + hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Up"); + return TRUE; + + case GDK_Down: + hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Down"); + return TRUE; - case GDK_Down: - hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Down"); - return TRUE; + case GDK_Left: + hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Left"); + return TRUE; - case GDK_Left: - hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Left"); - return TRUE; + case GDK_Right: + hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Right"); + return TRUE; - case GDK_Right: - hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Right"); - return TRUE; + case GDK_Return: + hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key select"); + return TRUE; - case GDK_Return: - hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key select"); - return TRUE; + case GDK_F6: + hildon_banner_show_information(GTK_WIDGET(window), NULL, "Full screen"); + return TRUE; - case GDK_F6: - hildon_banner_show_information(GTK_WIDGET(window), NULL, "Full screen"); - return TRUE; + case GDK_F7: + hildon_banner_show_information(GTK_WIDGET(window), NULL, "Increase (zoom in)"); + return TRUE; - case GDK_F7: - hildon_banner_show_information(GTK_WIDGET(window), NULL, "Increase (zoom in)"); - return TRUE; + case GDK_F8: + hildon_banner_show_information(GTK_WIDGET(window), NULL, "Decrease (zoom out)"); + return TRUE; - case GDK_F8: - hildon_banner_show_information(GTK_WIDGET(window), NULL, "Decrease (zoom out)"); - return TRUE; + case GDK_Escape: + hildon_banner_show_information(GTK_WIDGET(window), NULL, "Cancel/Close"); + return TRUE; + } - case GDK_Escape: - hildon_banner_show_information(GTK_WIDGET(window), NULL, "Cancel/Close"); - return TRUE; - } + return FALSE; +} + +gboolean long_tap(GtkWidget* widget, gpointer data) { + gtk_main_quit(); + return TRUE; +} - return FALSE; +gboolean short_tap(GtkWidget* widget, GdkEventButton* event, gpointer data) { + change_unit(); + return TRUE; }