1 |
/* |
/* |
2 |
* Copyright (C) 2008 Till Harbaum <till@harbaum.org>. |
* Copyright (C) 2008-2009 Till Harbaum <till@harbaum.org>. |
3 |
* |
* |
4 |
* This file is part of OSM2Go. |
* This file is part of OSM2Go. |
5 |
* |
* |
320 |
printf("zoom is now %f\n", appdata->map->state->zoom); |
printf("zoom is now %f\n", appdata->map->state->zoom); |
321 |
} |
} |
322 |
|
|
323 |
|
#if (MAEMO_VERSION_MAJOR != 5) || !defined(DETAIL_POPUP) |
324 |
static void |
static void |
325 |
cb_menu_view_detail_inc(GtkMenuItem *item, gpointer data) { |
cb_menu_view_detail_inc(GtkMenuItem *item, gpointer data) { |
326 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
344 |
printf("detail level decrease\n"); |
printf("detail level decrease\n"); |
345 |
map_detail_decrease(appdata->map); |
map_detail_decrease(appdata->map); |
346 |
} |
} |
347 |
|
#endif |
348 |
|
|
349 |
static void |
static void |
350 |
cb_menu_track_import(GtkMenuItem *item, appdata_t *appdata) { |
cb_menu_track_import(GtkMenuItem *item, appdata_t *appdata) { |
1142 |
/* --- */ |
/* --- */ |
1143 |
SIMPLE_ENTRY("Style", cb_menu_style), |
SIMPLE_ENTRY("Style", cb_menu_style), |
1144 |
/* --- */ |
/* --- */ |
1145 |
|
#ifndef DETAIL_POPUP |
1146 |
SIMPLE_ENTRY("Normal details", cb_menu_view_detail_normal), |
SIMPLE_ENTRY("Normal details", cb_menu_view_detail_normal), |
1147 |
SIMPLE_ENTRY("More details", cb_menu_view_detail_inc), |
SIMPLE_ENTRY("More details", cb_menu_view_detail_inc), |
1148 |
SIMPLE_ENTRY("Less details", cb_menu_view_detail_dec), |
SIMPLE_ENTRY("Less details", cb_menu_view_detail_dec), |
1149 |
|
#endif |
1150 |
/* --- */ |
/* --- */ |
1151 |
DISABLED_ENTRY("Hide selected", cb_menu_map_hide_sel, menu_item_map_hide_sel), |
DISABLED_ENTRY("Hide selected", cb_menu_map_hide_sel, menu_item_map_hide_sel), |
1152 |
DISABLED_ENTRY("Show all", cb_menu_map_show_all, menu_item_map_show_all), |
DISABLED_ENTRY("Show all", cb_menu_map_show_all, menu_item_map_show_all), |
1380 |
return handled; |
return handled; |
1381 |
} |
} |
1382 |
|
|
|
#ifdef DETAIL_POPUP |
|
|
#define HEIGHT 100 |
|
|
|
|
|
static void detail_level_popup(GtkWidget *button, appdata_t *appdata) { |
|
|
GtkWidget *overlay = gtk_window_new(GTK_WINDOW_POPUP); |
|
|
gtk_window_set_default_size(GTK_WINDOW(overlay), button->allocation.width, HEIGHT); |
|
|
gtk_widget_realize(overlay); |
|
|
|
|
|
// gtk_window_set_resizable(GTK_WINDOW(overlay), FALSE); |
|
|
|
|
|
gtk_window_set_transient_for(GTK_WINDOW(overlay), GTK_WINDOW(appdata->window)); |
|
|
gtk_window_set_keep_above(GTK_WINDOW(overlay), TRUE); |
|
|
gtk_window_set_destroy_with_parent(GTK_WINDOW(overlay), TRUE); |
|
|
gtk_window_set_gravity(GTK_WINDOW(overlay), GDK_GRAVITY_STATIC); |
|
|
gtk_window_set_modal(GTK_WINDOW(overlay), TRUE); |
|
|
|
|
|
gdk_pointer_grab(overlay->window, TRUE, |
|
|
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_MOTION_MASK, |
|
|
NULL, NULL, GDK_CURRENT_TIME); |
|
|
gtk_grab_add(overlay->window); |
|
|
|
|
|
#if 0 |
|
|
gtk_window_set_position(GTK_WINDOW(overlay), GTK_WIN_POS_MOUSE); |
|
|
#else |
|
|
gint x, y; |
|
|
GdkWindow *wpar = gtk_widget_get_parent_window(button); |
|
|
gdk_window_get_root_origin(wpar, &x, &y); |
|
|
gtk_window_move(GTK_WINDOW(overlay), |
|
|
x + button->allocation.x, |
|
|
y + button->allocation.y - HEIGHT); |
|
|
#endif |
|
|
|
|
|
/* a frame with a vscale inside */ |
|
|
GtkWidget *frame = gtk_frame_new(NULL); |
|
|
gtk_widget_show (frame); |
|
|
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_OUT); |
|
|
GtkObject *adjustment = gtk_adjustment_new(1.0, 0.1, 10.0, +1, -1, 1); |
|
|
GtkWidget *scale = gtk_vscale_new(GTK_ADJUSTMENT(adjustment)); |
|
|
gtk_container_add(GTK_CONTAINER(frame), scale); |
|
|
gtk_container_add(GTK_CONTAINER(overlay), frame); |
|
|
|
|
|
gtk_widget_show_all(overlay); |
|
|
|
|
|
/* handle this popup until it's gone */ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
#endif |
|
|
|
|
1383 |
int main(int argc, char *argv[]) { |
int main(int argc, char *argv[]) { |
1384 |
appdata_t appdata; |
appdata_t appdata; |
1385 |
|
|
1425 |
#endif |
#endif |
1426 |
hildon_program_add_window(appdata.program, appdata.window); |
hildon_program_add_window(appdata.program, appdata.window); |
1427 |
|
|
1428 |
#if MAEMO_VERSION_MAJOR == 5 |
/* try to enable the zoom buttons. don't do this on x86 as it breaks */ |
1429 |
|
/* at runtime with cygwin x */ |
1430 |
|
#if (MAEMO_VERSION_MAJOR == 5) && !defined(__i386__) |
1431 |
unsigned long val = True; |
unsigned long val = True; |
1432 |
XChangeProperty(GDK_DISPLAY(), |
XChangeProperty(GDK_DISPLAY(), |
1433 |
GDK_WINDOW_XID(GTK_WIDGET(appdata.window)->window), |
GDK_WINDOW_XID(GTK_WIDGET(appdata.window)->window), |
1492 |
gtk_button_set_image(GTK_BUTTON(appdata.btn_detail_popup), |
gtk_button_set_image(GTK_BUTTON(appdata.btn_detail_popup), |
1493 |
gtk_image_new_from_stock(GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU)); |
gtk_image_new_from_stock(GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU)); |
1494 |
g_signal_connect(appdata.btn_detail_popup, "clicked", |
g_signal_connect(appdata.btn_detail_popup, "clicked", |
1495 |
G_CALLBACK(detail_level_popup), &appdata); |
G_CALLBACK(scale_popup), &appdata); |
1496 |
gtk_box_pack_start(GTK_BOX(zhbox), appdata.btn_detail_popup, FALSE, FALSE, 0); |
gtk_box_pack_start(GTK_BOX(zhbox), appdata.btn_detail_popup, FALSE, FALSE, 0); |
1497 |
#endif |
#endif |
1498 |
|
|