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;
}
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);
+
};
/**
}
}
+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)
{
#define NAVIT_MAPSET_H
/* prototypes */
+enum attr_type;
struct attr;
+struct attr_iter;
struct item;
struct map;
struct mapset;
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);
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
-