r3320 - in trunk/src/target/OM-2007.2/applications/openmoko-worldclock2: . src

chris at sita.openmoko.org chris at sita.openmoko.org
Thu Nov 1 17:21:19 CET 2007


Author: chris
Date: 2007-11-01 17:21:18 +0100 (Thu, 01 Nov 2007)
New Revision: 3320

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/worldclock-main.c
Log:
        * src/worldclock-main.c: (map_button_press_event_cb), (main):
        Use a static map and add code to find the nearest timezone to where the
        user clicks


Modified: trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/ChangeLog	2007-11-01 12:34:11 UTC (rev 3319)
+++ trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/ChangeLog	2007-11-01 16:21:18 UTC (rev 3320)
@@ -1,3 +1,9 @@
+2007-11-01  Chris Lord  <chris at openedhand.com>
+
+	* src/worldclock-main.c: (map_button_press_event_cb), (main):
+	Use a static map and add code to find the nearest timezone to where the
+	user clicks
+
 2007-10-31  Chris Lord  <chris at openedhand.com>
 
 	* configure.ac:

Modified: trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/worldclock-main.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/worldclock-main.c	2007-11-01 12:34:11 UTC (rev 3319)
+++ trunk/src/target/OM-2007.2/applications/openmoko-worldclock2/src/worldclock-main.c	2007-11-01 16:21:18 UTC (rev 3320)
@@ -24,6 +24,7 @@
 #include <libmokoui2/moko-finger-scroll.h>
 #include <time.h>
 #include <sys/time.h>
+#include <math.h>
 #include "worldclock-data.h"
 
 #define GCONF_POKY_INTERFACE_PREFIX "/desktop/poky/interface"
@@ -268,11 +269,36 @@
 map_button_press_event_cb (JanaGtkWorldMap *map, GdkEventButton *event,
 			   WorldClockData *data)
 {
-	gdouble lat, lon;
+	GList *markers, *m;
+	gdouble lat, lon, old_distance;
+	JanaGtkWorldMapMarker *marker;
 	
 	jana_gtk_world_map_get_latlon (map, event->x, event->y, &lat, &lon);
-	g_message ("Map clicked at latitude, longitude: %lg, %lg", lat, lon);
+	markers = jana_gtk_world_map_get_markers (map);
 	
+	marker = NULL;
+	old_distance = G_MAXDOUBLE;
+	for (m = markers; m; m = m->next) {
+		gdouble distance;
+		JanaGtkWorldMapMarker *marker2 =
+			(JanaGtkWorldMapMarker *)m->data;
+		
+		distance = sqrt (pow (marker2->lat - lat, 2) +
+			pow (marker2->lon - lon, 2));
+		if (distance < old_distance) {
+			marker = marker2;
+			old_distance = distance;
+		}
+	}
+	
+	if (marker) {
+		WorldClockZoneData *tzdata = (WorldClockZoneData *)
+			g_object_get_data (G_OBJECT (marker), "zone");
+		g_debug ("Nearest location: %s", tzdata->name);
+	}
+	
+	g_list_free (markers);
+	
 	return FALSE;
 }
 
@@ -320,6 +346,9 @@
 
 	/* Create scrolling map */
 	data.map = jana_gtk_world_map_new ();
+	jana_gtk_world_map_set_width (JANA_GTK_WORLD_MAP (data.map), 2048);
+	jana_gtk_world_map_set_height (JANA_GTK_WORLD_MAP (data.map), 1024);
+	jana_gtk_world_map_set_static (JANA_GTK_WORLD_MAP (data.map), TRUE);
 	add_marks (&data);
 	gtk_widget_add_events (GTK_WIDGET (data.map), GDK_BUTTON_PRESS_MASK);
 	g_signal_connect (data.map, "button-press-event",





More information about the commitlog mailing list