Diff of /trunk/src/osm-gps-map-osd-classic.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 124 by harbaum, Thu Sep 24 14:09:53 2009 UTC revision 131 by harbaum, Wed Sep 30 19:14:56 2009 UTC
# Line 1072  osd_zoom_labels(cairo_t *cr, gint x, gin Line 1072  osd_zoom_labels(cairo_t *cr, gint x, gin
1072  #define OSD_COORDINATES_OFFSET (OSD_COORDINATES_FONT_SIZE/6)  #define OSD_COORDINATES_OFFSET (OSD_COORDINATES_FONT_SIZE/6)
1073    
1074  #define OSD_COORDINATES_W  (8*OSD_COORDINATES_FONT_SIZE+2*OSD_COORDINATES_OFFSET)  #define OSD_COORDINATES_W  (8*OSD_COORDINATES_FONT_SIZE+2*OSD_COORDINATES_OFFSET)
1075  #define OSD_COORDINATES_H  (2*OSD_COORDINATES_FONT_SIZE+2*OSD_COORDINATES_OFFSET)  #define OSD_COORDINATES_H  (2*OSD_COORDINATES_FONT_SIZE+2*OSD_COORDINATES_OFFSET+OSD_COORDINATES_FONT_SIZE/4)
1076    
1077  /* these can be overwritten with versions that support */  /* these can be overwritten with versions that support */
1078  /* localization */  /* localization */
# Line 1209  osd_render_coordinates(osm_gps_map_osd_t Line 1209  osd_render_coordinates(osm_gps_map_osd_t
1209    
1210  #ifdef OSD_NAV  #ifdef OSD_NAV
1211  #define OSD_NAV_W  (8*OSD_COORDINATES_FONT_SIZE+2*OSD_COORDINATES_OFFSET)  #define OSD_NAV_W  (8*OSD_COORDINATES_FONT_SIZE+2*OSD_COORDINATES_OFFSET)
1212  #define OSD_NAV_H  (100)  #define OSD_NAV_H  (150)
1213    
1214  static void  static void
1215  osd_render_nav(osm_gps_map_osd_t *osd)  osd_render_nav(osm_gps_map_osd_t *osd)
# Line 1242  osd_render_nav(osm_gps_map_osd_t *osd) Line 1242  osd_render_nav(osm_gps_map_osd_t *osd)
1242      g_free(latitude);      g_free(latitude);
1243      g_free(longitude);      g_free(longitude);
1244    
1245        /* draw the compass */
1246        int radius = (OSD_NAV_H - y - 5*OSD_COORDINATES_FONT_SIZE/4)/2;
1247        if(radius > OSD_NAV_W/2)
1248            radius = OSD_NAV_W/2;
1249    
1250        int x = OSD_NAV_W/2+1;
1251        y += radius;
1252    
1253        cairo_stroke (cr);
1254    
1255        /* draw background */
1256        cairo_arc(cr, x, y, radius, 0,  2*M_PI);
1257        cairo_set_source_rgba (cr, 1, 1, 1, 0.5);
1258        cairo_fill_preserve (cr);
1259        cairo_set_source_rgb (cr, 0, 0, 0);
1260        cairo_set_line_width (cr, 1);
1261        cairo_stroke (cr);
1262    
1263        /* draw pointer */
1264    #define ARROW_WIDTH     0.3
1265    #define ARROW_LENGTH    0.7
1266    
1267        float arot = deg2rad(45);
1268    
1269        cairo_move_to(cr,
1270                      x + radius *  ARROW_LENGTH *  sin(arot),
1271                      y + radius *  ARROW_LENGTH * -cos(arot));
1272    
1273        cairo_line_to(cr,
1274                      x + radius * -ARROW_LENGTH *  sin(arot+ARROW_WIDTH),
1275                      y + radius * -ARROW_LENGTH * -cos(arot+ARROW_WIDTH));
1276    
1277        cairo_line_to(cr,
1278                      x + radius * -0.5 * ARROW_LENGTH *  sin(arot),
1279                      y + radius * -0.5 * ARROW_LENGTH * -cos(arot));
1280    
1281        cairo_line_to(cr,
1282                      x + radius * -ARROW_LENGTH *  sin(arot-ARROW_WIDTH),
1283                      y + radius * -ARROW_LENGTH * -cos(arot-ARROW_WIDTH));
1284    
1285        cairo_close_path(cr);
1286        cairo_set_source_rgb (cr, 0, 0, 0);
1287        cairo_fill (cr);
1288    
1289        y += radius + OSD_COORDINATES_FONT_SIZE/4;
1290        y = osd_render_centered_text(cr, y, OSD_NAV_W, "xx,xx km");
1291    
1292      cairo_destroy(cr);      cairo_destroy(cr);
1293  }  }
1294    

Legend:
Removed from v.124  
changed lines
  Added in v.131