+ // Show DEMS
+ if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->w_show_elev_dem)) ) {
+ GdkColor color;
+ GdkGC *dem_alt_gc = gdk_gc_new ( gtk_widget_get_window(window) );
+ gdk_color_parse ( "green", &color );
+ gdk_gc_set_rgb_fg_color ( dem_alt_gc, &color);
+
+ gint h2 = widgets->profile_height + MARGIN_Y; // Adjust height for x axis labelling offset
+ gint achunk = chunksa[widgets->ciat]*LINES;
+
+ for ( i = 0; i < widgets->profile_width; i++ ) {
+ // This could be slow doing this each time...
+ VikTrackpoint *tp = vik_track_get_closest_tp_by_percentage_time ( widgets->tr, ((gdouble)i/(gdouble)widgets->profile_width), NULL );
+ if ( tp ) {
+ gint16 elev = a_dems_get_elev_by_coord(&(tp->coord), VIK_DEM_INTERPOL_SIMPLE);
+ elev -= mina; //?
+ if ( elev != VIK_DEM_INVALID_ELEVATION ) {
+ // Convert into height units
+ if ( a_vik_get_units_height () == VIK_UNITS_HEIGHT_FEET )
+ elev = VIK_METERS_TO_FEET(elev);
+ // No conversion needed if already in metres
+
+ // consider chunk size
+ int y_alt = h2 - ((widgets->profile_height * elev)/achunk );
+ gdk_draw_rectangle(GDK_DRAWABLE(pix), dem_alt_gc, TRUE, i+MARGIN_X-2, y_alt-2, 4, 4);
+ }
+ }
+ }
+ g_object_unref ( G_OBJECT(dem_alt_gc) );
+ }
+
+ // Show speeds