diff options
Diffstat (limited to 'source/blender/makesrna/intern/rna_animation_api.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_animation_api.c | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/source/blender/makesrna/intern/rna_animation_api.c b/source/blender/makesrna/intern/rna_animation_api.c index 4f1a94d62c5..714a74ec424 100644 --- a/source/blender/makesrna/intern/rna_animation_api.c +++ b/source/blender/makesrna/intern/rna_animation_api.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or @@ -41,16 +39,43 @@ #include "DNA_object_types.h" #include "DNA_scene_types.h" + #ifdef RNA_RUNTIME -#include "BKE_animsys.h" +#include "BKE_context.h" +#include "BKE_report.h" + +#include "ED_keyframing.h" + +static void rna_KeyingSet_context_refresh(KeyingSet *ks, bContext *C, ReportList *reports) +{ + // TODO: enable access to providing a list of overrides (dsources)? + int success = ANIM_validate_keyingset(C, NULL, ks); + + if (success != 0) { + switch (success) { + case MODIFYKEY_INVALID_CONTEXT: + BKE_report(reports, RPT_ERROR, "Invalid context for Keying Set"); + break; + + case MODIFYKEY_MISSING_TYPEINFO: + BKE_report(reports, RPT_ERROR, "Incomplete built-in Keying Set. Appears to be missing type info"); + break; + } + } +} #else void RNA_api_keyingset(StructRNA *srna) { -// FunctionRNA *func; -// PropertyRNA *parm; + FunctionRNA *func; + //PropertyRNA *parm; + + /* validate relative Keying Set (used to ensure paths are ok for context) */ + func= RNA_def_function(srna, "refresh", "rna_KeyingSet_context_refresh"); + RNA_def_function_ui_description(func, "Refresh Keying Set to ensure that it is valid for the current context. Call before each use of one"); + RNA_def_function_flag(func, FUNC_USE_CONTEXT|FUNC_USE_REPORTS); } #endif |