Diff of /trunk/src/map-tool.c

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

revision 84 by harbaum, Fri Aug 28 07:52:01 2009 UTC revision 86 by harbaum, Sun Aug 30 19:05:44 2009 UTC
# Line 138  static gboolean on_map_configure(GtkWidg Line 138  static gboolean on_map_configure(GtkWidg
138                                   GdkEventConfigure *event,                                   GdkEventConfigure *event,
139                                   map_context_t *context) {                                   map_context_t *context) {
140    
141    /* set default values if they are invalid */    if(!context->map_complete) {
142    if(!context->appdata->map.zoom ||  
143       isnan(context->appdata->map.pos.lat) ||      /* set default values if they are invalid */
144       isnan(context->appdata->map.pos.lon)) {      if(!context->appdata->map.zoom ||
145      printf("no valid map position found\n");         isnan(context->appdata->map.pos.lat) ||
146           isnan(context->appdata->map.pos.lon)) {
147      pos_t *refpos = get_pos(context->appdata);        printf("no valid map position found\n");
148      if(refpos && !isnan(refpos->lat) && !isnan(refpos->lon)) {  
149        /* use gps position if present */        pos_t *refpos = get_pos(context->appdata);
150        context->appdata->map.pos = *refpos;        if(refpos && !isnan(refpos->lat) && !isnan(refpos->lon)) {
151        context->appdata->map.zoom = GPS_DEFAULT_ZOOM;          /* use gps position if present */
152      } else {          context->appdata->map.pos = *refpos;
153        /* use world map otherwise */          context->appdata->map.zoom = GPS_DEFAULT_ZOOM;
154        context->appdata->map.pos.lat = 0.0;        } else {
155        context->appdata->map.pos.lon = 0.0;          /* use world map otherwise */
156        context->appdata->map.zoom = 1;          context->appdata->map.pos.lat = 0.0;
157            context->appdata->map.pos.lon = 0.0;
158            context->appdata->map.zoom = 1;
159          }
160      }      }
161    
162        /* jump to initial position */
163        osm_gps_map_set_mapcenter(OSM_GPS_MAP(context->widget),
164                                  context->appdata->map.pos.lat,
165                                  context->appdata->map.pos.lon,
166                                  context->appdata->map.zoom);
167        context->map_complete = TRUE;
168    }    }
169    
   /* jump to initial position */  
   osm_gps_map_set_mapcenter(OSM_GPS_MAP(context->widget),  
                             context->appdata->map.pos.lat,  
                             context->appdata->map.pos.lon,  
                             context->appdata->map.zoom);  
   
170    return FALSE;    return FALSE;
171  }  }
172    
# Line 232  on_map_button_press_event(GtkWidget *wid Line 236  on_map_button_press_event(GtkWidget *wid
236                              GdkEventButton *event, map_context_t *context) {                              GdkEventButton *event, map_context_t *context) {
237    OsmGpsMap *map = OSM_GPS_MAP(context->widget);    OsmGpsMap *map = OSM_GPS_MAP(context->widget);
238    
239      /* check if we actually clicked parts of the OSD */
240      if(osm_gps_map_osd_check(map, event->x, event->y) != OSD_NONE)
241        return FALSE;
242    
243    /* got a press event without release event? eat it! */    /* got a press event without release event? eat it! */
244    if(context->press_on != NULL) {    if(context->press_on != NULL) {
245      printf("PRESS: already\n");      printf("PRESS: already\n");
246      return TRUE;      return FALSE;
247    }    }
248    
249    pos_t pos =    pos_t pos =
# Line 484  void map(appdata_t *appdata) { Line 492  void map(appdata_t *appdata) {
492    
493    context = appdata->map.context = g_new0(map_context_t, 1);    context = appdata->map.context = g_new0(map_context_t, 1);
494    context->appdata = appdata;    context->appdata = appdata;
495      context->map_complete = FALSE;
496    
497    /* cleanup old (pre 0.8.7) path if it exists */    /* cleanup old (pre 0.8.7) path if it exists */
498    char *old_path = g_strdup_printf("%s/map/", appdata->image_path);    char *old_path = g_strdup_printf("%s/map/", appdata->image_path);

Legend:
Removed from v.84  
changed lines
  Added in v.86