summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2013-05-26 13:23:28 +0000
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2013-05-26 13:23:28 +0000
commit8db949f38a84ddbac849bea5ba486d96fd4b809d (patch)
tree554c25f23a3f3522c4fe9ab868693aa53055a310
parenta371092c9d0d43bf08899fd8b4d6b3a7b485fc3e (diff)
downloadnavit-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.c10
-rw-r--r--navit/navit/xmlconfig.h1
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);