270 |
} |
} |
271 |
|
|
272 |
static void |
static void |
273 |
cb_menu_osm_relations(GtkMenuItem *item, gpointer data) { |
cb_menu_osm_relations(GtkMenuItem *item, appdata_t *appdata) { |
274 |
relation_list((appdata_t*)data); |
/* list relations of all objects */ |
275 |
|
relation_list(GTK_WIDGET(appdata->window), appdata, NULL); |
276 |
} |
} |
277 |
|
|
278 |
#if !defined(USE_HILDON) || (MAEMO_VERSION_MAJOR < 5) |
#if !defined(USE_HILDON) || (MAEMO_VERSION_MAJOR < 5) |
936 |
GTK_WINDOW(appdata->window)); |
GTK_WINDOW(appdata->window)); |
937 |
} |
} |
938 |
|
|
939 |
|
void on_submenu_map_clicked(GtkButton *button, appdata_t *appdata) { |
940 |
|
hildon_app_menu_popup(HILDON_APP_MENU(appdata->app_menu_map), |
941 |
|
GTK_WINDOW(appdata->window)); |
942 |
|
} |
943 |
|
|
944 |
void on_submenu_wms_clicked(GtkButton *button, appdata_t *appdata) { |
void on_submenu_wms_clicked(GtkButton *button, appdata_t *appdata) { |
945 |
hildon_app_menu_popup(HILDON_APP_MENU(appdata->app_menu_wms), |
hildon_app_menu_popup(HILDON_APP_MENU(appdata->app_menu_wms), |
946 |
GTK_WINDOW(appdata->window)); |
GTK_WINDOW(appdata->window)); |
951 |
GTK_WINDOW(appdata->window)); |
GTK_WINDOW(appdata->window)); |
952 |
} |
} |
953 |
|
|
|
/* -- the view submenu -- */ |
|
954 |
#define APP_OFFSET(a) offsetof(appdata_t, a) |
#define APP_OFFSET(a) offsetof(appdata_t, a) |
955 |
#define SIMPLE_ENTRY(a,b) { a, NULL, TRUE, NULL, 0, G_CALLBACK(b) } |
#define SIMPLE_ENTRY(a,b) { a, NULL, TRUE, NULL, 0, G_CALLBACK(b) } |
956 |
#define ENABLED_ENTRY(a,b,c) { a, NULL, TRUE, NULL, APP_OFFSET(c), G_CALLBACK(b) } |
#define ENABLED_ENTRY(a,b,c) { a, NULL, TRUE, NULL, APP_OFFSET(c), G_CALLBACK(b) } |
957 |
#define DISABLED_ENTRY(a,b,c) { a, NULL, FALSE, NULL, APP_OFFSET(c), G_CALLBACK(b) } |
#define DISABLED_ENTRY(a,b,c) { a, NULL, FALSE, NULL, APP_OFFSET(c), G_CALLBACK(b) } |
958 |
#define TOGGLE_ENTRY(a,b,c) { a, NULL, TRUE, c, 0, G_CALLBACK(b) } |
#define TOGGLE_ENTRY(a,b,c) { a, NULL, TRUE, c, 0, G_CALLBACK(b) } |
959 |
#define DISABLED_TOGGLE_ENTRY(a,b,c,d) { a, NULL, FALSE, c, APP_OFFSET(d), G_CALLBACK(b) } |
#define DISABLED_TOGGLE_ENTRY(a,b,c,d) \ |
960 |
#define ENABLED_TOGGLE_ENTRY(a,b,c,d) { a, NULL, TRUE, c, APP_OFFSET(d), G_CALLBACK(b) } |
{ a, NULL, FALSE, c, APP_OFFSET(d), G_CALLBACK(b) } |
961 |
|
#define ENABLED_TOGGLE_ENTRY(a,b,c,d) \ |
962 |
|
{ a, NULL, TRUE, c, APP_OFFSET(d), G_CALLBACK(b) } |
963 |
#define LAST_ENTRY { NULL, NULL, FALSE, NULL, 0, NULL } |
#define LAST_ENTRY { NULL, NULL, FALSE, NULL, 0, NULL } |
964 |
|
|
965 |
|
/* -- the view submenu -- */ |
966 |
static const menu_entry_t submenu_view[] = { |
static const menu_entry_t submenu_view[] = { |
967 |
SIMPLE_ENTRY("Zoom in", cb_menu_zoomin), |
SIMPLE_ENTRY("Zoom in", cb_menu_zoomin), |
968 |
SIMPLE_ENTRY("Zoom out", cb_menu_zoomout), |
SIMPLE_ENTRY("Zoom out", cb_menu_zoomout), |
981 |
LAST_ENTRY |
LAST_ENTRY |
982 |
}; |
}; |
983 |
|
|
984 |
|
/* -- the map submenu -- */ |
985 |
|
static const menu_entry_t submenu_map[] = { |
986 |
|
SIMPLE_ENTRY("Upload", cb_menu_upload), |
987 |
|
SIMPLE_ENTRY("Download", cb_menu_download), |
988 |
|
SIMPLE_ENTRY("Save local changes", cb_menu_save_changes), |
989 |
|
SIMPLE_ENTRY("Discard local changes", cb_menu_undo_changes), |
990 |
|
SIMPLE_ENTRY("Relations", cb_menu_osm_relations), |
991 |
|
|
992 |
|
LAST_ENTRY |
993 |
|
}; |
994 |
|
|
995 |
/* -- the wms submenu -- */ |
/* -- the wms submenu -- */ |
996 |
static const menu_entry_t submenu_wms[] = { |
static const menu_entry_t submenu_wms[] = { |
997 |
SIMPLE_ENTRY("Import", cb_menu_wms_import), |
SIMPLE_ENTRY("Import", cb_menu_wms_import), |
1017 |
|
|
1018 |
/* -- the applications main menu -- */ |
/* -- the applications main menu -- */ |
1019 |
static const menu_entry_t main_menu[] = { |
static const menu_entry_t main_menu[] = { |
1020 |
SIMPLE_ENTRY("About", cb_menu_about), |
SIMPLE_ENTRY("About", cb_menu_about), |
1021 |
ENABLED_ENTRY("View", on_submenu_view_clicked, submenu_view), |
SIMPLE_ENTRY("Project", cb_menu_project_open), |
1022 |
ENABLED_ENTRY("WMS", on_submenu_wms_clicked, submenu_wms), |
ENABLED_ENTRY("View", on_submenu_view_clicked, submenu_view), |
1023 |
ENABLED_ENTRY("Track", on_submenu_track_clicked, track.submenu_track), |
ENABLED_ENTRY("Map", on_submenu_map_clicked, submenu_map), |
1024 |
|
ENABLED_ENTRY("WMS", on_submenu_wms_clicked, submenu_wms), |
1025 |
|
ENABLED_ENTRY("Track", on_submenu_track_clicked, track.submenu_track), |
1026 |
|
|
1027 |
LAST_ENTRY |
LAST_ENTRY |
1028 |
}; |
}; |
1029 |
|
|
1030 |
void menu_create(appdata_t *appdata) { |
void menu_create(appdata_t *appdata) { |
1031 |
HildonAppMenu *menu = HILDON_APP_MENU(hildon_app_menu_new()); |
HildonAppMenu *menu = HILDON_APP_MENU(hildon_app_menu_new()); |
1032 |
|
|
1033 |
/* build menu/submenus */ |
/* build menu/submenus */ |
1034 |
menu = HILDON_APP_MENU(app_menu_create(appdata, main_menu)); |
menu = HILDON_APP_MENU(app_menu_create(appdata, main_menu)); |
1035 |
appdata->app_menu_wms = app_menu_create(appdata, submenu_wms); |
appdata->app_menu_wms = app_menu_create(appdata, submenu_wms); |
1036 |
appdata->app_menu_view = app_menu_create(appdata, submenu_view); |
appdata->app_menu_map = app_menu_create(appdata, submenu_map); |
1037 |
|
appdata->app_menu_view = app_menu_create(appdata, submenu_view); |
1038 |
appdata->app_menu_track = app_menu_create(appdata, submenu_track); |
appdata->app_menu_track = app_menu_create(appdata, submenu_track); |
1039 |
|
|
1040 |
|
/* enable/disable some entries according to settings */ |
1041 |
|
hildon_check_button_set_active(HILDON_CHECK_BUTTON( |
1042 |
|
appdata->track.menu_item_track_enable_gps), appdata->gps_enabled); |
1043 |
|
gtk_widget_set_sensitive(appdata->track.menu_item_track_follow_gps, |
1044 |
|
appdata->gps_enabled); |
1045 |
|
if(appdata->settings) |
1046 |
|
hildon_check_button_set_active(HILDON_CHECK_BUTTON( |
1047 |
|
appdata->track.menu_item_track_follow_gps), |
1048 |
|
appdata->settings->follow_gps); |
1049 |
|
|
1050 |
|
|
1051 |
hildon_window_set_app_menu(HILDON_WINDOW(appdata->window), menu); |
hildon_window_set_app_menu(HILDON_WINDOW(appdata->window), menu); |
1052 |
} |
} |
1053 |
#endif |
#endif |