Diff of /trunk/src/map-tool.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 288 by harbaum, Mon Jun 7 19:19:50 2010 UTC revision 293 by harbaum, Tue Aug 17 19:00:06 2010 UTC
# Line 41  Line 41 
41  #include <X11/Xatom.h>  #include <X11/Xatom.h>
42  #endif  #endif
43    
44    /* any defined key enables key support */
45    #if (defined(MAP_KEY_FULLSCREEN) || \
46         defined(MAP_KEY_ZOOMIN) || \
47         defined(MAP_KEY_ZOOMOUT) || \
48         defined(MAP_KEY_UP) || \
49         defined(MAP_KEY_DOWN) || \
50         defined(MAP_KEY_LEFT) || \
51         defined(MAP_KEY_RIGHT))
52    #include <gdk/gdkkeysyms.h>
53    #endif
54    
55  /* default values */  /* default values */
56  #define MAP_SOURCE  OSM_GPS_MAP_SOURCE_OPENCYCLEMAP  #define MAP_SOURCE  OSM_GPS_MAP_SOURCE_OPENCYCLEMAP
57  #define GPS_DEFAULT_ZOOM 13  #define GPS_DEFAULT_ZOOM 13
# Line 142  static void Line 153  static void
153  cb_map_gps(osd_button_t but, map_context_t *context) {  cb_map_gps(osd_button_t but, map_context_t *context) {
154    
155    if(but == OSD_GPS) {    if(but == OSD_GPS) {
     printf("clicked OSD_GPS %p\n", context);  
     printf("clicked OSD_GPS a %p\n", context->appdata);  
   
156      pos_t *refpos = get_pos(context->appdata);      pos_t *refpos = get_pos(context->appdata);
157      if(refpos && !isnan(refpos->lat) && !isnan(refpos->lon)) {      if(refpos && !isnan(refpos->lat) && !isnan(refpos->lon)) {
158        gint zoom;        gint zoom;
# Line 983  void map_update(appdata_t *appdata) { Line 991  void map_update(appdata_t *appdata) {
991  #endif  #endif
992  }  }
993    
994    static gboolean
995    on_map_window_key_press(GtkWidget *window, GdkEventKey *event, GtkWidget *map)  {
996    #ifdef USE_MAEMO
997      if((event->keyval == HILDON_HARDKEY_FULLSCREEN) ||
998         (event->keyval == HILDON_HARDKEY_INCREASE) ||
999         (event->keyval == HILDON_HARDKEY_DECREASE))
1000    #else
1001      if(event->keyval == GDK_F11)
1002    #endif
1003      {
1004        gboolean return_val;
1005        g_signal_emit_by_name(GTK_OBJECT(map), "key_press_event",
1006                              event, &return_val);
1007        return return_val;
1008      }
1009    
1010      return FALSE;
1011    }
1012    
1013  void map(appdata_t *appdata) {  void map(appdata_t *appdata) {
1014    map_context_t *context = NULL;    map_context_t *context = NULL;
1015    
# Line 1065  void map(appdata_t *appdata) { Line 1092  void map(appdata_t *appdata) {
1092        context->appdata->map.zoom = 1;        context->appdata->map.zoom = 1;
1093      }      }
1094    }    }
1095    
1096      int key_maps[][2] = {
1097        { OSM_GPS_MAP_KEY_FULLSCREEN, MAP_KEY_FULLSCREEN },
1098        { OSM_GPS_MAP_KEY_ZOOMIN, MAP_KEY_ZOOMIN },
1099        { OSM_GPS_MAP_KEY_ZOOMOUT, MAP_KEY_ZOOMOUT },
1100        { OSM_GPS_MAP_KEY_UP, MAP_KEY_UP },
1101        { OSM_GPS_MAP_KEY_DOWN, MAP_KEY_DOWN },
1102        { OSM_GPS_MAP_KEY_LEFT, MAP_KEY_LEFT },
1103        { OSM_GPS_MAP_KEY_RIGHT, MAP_KEY_RIGHT },
1104        { OSM_GPS_MAP_KEY_MAX, 0 } };
1105    
1106      int i;
1107      for(i=0;key_maps[i][0] != OSM_GPS_MAP_KEY_MAX;i++)
1108        osm_gps_map_set_keyboard_shortcut(OSM_GPS_MAP(context->widget),
1109                                          key_maps[i][0], key_maps[i][1]);
1110    
1111    osm_gps_map_set_mapcenter(OSM_GPS_MAP(context->widget),    osm_gps_map_set_mapcenter(OSM_GPS_MAP(context->widget),
1112                              context->appdata->map.pos.lat,                              context->appdata->map.pos.lat,
1113                              context->appdata->map.pos.lon,                              context->appdata->map.pos.lon,
# Line 1113  void map(appdata_t *appdata) { Line 1155  void map(appdata_t *appdata) {
1155    g_signal_connect(G_OBJECT(context->window), "destroy",    g_signal_connect(G_OBJECT(context->window), "destroy",
1156                     G_CALLBACK(on_window_destroy), context);                     G_CALLBACK(on_window_destroy), context);
1157    
1158      /* connect a key handler to forward global shortcuts (function keys) */
1159      /* to the ap widget */
1160      g_signal_connect(G_OBJECT(context->window), "key_press_event",
1161                       G_CALLBACK(on_map_window_key_press), context->widget);
1162    
1163    gtk_container_add(GTK_CONTAINER(context->window), context->widget);    gtk_container_add(GTK_CONTAINER(context->window), context->widget);
1164    gtk_widget_show_all(GTK_WIDGET(context->window));    gtk_widget_show_all(GTK_WIDGET(context->window));
1165    

Legend:
Removed from v.288  
changed lines
  Added in v.293