36 |
map_action_cancel(appdata); |
map_action_cancel(appdata); |
37 |
|
|
38 |
/* ---- set project name as window title ----- */ |
/* ---- set project name as window title ----- */ |
39 |
#ifndef USE_HILDON |
#if defined(USE_HILDON) && MAEMO_VERSION_MAJOR < 5 |
40 |
|
if(project_valid) |
41 |
|
gtk_window_set_title(GTK_WINDOW(appdata->window), appdata->project->name); |
42 |
|
else |
43 |
|
gtk_window_set_title(GTK_WINDOW(appdata->window), ""); |
44 |
|
#else |
45 |
char *str = NULL; |
char *str = NULL; |
46 |
if(project_valid) |
if(project_valid) |
47 |
str = g_strdup_printf("OSM2Go - %s", appdata->project->name); |
str = g_strdup_printf("OSM2Go - %s", appdata->project->name); |
50 |
|
|
51 |
gtk_window_set_title(GTK_WINDOW(appdata->window), str); |
gtk_window_set_title(GTK_WINDOW(appdata->window), str); |
52 |
g_free(str); |
g_free(str); |
|
#else |
|
|
if(project_valid) |
|
|
gtk_window_set_title(GTK_WINDOW(appdata->window), appdata->project->name); |
|
|
else |
|
|
gtk_window_set_title(GTK_WINDOW(appdata->window), ""); |
|
53 |
#endif |
#endif |
54 |
|
|
55 |
if(appdata->iconbar && appdata->iconbar->toolbar) |
if(appdata->iconbar && appdata->iconbar->toolbar) |
126 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
127 |
if(!appdata->osm || !appdata->project) return; |
if(!appdata->osm || !appdata->project) return; |
128 |
|
|
129 |
|
if(project_check_demo(GTK_WIDGET(appdata->window), appdata->project)) |
130 |
|
return; |
131 |
|
|
132 |
osm_upload(appdata, appdata->osm, appdata->project); |
osm_upload(appdata, appdata->osm, appdata->project); |
133 |
} |
} |
134 |
|
|
137 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
138 |
if(!appdata->project) return; |
if(!appdata->project) return; |
139 |
|
|
140 |
|
if(project_check_demo(GTK_WIDGET(appdata->window), appdata->project)) |
141 |
|
return; |
142 |
|
|
143 |
/* if we have valid osm data loaded: save state first */ |
/* if we have valid osm data loaded: save state first */ |
144 |
if(appdata->osm) { |
if(appdata->osm) { |
145 |
/* redraw the entire map by destroying all map items and redrawing them */ |
/* redraw the entire map by destroying all map items and redrawing them */ |
153 |
// download |
// download |
154 |
if(osm_download(GTK_WIDGET(appdata->window), appdata->settings, |
if(osm_download(GTK_WIDGET(appdata->window), appdata->settings, |
155 |
appdata->project)) { |
appdata->project)) { |
156 |
banner_busy_start(appdata, 1, "Redrawing..."); |
banner_busy_start(appdata, 1, "Redrawing"); |
157 |
appdata->osm = osm_parse(appdata->project->osm); |
appdata->osm = osm_parse(appdata->project->path, appdata->project->osm); |
158 |
diff_restore(appdata, appdata->project, appdata->osm); |
diff_restore(appdata, appdata->project, appdata->osm); |
159 |
map_paint(appdata); |
map_paint(appdata); |
160 |
banner_busy_stop(appdata); //"Redrawing..." |
banner_busy_stop(appdata); //"Redrawing" |
161 |
} |
} |
162 |
|
|
163 |
main_ui_enable(appdata); |
main_ui_enable(appdata); |
203 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
204 |
|
|
205 |
/* redraw the entire map by destroying all map items and redrawing them */ |
/* redraw the entire map by destroying all map items and redrawing them */ |
206 |
banner_busy_start(appdata, 1, "Redrawing..."); |
banner_busy_start(appdata, 1, "Redrawing"); |
207 |
track_save(appdata->project, appdata->track.track); |
track_save(appdata->project, appdata->track.track); |
208 |
diff_save(appdata->project, appdata->osm); |
diff_save(appdata->project, appdata->osm); |
209 |
map_clear(appdata, MAP_LAYER_ALL); |
map_clear(appdata, MAP_LAYER_ALL); |
210 |
osm_free(&appdata->icon, appdata->osm); |
osm_free(&appdata->icon, appdata->osm); |
211 |
|
|
212 |
appdata->osm = osm_parse(appdata->project->osm); |
appdata->osm = osm_parse(appdata->project->path, appdata->project->osm); |
213 |
diff_restore(appdata, appdata->project, appdata->osm); |
diff_restore(appdata, appdata->project, appdata->osm); |
214 |
map_paint(appdata); |
map_paint(appdata); |
215 |
|
|
218 |
map_track_draw(appdata->map, appdata->track.track); |
map_track_draw(appdata->map, appdata->track.track); |
219 |
|
|
220 |
wms_load(appdata); |
wms_load(appdata); |
221 |
banner_busy_stop(appdata); //"Redrawing..." |
banner_busy_stop(appdata); //"Redrawing" |
222 |
} |
} |
223 |
#endif |
#endif |
224 |
|
|
226 |
cb_menu_map_no_icons(GtkCheckMenuItem *item, gpointer data) { |
cb_menu_map_no_icons(GtkCheckMenuItem *item, gpointer data) { |
227 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
228 |
|
|
229 |
banner_busy_start(appdata, 1, "Redrawing..."); |
banner_busy_start(appdata, 1, "Redrawing"); |
230 |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
231 |
appdata->settings->no_icons = gtk_check_menu_item_get_active(item); |
appdata->settings->no_icons = gtk_check_menu_item_get_active(item); |
232 |
map_paint(appdata); |
map_paint(appdata); |
233 |
banner_busy_stop(appdata); //"Redrawing..." |
banner_busy_stop(appdata); //"Redrawing" |
234 |
} |
} |
235 |
|
|
236 |
static void |
static void |
237 |
cb_menu_map_no_antialias(GtkCheckMenuItem *item, gpointer data) { |
cb_menu_map_no_antialias(GtkCheckMenuItem *item, gpointer data) { |
238 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
239 |
|
|
240 |
banner_busy_start(appdata, 1, "Redrawing..."); |
banner_busy_start(appdata, 1, "Redrawing"); |
241 |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
242 |
appdata->settings->no_antialias = gtk_check_menu_item_get_active(item); |
appdata->settings->no_antialias = gtk_check_menu_item_get_active(item); |
243 |
map_paint(appdata); |
map_paint(appdata); |
244 |
banner_busy_stop(appdata); //"Redrawing..." |
banner_busy_stop(appdata); //"Redrawing" |
245 |
} |
} |
246 |
|
|
247 |
static void |
static void |
278 |
"uploaded yet? This can't be undone."))) |
"uploaded yet? This can't be undone."))) |
279 |
return; |
return; |
280 |
|
|
281 |
banner_busy_start(appdata, 1, _("Redrawing...")); |
banner_busy_start(appdata, 1, _("Redrawing")); |
282 |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
283 |
osm_free(&appdata->icon, appdata->osm); |
osm_free(&appdata->icon, appdata->osm); |
284 |
diff_remove(appdata->project); |
diff_remove(appdata->project); |
285 |
appdata->osm = osm_parse(appdata->project->osm); |
appdata->osm = osm_parse(appdata->project->path, appdata->project->osm); |
286 |
map_paint(appdata); |
map_paint(appdata); |
287 |
banner_busy_stop(appdata); //"Redrawing..." |
banner_busy_stop(appdata); //"Redrawing" |
288 |
|
|
289 |
banner_show_info(appdata, _("Discarded local changes")); |
banner_show_info(appdata, _("Discarded local changes")); |
290 |
} |
} |
632 |
#endif |
#endif |
633 |
|
|
634 |
menu_append_new_item( |
menu_append_new_item( |
635 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_project_open), _("_Open..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_project_open), _("_Open"), |
636 |
GTK_STOCK_OPEN, "<OSM2Go-Main>/Project/Open", |
GTK_STOCK_OPEN, "<OSM2Go-Main>/Project/Open", |
637 |
0, 0, TRUE, FALSE, FALSE |
0, 0, TRUE, FALSE, FALSE |
638 |
); |
); |
704 |
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); |
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); |
705 |
|
|
706 |
appdata->menu_item_osm_upload = menu_append_new_item( |
appdata->menu_item_osm_upload = menu_append_new_item( |
707 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_upload), _("_Upload..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_upload), _("_Upload"), |
708 |
"upload.16", "<OSM2Go-Main>/OSM/Upload", |
"upload.16", "<OSM2Go-Main>/OSM/Upload", |
709 |
GDK_u, GDK_SHIFT_MASK|GDK_CONTROL_MASK, TRUE, FALSE, FALSE |
GDK_u, GDK_SHIFT_MASK|GDK_CONTROL_MASK, TRUE, FALSE, FALSE |
710 |
); |
); |
711 |
|
|
712 |
menu_append_new_item( |
menu_append_new_item( |
713 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_download), _("_Download..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_download), _("_Download"), |
714 |
"download.16", "<OSM2Go-Main>/OSM/Download", |
"download.16", "<OSM2Go-Main>/OSM/Download", |
715 |
GDK_d, GDK_SHIFT_MASK|GDK_CONTROL_MASK, TRUE, FALSE, FALSE |
GDK_d, GDK_SHIFT_MASK|GDK_CONTROL_MASK, TRUE, FALSE, FALSE |
716 |
); |
); |
733 |
); |
); |
734 |
|
|
735 |
appdata->menu_item_osm_undo_changes = menu_append_new_item( |
appdata->menu_item_osm_undo_changes = menu_append_new_item( |
736 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_undo_changes), _("Disca_rd local changes..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_undo_changes), _("Disca_rd local changes"), |
737 |
GTK_STOCK_DELETE, "<OSM2Go-Main>/OSM/DiscardChanges", |
GTK_STOCK_DELETE, "<OSM2Go-Main>/OSM/DiscardChanges", |
738 |
0, 0, TRUE, FALSE, FALSE |
0, 0, TRUE, FALSE, FALSE |
739 |
); |
); |
740 |
|
|
741 |
gtk_menu_shell_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new()); |
gtk_menu_shell_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new()); |
742 |
appdata->menu_item_osm_relations = menu_append_new_item( |
appdata->menu_item_osm_relations = menu_append_new_item( |
743 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_osm_relations), _("_Relations..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_osm_relations), _("_Relations"), |
744 |
NULL, "<OSM2Go-Main>/OSM/Relations", |
NULL, "<OSM2Go-Main>/OSM/Relations", |
745 |
GDK_r, GDK_SHIFT_MASK|GDK_CONTROL_MASK, TRUE, FALSE, FALSE |
GDK_r, GDK_SHIFT_MASK|GDK_CONTROL_MASK, TRUE, FALSE, FALSE |
746 |
); |
); |
754 |
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); |
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); |
755 |
|
|
756 |
menu_append_new_item( |
menu_append_new_item( |
757 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_wms_import), _("_Import..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_wms_import), _("_Import"), |
758 |
GTK_STOCK_INDEX, "<OSM2Go-Main>/WMS/Import", |
GTK_STOCK_INDEX, "<OSM2Go-Main>/WMS/Import", |
759 |
0, 0, TRUE, FALSE, FALSE |
0, 0, TRUE, FALSE, FALSE |
760 |
); |
); |
798 |
gtk_menu_shell_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new()); |
gtk_menu_shell_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new()); |
799 |
|
|
800 |
menu_append_new_item( |
menu_append_new_item( |
801 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_style), _("St_yle..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_style), _("St_yle"), |
802 |
GTK_STOCK_SELECT_COLOR, "<OSM2Go-Main>/Map/Style", |
GTK_STOCK_SELECT_COLOR, "<OSM2Go-Main>/Map/Style", |
803 |
0, 0, TRUE, FALSE, FALSE |
0, 0, TRUE, FALSE, FALSE |
804 |
); |
); |
834 |
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); |
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); |
835 |
|
|
836 |
appdata->track.menu_item_import = menu_append_new_item( |
appdata->track.menu_item_import = menu_append_new_item( |
837 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_track_import), _("_Import..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_track_import), _("_Import"), |
838 |
NULL, "<OSM2Go-Main>/Track/Import", |
NULL, "<OSM2Go-Main>/Track/Import", |
839 |
0, 0, TRUE, FALSE, FALSE |
0, 0, TRUE, FALSE, FALSE |
840 |
); |
); |
841 |
|
|
842 |
appdata->track.menu_item_export = menu_append_new_item( |
appdata->track.menu_item_export = menu_append_new_item( |
843 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_track_export), _("_Export..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_track_export), _("_Export"), |
844 |
NULL, "<OSM2Go-Main>/Track/Export", |
NULL, "<OSM2Go-Main>/Track/Export", |
845 |
0, 0, FALSE, FALSE, FALSE |
0, 0, FALSE, FALSE, FALSE |
846 |
); |
); |
872 |
gtk_separator_menu_item_new()); |
gtk_separator_menu_item_new()); |
873 |
|
|
874 |
menu_append_new_item( |
menu_append_new_item( |
875 |
appdata, about_quit_items_menu, GTK_SIGNAL_FUNC(cb_menu_about), _("_About..."), |
appdata, about_quit_items_menu, GTK_SIGNAL_FUNC(cb_menu_about), _("_About"), |
876 |
GTK_STOCK_ABOUT, "<OSM2Go-Main>/About", |
GTK_STOCK_ABOUT, "<OSM2Go-Main>/About", |
877 |
0, 0, TRUE, FALSE, FALSE |
0, 0, TRUE, FALSE, FALSE |
878 |
); |
); |
1128 |
|
|
1129 |
/* let gtk do its thing before loading the data, */ |
/* let gtk do its thing before loading the data, */ |
1130 |
/* so the user sees something */ |
/* so the user sees something */ |
1131 |
while(gtk_events_pending()) { |
while(gtk_events_pending()) |
|
putchar('.'); |
|
1132 |
gtk_main_iteration(); |
gtk_main_iteration(); |
|
} |
|
1133 |
|
|
1134 |
/* load project if one is specified in the settings */ |
/* load project if one is specified in the settings */ |
1135 |
if(appdata.settings->project) |
if(appdata.settings->project) |
1141 |
if(appdata.settings && appdata.settings->enable_gps) |
if(appdata.settings && appdata.settings->enable_gps) |
1142 |
track_enable_gps(&appdata, TRUE); |
track_enable_gps(&appdata, TRUE); |
1143 |
|
|
1144 |
/* ------------ jump into main loop ---------------- */ |
/* again let the ui do its thing */ |
1145 |
|
while(gtk_events_pending()) |
1146 |
|
gtk_main_iteration(); |
1147 |
|
|
1148 |
|
/* start to interact with the user now that the gui is running */ |
1149 |
|
if(appdata.settings->first_run_demo) { |
1150 |
|
messagef(GTK_WIDGET(appdata.window), _("Welcome to OSM2Go"), |
1151 |
|
_("This is the first time you run OSM2Go. " |
1152 |
|
"A demo project has been loaded to get you " |
1153 |
|
"started. You can play around with this demo as much " |
1154 |
|
"as you like. However, you cannot upload or download " |
1155 |
|
"the demo project.\n\n" |
1156 |
|
"In order to start working on real data you'll have " |
1157 |
|
"to setup a new project and enter your OSM user name " |
1158 |
|
"and password. You'll then be able to download the " |
1159 |
|
"latest data from OSM and upload your changes into " |
1160 |
|
"the OSM main database." |
1161 |
|
)); |
1162 |
|
} |
1163 |
|
|
1164 |
|
/* ------------ jump into main loop ---------------- */ |
1165 |
gtk_main(); |
gtk_main(); |
1166 |
|
|
1167 |
puts("gtk_main() left"); |
puts("gtk_main() left"); |