Diff of /trunk/src/osm-gps-map.h

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

revision 55 by harbaum, Thu Aug 13 12:01:52 2009 UTC revision 92 by harbaum, Wed Sep 2 11:10:56 2009 UTC
# Line 25  Line 25 
25  #ifndef _OSM_GPS_MAP_H_  #ifndef _OSM_GPS_MAP_H_
26  #define _OSM_GPS_MAP_H_  #define _OSM_GPS_MAP_H_
27    
28    #include "config.h"
29    
30  #include <glib.h>  #include <glib.h>
31  #include <glib-object.h>  #include <glib-object.h>
32  #include <gtk/gtk.h>  #include <gtk/gtk.h>
# Line 63  typedef enum { Line 65  typedef enum {
65      OSM_GPS_MAP_SOURCE_NULL,      OSM_GPS_MAP_SOURCE_NULL,
66      OSM_GPS_MAP_SOURCE_OPENSTREETMAP,      OSM_GPS_MAP_SOURCE_OPENSTREETMAP,
67      OSM_GPS_MAP_SOURCE_OPENSTREETMAP_RENDERER,      OSM_GPS_MAP_SOURCE_OPENSTREETMAP_RENDERER,
68      OSM_GPS_MAP_SOURCE_OPENAERIALMAP,      OSM_GPS_MAP_SOURCE_OPENCYCLEMAP,
69      OSM_GPS_MAP_SOURCE_MAPS_FOR_FREE,      OSM_GPS_MAP_SOURCE_OSMC_TRAILS,
70      OSM_GPS_MAP_SOURCE_GOOGLE_STREET,      OSM_GPS_MAP_SOURCE_GOOGLE_STREET,
71      OSM_GPS_MAP_SOURCE_GOOGLE_SATELLITE,      OSM_GPS_MAP_SOURCE_GOOGLE_SATELLITE,
     OSM_GPS_MAP_SOURCE_GOOGLE_HYBRID,  
72      OSM_GPS_MAP_SOURCE_VIRTUAL_EARTH_STREET,      OSM_GPS_MAP_SOURCE_VIRTUAL_EARTH_STREET,
73      OSM_GPS_MAP_SOURCE_VIRTUAL_EARTH_SATELLITE,      OSM_GPS_MAP_SOURCE_VIRTUAL_EARTH_SATELLITE,
74      OSM_GPS_MAP_SOURCE_VIRTUAL_EARTH_HYBRID,      OSM_GPS_MAP_SOURCE_VIRTUAL_EARTH_HYBRID,
75      OSM_GPS_MAP_SOURCE_YAHOO_STREET,  
76      OSM_GPS_MAP_SOURCE_YAHOO_SATELLITE,      /* entries below are currently unusable */
77      OSM_GPS_MAP_SOURCE_YAHOO_HYBRID      OSM_GPS_MAP_SOURCE_MAPS_FOR_FREE,    /* not enough details */
78        OSM_GPS_MAP_SOURCE_GOOGLE_HYBRID,    /* disabled by google */
79        OSM_GPS_MAP_SOURCE_YAHOO_STREET,     /* no implemented yet */
80        OSM_GPS_MAP_SOURCE_YAHOO_SATELLITE,  /* no implemented yet */
81        OSM_GPS_MAP_SOURCE_YAHOO_HYBRID      /* no implemented yet */
82  } OsmGpsMapSource_t;  } OsmGpsMapSource_t;
83    
84    #define OSM_GPS_MAP_SOURCE_LAST  (OSM_GPS_MAP_SOURCE_VIRTUAL_EARTH_HYBRID)
85    
86    typedef struct {
87        gint x, y, w, h;
88    } OsmGpsMapRect_t;
89    
90    typedef enum {
91        OSD_NONE = 0,
92        OSD_BG,
93        OSD_UP,
94        OSD_DOWN,
95        OSD_LEFT,
96        OSD_RIGHT,
97        OSD_IN,
98        OSD_OUT,
99        OSD_CUSTOM   // first custom buttom
100    } osd_button_t;
101    
102    typedef void (*OsmGpsMapOsdCallback)(osd_button_t but, gpointer data);
103    #define OSM_GPS_MAP_OSD_CALLBACK(f) ((OsmGpsMapOsdCallback) (f))
104    
105    /* the osd structure mainly contains various callbacks */
106    /* required to draw and update the OSD */
107    typedef struct osm_gps_map_osd_s {
108        GtkWidget *widget;   // the main map widget (to get its stlye info)
109    
110        void(*render)(struct osm_gps_map_osd_s *);
111        void(*draw)(struct osm_gps_map_osd_s *, GdkDrawable *);
112        osd_button_t(*check)(struct osm_gps_map_osd_s *,gint, gint);       /* check if x/y lies within OSD */
113        gboolean(*busy)(struct osm_gps_map_osd_s *);
114        void(*free)(struct osm_gps_map_osd_s *);
115    
116        OsmGpsMapOsdCallback cb;
117        gpointer data;
118    
119        gpointer priv;
120    } osm_gps_map_osd_t;
121    
122    typedef void (*OsmGpsMapBalloonCallback)(cairo_t *, OsmGpsMapRect_t *rect,
123                                             gpointer data);
124    #define OSM_GPS_MAP_BALLOON_CALLBACK(f) ((OsmGpsMapBalloonCallback) (f))
125    
126  GType osm_gps_map_get_type (void) G_GNUC_CONST;  GType osm_gps_map_get_type (void) G_GNUC_CONST;
127    
128  const char* osm_gps_map_source_get_friendly_name(OsmGpsMapSource_t source);  const char* osm_gps_map_source_get_friendly_name(OsmGpsMapSource_t source);
# Line 94  void osm_gps_map_clear_tracks (OsmGpsMap Line 141  void osm_gps_map_clear_tracks (OsmGpsMap
141  void osm_gps_map_add_image (OsmGpsMap *map, float latitude, float longitude, GdkPixbuf *image);  void osm_gps_map_add_image (OsmGpsMap *map, float latitude, float longitude, GdkPixbuf *image);
142  gboolean osm_gps_map_remove_image (OsmGpsMap *map, GdkPixbuf *image);  gboolean osm_gps_map_remove_image (OsmGpsMap *map, GdkPixbuf *image);
143  void osm_gps_map_clear_images (OsmGpsMap *map);  void osm_gps_map_clear_images (OsmGpsMap *map);
 void osm_gps_map_osd_speed (OsmGpsMap *map, float speed);  
