diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_context.h')
-rw-r--r-- | source/blender/blenkernel/BKE_context.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h index ae3fdb91edf..f6d41190c5a 100644 --- a/source/blender/blenkernel/BKE_context.h +++ b/source/blender/blenkernel/BKE_context.h @@ -167,14 +167,20 @@ void CTX_wm_menu_set(bContext *C, struct ARegion *menu); /* Data Context - listbases consist of CollectionPointerLink items and must be - freed with BLI_freelistN! + freed with BLI_freelistN! - the dir listbase consits of LinkData items */ +/* data type, needed so we can tell between a NULL pointer and an empty list */ +enum { + CTX_DATA_TYPE_POINTER = 0, + CTX_DATA_TYPE_COLLECTION +}; + PointerRNA CTX_data_pointer_get(const bContext *C, const char *member); PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type); ListBase CTX_data_collection_get(const bContext *C, const char *member); ListBase CTX_data_dir_get(const bContext *C); -int CTX_data_get(const bContext *C, const char *member, PointerRNA *r_ptr, ListBase *r_lb); +int CTX_data_get(const bContext *C, const char *member, PointerRNA *r_ptr, ListBase *r_lb, short *r_type); void CTX_data_id_pointer_set(bContextDataResult *result, struct ID *id); void CTX_data_pointer_set(bContextDataResult *result, struct ID *id, StructRNA *type, void *data); @@ -184,6 +190,9 @@ void CTX_data_list_add(bContextDataResult *result, struct ID *id, StructRNA *typ void CTX_data_dir_set(bContextDataResult *result, const char **member); +void CTX_data_type_set(struct bContextDataResult *result, short type); +short CTX_data_type_get(struct bContextDataResult *result); + int CTX_data_equals(const char *member, const char *str); int CTX_data_dir(const char *member); |