/* draw grid */
#define LABEL_FONT "Sans 7"
+ vik_units_height_t height_units = a_vik_get_units_height ();
for (i=0; i<=LINES; i++) {
PangoFontDescription *pfd;
PangoLayout *pl = gtk_widget_create_pango_layout (GTK_WIDGET(image), NULL);
pfd = pango_font_description_from_string (LABEL_FONT);
pango_layout_set_font_description (pl, pfd);
pango_font_description_free (pfd);
- sprintf(s, "%8dm", (int)(mina + (LINES-i)*(maxa-mina)/LINES));
+ switch (height_units) {
+ case VIK_UNITS_HEIGHT_METRES:
+ sprintf(s, "%8dm", (int)(mina + (LINES-i)*(maxa-mina)/LINES));
+ break;
+ case VIK_UNITS_HEIGHT_FEET:
+ sprintf(s, "%8dft", (int)((mina + (LINES-i)*(maxa-mina)/LINES)*3.2808399));
+ break;
+ default:
+ sprintf(s, "--");
+ g_critical("Houston, we've had a problem. height=%d", height_units);
+ }
pango_layout_set_text(pl, s, -1);
pango_layout_get_pixel_size (pl, &w, &h);
gdk_draw_layout(GDK_DRAWABLE(pix), window->style->fg_gc[0], MARGIN-w-3,
return eventbox;
}
-#define METRIC 1
-#ifdef METRIC
-#define MTOK(v) ( (v)*3.6) /* m/s to km/h */
-#else
-#define MTOK(v) ( (v)*3600.0/1000.0 * 0.6214) /* m/s to mph - we'll handle this globally eventually but for now ...*/
-#endif
GtkWidget *vik_trw_layer_create_vtdiag ( GtkWidget *window, VikTrack *tr, gpointer vlp, PropWidgets *widgets)
{
pix = gdk_pixmap_new( window->window, PROFILE_WIDTH + MARGIN, PROFILE_HEIGHT, -1 );
image = gtk_image_new_from_pixmap ( pix, NULL );
- for (i=0; i<PROFILE_WIDTH; i++) {
- speeds[i] = MTOK(speeds[i]);
- }
-
minmax_alt(speeds, &mins, &maxs);
if (mins < 0.0)
mins = 0; /* splines sometimes give negative speeds */
pfd = pango_font_description_from_string (LABEL_FONT);
pango_layout_set_font_description (pl, pfd);
pango_font_description_free (pfd);
-#ifdef METRIC
- sprintf(s, "%5dkm/h", (int)(mins + (LINES-i)*(maxs-mins)/LINES));
-#else
- sprintf(s, "%8dmph", (int)(mins + (LINES-i)*(maxs-mins)/LINES));
-#endif
+ vik_units_speed_t speed_units = a_vik_get_units_speed ();
+ switch (speed_units) {
+ case VIK_UNITS_SPEED_KILOMETRES_PER_HOUR:
+ sprintf(s, "%8dkm/h", (int)((mins + (LINES-i)*(maxs-mins)/LINES)*3.6));
+ break;
+ case VIK_UNITS_SPEED_MILES_PER_HOUR:
+ sprintf(s, "%8dmph", (int)((mins + (LINES-i)*(maxs-mins)/LINES)*2.23693629));
+ break;
+ case VIK_UNITS_SPEED_METRES_PER_SECOND:
+ sprintf(s, "%8dm/s", (int)(mins + (LINES-i)*(maxs-mins)/LINES));
+ break;
+ case VIK_UNITS_SPEED_KNOTS:
+ sprintf(s, "%8dknots", (int)((mins + (LINES-i)*(maxs-mins)/LINES)*1.94384449));
+ break;
+ default:
+ sprintf(s, "--");
+ g_critical("Houston, we've had a problem. speed=%d", speed_units);
+ }
+
pango_layout_set_text(pl, s, -1);
pango_layout_get_pixel_size (pl, &w, &h);
gdk_draw_layout(GDK_DRAWABLE(pix), window->style->fg_gc[0], MARGIN-w-3,
if (isnan(gps_speed))
continue;
int x = MARGIN + PROFILE_WIDTH * (VIK_TRACKPOINT(iter->data)->timestamp - beg_time) / dur;
- int y = PROFILE_HEIGHT - PROFILE_HEIGHT*(MTOK(gps_speed) - mins)/(maxs - mins);
+ int y = PROFILE_HEIGHT - PROFILE_HEIGHT*(gps_speed - mins)/(maxs - mins);
gdk_draw_rectangle(GDK_DRAWABLE(pix), gps_speed_gc, TRUE, x-2, y-2, 4, 4);
}
g_snprintf(tmp_buf, sizeof(tmp_buf), "%lu", vik_track_get_dup_point_count(tr) );
widgets->w_duptp_count = content[cnt++] = gtk_label_new ( tmp_buf );
+ vik_units_speed_t speed_units = a_vik_get_units_speed ();
tmp_speed = vik_track_get_max_speed(tr);
if ( tmp_speed == 0 )
g_snprintf(tmp_buf, sizeof(tmp_buf), _("No Data"));
- else
- g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f m/s (%.0f km/h)", tmp_speed, MTOK(tmp_speed) );
+ else {
+ switch (speed_units) {
+ case VIK_UNITS_SPEED_KILOMETRES_PER_HOUR:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f km/h", tmp_speed*3.6 );
+ break;
+ case VIK_UNITS_SPEED_MILES_PER_HOUR:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f mph", tmp_speed*2.23693629 );
+ break;
+ case VIK_UNITS_SPEED_METRES_PER_SECOND:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f m/s", tmp_speed );
+ break;
+ case VIK_UNITS_SPEED_KNOTS:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f knots", tmp_speed*1.94384449 );
+ break;
+ default:
+ g_snprintf (tmp_buf, sizeof(tmp_buf), "--" );
+ g_critical("Houston, we've had a problem. speed=%d", speed_units);
+ }
+ }
widgets->w_max_speed = content[cnt++] = gtk_label_new ( tmp_buf );
tmp_speed = vik_track_get_average_speed(tr);
if ( tmp_speed == 0 )
g_snprintf(tmp_buf, sizeof(tmp_buf), _("No Data"));
- else
- g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f m/s (%.0f km/h)", tmp_speed, MTOK(tmp_speed) );
+ else {
+ switch (speed_units) {
+ case VIK_UNITS_SPEED_KILOMETRES_PER_HOUR:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f km/h", tmp_speed*3.6 );
+ break;
+ case VIK_UNITS_SPEED_MILES_PER_HOUR:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f mph", tmp_speed* 2.23693629 );
+ break;
+ case VIK_UNITS_SPEED_METRES_PER_SECOND:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f m/s", tmp_speed );
+ break;
+ case VIK_UNITS_SPEED_KNOTS:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f knots", tmp_speed*1.94384449 );
+ break;
+ default:
+ g_snprintf (tmp_buf, sizeof(tmp_buf), "--" );
+ g_critical("Houston, we've had a problem. speed=%d", speed_units);
+ }
+ }
widgets->w_avg_speed = content[cnt++] = gtk_label_new ( tmp_buf );
switch (dist_units) {
}
widgets->w_avg_dist = content[cnt++] = gtk_label_new ( tmp_buf );
+ vik_units_height_t height_units = a_vik_get_units_height ();
if ( min_alt == VIK_DEFAULT_ALTITUDE )
g_snprintf(tmp_buf, sizeof(tmp_buf), _("No Data"));
- else
- g_snprintf(tmp_buf, sizeof(tmp_buf), "%.0f m - %.0f m", min_alt, max_alt );
+ else {
+ switch (height_units) {
+ case VIK_UNITS_HEIGHT_METRES:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "%.0f m - %.0f m", min_alt, max_alt );
+ break;
+ case VIK_UNITS_HEIGHT_FEET:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "%.0f feet - %.0f feet", min_alt*3.2808399, max_alt*3.2808399 );
+ break;
+ default:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "--" );
+ g_critical("Houston, we've had a problem. height=%d", height_units);
+ }
+ }
widgets->w_elev_range = content[cnt++] = gtk_label_new ( tmp_buf );
vik_track_get_total_elevation_gain(tr, &max_alt, &min_alt );
if ( min_alt == VIK_DEFAULT_ALTITUDE )
g_snprintf(tmp_buf, sizeof(tmp_buf), _("No Data"));
- else
- g_snprintf(tmp_buf, sizeof(tmp_buf), "%.0f m / %.0f m", max_alt, min_alt );
+ else {
+ switch (height_units) {
+ case VIK_UNITS_HEIGHT_METRES:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "%.0f m / %.0f m", max_alt, min_alt );
+ break;
+ case VIK_UNITS_HEIGHT_FEET:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "%.0f feet / %.0f feet", max_alt*3.2808399, min_alt*3.2808399 );
+ break;
+ default:
+ g_snprintf(tmp_buf, sizeof(tmp_buf), "--" );
+ g_critical("Houston, we've had a problem. height=%d", height_units);
+ }
+ }
widgets->w_elev_gain = content[cnt++] = gtk_label_new ( tmp_buf );
#if 0