diff options
Diffstat (limited to 'navit')
-rw-r--r-- | navit/map.c | 2 | ||||
-rw-r--r-- | navit/map.h | 3 | ||||
-rw-r--r-- | navit/mapset.c | 19 | ||||
-rw-r--r-- | navit/mapset.h | 6 |
4 files changed, 28 insertions, 2 deletions
diff --git a/navit/map.c b/navit/map.c index ea6aace72..b7b2b7b91 100644 --- a/navit/map.c +++ b/navit/map.c @@ -146,6 +146,8 @@ int map_set_attr(struct map *this_, struct attr *attr) { this_->attrs=attr_generic_set_attr(this_->attrs, attr); + if (this_->meth.map_set_attr) + this_->meth.map_set_attr(this_->priv, attr); callback_list_call_attr_2(this_->attr_cbl, attr->type, this_, attr); return 1; } diff --git a/navit/map.h b/navit/map.h index b43313b58..dda18e16c 100644 --- a/navit/map.h +++ b/navit/map.h @@ -75,6 +75,9 @@ struct map_methods { void (*map_search_destroy)(struct map_search_priv *ms); /**< Function to destroy a map search struct */ struct item * (*map_search_get_item)(struct map_search_priv *ms); /**< Function to get the next item of a search on the map */ struct item * (*map_rect_create_item)(struct map_rect_priv *mr, enum item_type type); /**< Function to create a new item in the map */ + int (*map_get_attr)(struct map_priv *priv, enum attr_type type, struct attr *attr); + int (*map_set_attr)(struct map_priv *priv, struct attr *attr); + }; /** diff --git a/navit/mapset.c b/navit/mapset.c index e1a8f61ea..ba5560b86 100644 --- a/navit/mapset.c +++ b/navit/mapset.c @@ -77,6 +77,25 @@ mapset_add_attr(struct mapset *ms, struct attr *attr) } } +int +mapset_get_attr(struct mapset *ms, enum attr_type type, struct attr *attr, struct attr_iter *iter) +{ + GList *map; + map=ms->maps; + switch (type) { + case attr_map: + if (map) { + attr->u.map=map->data; + return 1; + } + break; + default: + break; + } + return 0; +} + + #if 0 static void mapset_maps_free(struct mapset *ms) { diff --git a/navit/mapset.h b/navit/mapset.h index 0e19010bd..21d5b2d6e 100644 --- a/navit/mapset.h +++ b/navit/mapset.h @@ -21,7 +21,9 @@ #define NAVIT_MAPSET_H /* prototypes */ +enum attr_type; struct attr; +struct attr_iter; struct item; struct map; struct mapset; @@ -29,6 +31,7 @@ struct mapset_handle; struct mapset_search; struct mapset *mapset_new(struct attr *parent, struct attr **attrs); int mapset_add_attr(struct mapset *ms, struct attr *attr); +int mapset_get_attr(struct mapset *ms, enum attr_type type, struct attr *attr, struct attr_iter *iter); void mapset_destroy(struct mapset *ms); struct mapset_handle *mapset_open(struct mapset *ms); struct map *mapset_next(struct mapset_handle *msh, int active); @@ -36,6 +39,5 @@ void mapset_close(struct mapset_handle *msh); struct mapset_search *mapset_search_new(struct mapset *ms, struct item *item, struct attr *search_attr, int partial); struct item *mapset_search_get_item(struct mapset_search *this); void mapset_search_destroy(struct mapset_search *this); - +/* end of prototypes */ #endif - |