144  void osm_gps_map_draw_gps (OsmGpsMap *map, float latitude, float longitude, float heading);  void osm_gps_map_draw_gps (OsmGpsMap *map, float latitude, float longitude, float heading);
145  void osm_gps_map_clear_gps (OsmGpsMap *map);  void osm_gps_map_clear_gps (OsmGpsMap *map);
146  coord_t osm_gps_map_get_co_ordinates (OsmGpsMap *map, int pixel_x, int pixel_y);  coord_t osm_gps_map_get_co_ordinates (OsmGpsMap *map, int pixel_x, int pixel_y);
# Line 107  void osm_gps_map_geographic_to_screen (O Line 153  void osm_gps_map_geographic_to_screen (O
153                                         gint *pixel_x, gint *pixel_y);                                         gint *pixel_x, gint *pixel_y);
154  void osm_gps_map_scroll (OsmGpsMap *map, gint dx, gint dy);  void osm_gps_map_scroll (OsmGpsMap *map, gint dx, gint dy);
155  float osm_gps_map_get_scale(OsmGpsMap *map);  float osm_gps_map_get_scale(OsmGpsMap *map);
156    #ifdef ENABLE_BALLOON
157    void osm_gps_map_draw_balloon (OsmGpsMap *map, float latitude, float longitude, OsmGpsMapBalloonCallback cb, gpointer data);
158    void osm_gps_map_clear_balloon (OsmGpsMap *map);
159    #endif
160    #ifdef ENABLE_OSD
161    void osm_gps_map_register_osd(OsmGpsMap *map, osm_gps_map_osd_t *osd);
162    void osm_gps_map_redraw (OsmGpsMap *map);
163    osm_gps_map_osd_t *osm_gps_map_osd_get(OsmGpsMap *map);
164    void osm_gps_map_repaint (OsmGpsMap *map);
165    #endif
166    
167    
168  G_END_DECLS  G_END_DECLS
169    

Legend:
Removed from v.55  
changed lines
  Added in v.92