diff options
author | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2013-05-26 13:23:28 +0000 |
---|---|---|
committer | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2013-05-26 13:23:28 +0000 |
commit | 8db949f38a84ddbac849bea5ba486d96fd4b809d (patch) | |
tree | 554c25f23a3f3522c4fe9ab868693aa53055a310 | |
parent | a371092c9d0d43bf08899fd8b4d6b3a7b485fc3e (diff) | |
download | navit-8db949f38a84ddbac849bea5ba486d96fd4b809d.tar.gz |
Add:Core:Split up navit_object_set_attr into two parts to allow to trigger callback indipendently
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@5515 ffa7fe5e-494d-0410-b361-a75ebd5db220
-rw-r--r-- | navit/navit/xmlconfig.c | 10 | ||||
-rw-r--r-- | navit/navit/xmlconfig.h | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/navit/navit/xmlconfig.c b/navit/navit/xmlconfig.c index e4c2b91ae..445db9443 100644 --- a/navit/navit/xmlconfig.c +++ b/navit/navit/xmlconfig.c @@ -1332,12 +1332,18 @@ navit_object_get_attr(struct navit_object *obj, enum attr_type type, struct attr return attr_generic_get_attr(obj->attrs, NULL, type, attr, iter); } +void +navit_object_callbacks(struct navit_object *obj, struct attr *attr) +{ + if (obj->attrs && obj->attrs[0] && obj->attrs[0]->type == attr_callback_list) + callback_list_call_attr_2(obj->attrs[0]->u.callback_list, attr->type, attr->u.data, 0); +} + int navit_object_set_attr(struct navit_object *obj, struct attr *attr) { obj->attrs=attr_generic_set_attr(obj->attrs, attr); - if (obj->attrs && obj->attrs[0] && obj->attrs[0]->type == attr_callback_list) - callback_list_call_attr_2(obj->attrs[0]->u.callback_list, attr->type, attr->u.data, 0); + navit_object_callbacks(obj, attr); return 1; } diff --git a/navit/navit/xmlconfig.h b/navit/navit/xmlconfig.h index e2e43813d..8a56e3783 100644 --- a/navit/navit/xmlconfig.h +++ b/navit/navit/xmlconfig.h @@ -70,6 +70,7 @@ void navit_object_unref(struct navit_object *obj); struct attr_iter * navit_object_attr_iter_new(void); void navit_object_attr_iter_destroy(struct attr_iter *iter); int navit_object_get_attr(struct navit_object *obj, enum attr_type type, struct attr *attr, struct attr_iter *iter); +void navit_object_callbacks(struct navit_object *obj, struct attr *attr); int navit_object_set_attr(struct navit_object *obj, struct attr *attr); int navit_object_add_attr(struct navit_object *obj, struct attr *attr); int navit_object_remove_attr(struct navit_object *obj, struct attr *attr); |