911 |
return appdata->settings->follow_gps; |
return appdata->settings->follow_gps; |
912 |
} |
} |
913 |
|
|
914 |
|
static gboolean on_delete_event(GtkWidget *widget, GdkEvent *event, |
915 |
|
gpointer user_data) { |
916 |
|
printf("delete-event\n"); |
917 |
|
return FALSE; |
918 |
|
} |
919 |
|
|
920 |
/* create a HildonAppMenu */ |
/* create a HildonAppMenu */ |
921 |
static GtkWidget *app_menu_create(appdata_t *appdata, |
static GtkWidget *app_menu_create(appdata_t *appdata, |
922 |
const menu_entry_t *menu_entries) { |
const menu_entry_t *menu_entries) { |
953 |
menu_entries++; |
menu_entries++; |
954 |
} |
} |
955 |
|
|
956 |
|
// g_signal_connect(menu, "delete-event", |
957 |
|
// G_CALLBACK(gtk_widget_hide_on_delete), NULL); |
958 |
|
|
959 |
|
g_signal_connect(menu, "delete-event", |
960 |
|
G_CALLBACK(on_delete_event), NULL); |
961 |
|
|
962 |
gtk_widget_show_all(GTK_WIDGET(menu)); |
gtk_widget_show_all(GTK_WIDGET(menu)); |
963 |
return GTK_WIDGET(menu); |
return GTK_WIDGET(menu); |
964 |
} |
} |
965 |
|
|
966 |
|
static void submenu_popup(GtkWidget *menu) { |
967 |
|
GtkWidget *top = hildon_window_stack_peek(hildon_window_stack_get_default()); |
968 |
|
|
969 |
|
#if 0 |
970 |
|
int start, end; |
971 |
|
GTimeVal tv; |
972 |
|
g_get_current_time(&tv); |
973 |
|
start = tv.tv_sec * 1000 + tv.tv_usec / 1000; |
974 |
|
do { |
975 |
|
if(gtk_events_pending()) |
976 |
|
while(gtk_events_pending()) { |
977 |
|
putchar('.'); fflush(stdout); |
978 |
|
gtk_main_iteration(); |
979 |
|
} |
980 |
|
else |
981 |
|
usleep(100); |
982 |
|
|
983 |
|
g_get_current_time(&tv); |
984 |
|
end = tv.tv_sec * 1000 + tv.tv_usec / 1000; |
985 |
|
} while(end-start < 500); |
986 |
|
#endif |
987 |
|
|
988 |
|
|
989 |
|
|
990 |
|
hildon_app_menu_popup(HILDON_APP_MENU(menu), GTK_WINDOW(top)); |
991 |
|
} |
992 |
|
|
993 |
/* the view submenu */ |
/* the view submenu */ |
994 |
void on_submenu_view_clicked(GtkButton *button, appdata_t *appdata) { |
void on_submenu_view_clicked(GtkButton *button, appdata_t *appdata) { |
995 |
hildon_app_menu_popup(HILDON_APP_MENU(appdata->app_menu_view), |
submenu_popup(appdata->app_menu_view); |
|
GTK_WINDOW(appdata->window)); |
|
996 |
} |
} |
997 |
|
|
998 |
void on_submenu_map_clicked(GtkButton *button, appdata_t *appdata) { |
void on_submenu_map_clicked(GtkButton *button, appdata_t *appdata) { |
999 |
hildon_app_menu_popup(HILDON_APP_MENU(appdata->app_menu_map), |
submenu_popup(appdata->app_menu_map); |
|
GTK_WINDOW(appdata->window)); |
|
1000 |
} |
} |
1001 |
|
|
1002 |
void on_submenu_wms_clicked(GtkButton *button, appdata_t *appdata) { |
void on_submenu_wms_clicked(GtkButton *button, appdata_t *appdata) { |
1003 |
hildon_app_menu_popup(HILDON_APP_MENU(appdata->app_menu_wms), |
submenu_popup(appdata->app_menu_wms); |
|
GTK_WINDOW(appdata->window)); |
|
1004 |
} |
} |
1005 |
|
|
1006 |
void on_submenu_track_clicked(GtkButton *button, appdata_t *appdata) { |
void on_submenu_track_clicked(GtkButton *button, appdata_t *appdata) { |
1007 |
hildon_app_menu_popup(HILDON_APP_MENU(appdata->app_menu_track), |
submenu_popup(appdata->app_menu_track); |
|
GTK_WINDOW(appdata->window)); |
|
1008 |
} |
} |
1009 |
|
|
1010 |
#define APP_OFFSET(a) offsetof(appdata_t, a) |
#define APP_OFFSET(a) offsetof(appdata_t, a) |
1092 |
/* build menu/submenus */ |
/* build menu/submenus */ |
1093 |
menu = HILDON_APP_MENU(app_menu_create(appdata, main_menu)); |
menu = HILDON_APP_MENU(app_menu_create(appdata, main_menu)); |
1094 |
appdata->app_menu_wms = app_menu_create(appdata, submenu_wms); |
appdata->app_menu_wms = app_menu_create(appdata, submenu_wms); |
1095 |
|
g_object_ref(appdata->app_menu_wms); |
1096 |
appdata->app_menu_map = app_menu_create(appdata, submenu_map); |
appdata->app_menu_map = app_menu_create(appdata, submenu_map); |
1097 |
|
g_object_ref(appdata->app_menu_map); |
1098 |
appdata->app_menu_view = app_menu_create(appdata, submenu_view); |
appdata->app_menu_view = app_menu_create(appdata, submenu_view); |
1099 |
|
g_object_ref(appdata->app_menu_view); |
1100 |
appdata->app_menu_track = app_menu_create(appdata, submenu_track); |
appdata->app_menu_track = app_menu_create(appdata, submenu_track); |
1101 |
|
g_object_ref(appdata->app_menu_track); |
1102 |
|
|
1103 |
/* enable/disable some entries according to settings */ |
/* enable/disable some entries according to settings */ |
1104 |
if(appdata && appdata->settings) |
if(appdata && appdata->settings) |