18 |
*/ |
*/ |
19 |
|
|
20 |
#include "gpxview.h" |
#include "gpxview.h" |
21 |
|
#include <math.h> // for isnan() |
22 |
|
|
23 |
struct icon_data { |
struct icon_data { |
24 |
GdkPixbuf **data; |
GdkPixbuf **data; |
25 |
int count; |
int count; |
26 |
} icons[] = { |
} icons[] = { |
27 |
{ NULL, CACHE_TYPE_MAX+1 }, /* ICON_CACHE_TYPE */ |
{ NULL, CACHE_TYPE_MAX+1 }, /* ICON_CACHE_TYPE */ |
28 |
{ NULL, CACHE_CONT_MAX+1 }, /* ICON_CACHE_SIZE */ |
{ NULL, CACHE_TYPE_MAX+1 }, /* ICON_CACHE_TYPE_SEMI */ |
29 |
{ NULL, 9 }, /* ICON_STARS */ |
{ NULL, CACHE_TYPE_MAX+1 }, /* ICON_CACHE_TYPE_1_5X */ |
30 |
{ NULL, LOG_TYPE_MAX+1 }, /* ICON_LOG */ |
{ NULL, CACHE_TYPE_MAX+1 }, /* ICON_CACHE_TYPE_2X */ |
31 |
{ NULL, 9 }, /* ICON_HEADING */ |
{ NULL, CACHE_CONT_MAX+1 }, /* ICON_CACHE_SIZE */ |
32 |
{ NULL, WPT_SYM_MAX+1 }, /* ICON_WPT */ |
{ NULL, 9 }, /* ICON_STARS */ |
33 |
{ NULL, 1 }, /* ICON_TB */ |
{ NULL, LOG_TYPE_MAX+1 }, /* ICON_LOG */ |
34 |
{ NULL, 8 }, /* ICON_MISC */ |
{ NULL, 9 }, /* ICON_HEADING */ |
35 |
{ NULL, 3 }, /* ICON_FILE */ |
{ NULL, WPT_SYM_MAX+1 }, /* ICON_WPT */ |
36 |
|
{ NULL, 2 }, /* ICON_TB */ |
37 |
|
{ NULL, 9 }, /* ICON_MISC */ |
38 |
|
{ NULL, 3 }, /* ICON_FILE */ |
39 |
{ NULL, -1 } |
{ NULL, -1 } |
40 |
}; |
}; |
41 |
|
|
42 |
/* ICON_CACHE_TYPE */ |
/* ICON_CACHE_TYPE / ICON_CACHE_TYPE_SEMI / ICON_CACHE_TYPE_2X */ |
43 |
const char *cache_type_icon_name[] = { |
const char *cache_type_icon_name[] = { |
44 |
"traditional", "multi", "mystery", "virtual", "webcam", "event", |
"traditional", "multi", "mystery", "virtual", "webcam", "event", |
45 |
"letterbox", "earthcache", "wherigo", "megaevent", "cito" |
"letterbox", "earthcache", "wherigo", "megaevent", "cito" |
79 |
|
|
80 |
/* ICON_TB */ |
/* ICON_TB */ |
81 |
const char *tb_icon_name[] = { |
const char *tb_icon_name[] = { |
82 |
"tb_coin" |
"tb", "coin" |
83 |
}; |
}; |
84 |
|
|
85 |
/* ICON_MISC */ |
/* ICON_MISC */ |
86 |
const char *misc_icon_name[] = { |
const char *misc_icon_name[] = { |
87 |
"maemo-mapper-out", "override", "locked", "unlocked", "found", |
"maemo-mapper-out", "override", "locked", "unlocked", "found", |
88 |
"maemo-mapper-in", "note", "delete" |
"maemo-mapper-in", "note", "delete", "paypal" |
89 |
}; |
}; |
90 |
|
|
91 |
/* ICON_FILE */ |
/* ICON_FILE */ |
157 |
/* load cache type icons */ |
/* load cache type icons */ |
158 |
icons_load(ICON_CACHE_TYPE, "cache_type_%s.%s", cache_type_icon_name); |
icons_load(ICON_CACHE_TYPE, "cache_type_%s.%s", cache_type_icon_name); |
159 |
|
|
160 |
|
/* load semitransparent cache type icons */ |
161 |
|
icons_load(ICON_CACHE_TYPE_SEMI, "cache_type_%s_semi.%s", cache_type_icon_name); |
162 |
|
|
163 |
|
/* load 150% sized cache type icons */ |
164 |
|
icons_load(ICON_CACHE_TYPE_1_5X, "cache_type_%s_1.5x.%s", cache_type_icon_name); |
165 |
|
|
166 |
|
/* load double sized cache type icons */ |
167 |
|
icons_load(ICON_CACHE_TYPE_2X, "cache_type_%s_2x.%s", cache_type_icon_name); |
168 |
|
|
169 |
/* load cache container/size icons */ |
/* load cache container/size icons */ |
170 |
icons_load(ICON_CACHE_SIZE, "cache_size_%s.%s", cache_size_icon_name); |
icons_load(ICON_CACHE_SIZE, "cache_size_%s.%s", cache_size_icon_name); |
171 |
|
|
223 |
} |
} |
224 |
|
|
225 |
GdkPixbuf *icon_bearing(pos_t from, pos_t to) { |
GdkPixbuf *icon_bearing(pos_t from, pos_t to) { |
226 |
if(!from.lat && !from.lon) |
if(isnan(from.lat) || isnan(from.lon) || |
227 |
|
isnan(to.lat) || isnan(to.lon)) |
228 |
return icon_get(ICON_HEADING, 8); |
return icon_get(ICON_HEADING, 8); |
229 |
|
|
230 |
int idx = (gpx_pos_get_bearing(from, to)+22.5)/45.0; |
int idx = (gpx_pos_get_bearing(from, to)+22.5)/45.0; |