86 float cfra = anim_eval_context->
eval_time;
98 anim_eval_context, cfra);
119 if (but_iter != (
uiBut *)but_decorate &&
142 printf(
"Could not find button with matching property to decorate (%s.%s)\n",
148 const int flag = but_anim->
flag;
151 but->
icon = ICON_DECORATE_DRIVER;
154 but->
icon = ICON_DECORATE_KEYFRAME;
157 but->
icon = ICON_DECORATE_ANIMATE;
160 but->
icon = ICON_DECORATE_OVERRIDE;
163 but->
icon = ICON_DECORATE;
167 but->
flag = (but->
flag & ~flag_copy) | (flag & flag_copy);
174 bool driven, special;
196 bool driven, special;
238 printf(
"ERROR: create expression failed - button has no RNA info attached\n");
246 printf(
"ERROR: create expression failed - can't create expression for entire array\n");
258 printf(
"ERROR: create expression failed - invalid data-block for adding drivers (%p)\n",
id);
AnimationEvalContext BKE_animsys_eval_context_construct_at(const AnimationEvalContext *anim_eval_context, float eval_time)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
bool BKE_fcurve_is_empty(struct FCurve *fcu)
struct FCurve * BKE_fcurve_find_by_rna_context_ui(struct bContext *C, const struct PointerRNA *ptr, struct PropertyRNA *prop, int rnaindex, struct AnimData **r_animdata, struct bAction **r_action, bool *r_driven, bool *r_special)
void BKE_driver_invalidate_expression(struct ChannelDriver *driver, bool expr_changed, bool varname_changed)
float BKE_nla_tweakedit_remap(struct AnimData *adt, float cframe, short mode)
#define LISTBASE_CIRCULAR_BACKWARD_BEGIN(lb, lb_iter, lb_init)
#define LISTBASE_CIRCULAR_BACKWARD_END(lb, lb_iter, lb_init)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
char * BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL(1
void DEG_relations_tag_update(struct Main *bmain)
@ DRIVER_FCURVE_KEYFRAMES
Read Guarded memory(de)allocation.
@ UI_BUT_ANIMATED_CHANGED
#define UI_but_is_decorator(but)
FCurve * verify_driver_fcurve(ID *id, const char rna_path[], const int array_index, eDriverFCurveCreationMode creation_mode)
bool ui_but_rna_equals_ex(const uiBut *but, const PointerRNA *ptr, const PropertyRNA *prop, int index)
static FCurve * ui_but_get_fcurve(uiBut *but, AnimData **adt, bAction **action, bool *r_driven, bool *r_special)
bool ui_but_anim_expression_create(uiBut *but, const char *str)
void ui_but_anim_flag(uiBut *but, const AnimationEvalContext *anim_eval_context)
void ui_but_anim_autokey(bContext *C, uiBut *but, Scene *scene, float cfra)
void ui_but_anim_decorate_cb(bContext *C, void *arg_but, void *UNUSED(arg_dummy))
static uiBut * ui_but_anim_decorate_find_attached_button(uiButDecorator *but_decorate)
bool ui_but_anim_expression_get(uiBut *but, char *str, size_t maxlen)
void ui_but_anim_copy_driver(bContext *C)
void ui_but_anim_paste_driver(bContext *C)
void ui_but_anim_decorate_update_from_flag(uiButDecorator *decorator_but)
bool ui_but_anim_expression_set(uiBut *but, const char *str)
bool fcurve_is_changed(PointerRNA ptr, PropertyRNA *prop, FCurve *fcu, const AnimationEvalContext *anim_eval_context)
bool fcurve_frame_has_keyframe(const FCurve *fcu, float frame, short filter)
bool ED_autokeyframe_property(bContext *C, Scene *scene, PointerRNA *ptr, PropertyRNA *prop, int rnaindex, float cfra, const bool only_if_property_keyed)
void(* MEM_freeN)(void *vmemh)
const char * RNA_struct_identifier(const StructRNA *type)
bool RNA_property_array_check(PropertyRNA *prop)
const char * RNA_property_identifier(const PropertyRNA *prop)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
char * RNA_path_from_ID_to_property(const PointerRNA *ptr, PropertyRNA *prop)
struct PropertyRNA * rnaprop
struct PointerRNA rnapoin
struct uiHandleButtonData * active
struct PropertyRNA * rnaprop
struct PointerRNA rnapoin
int WM_operator_name_call_ptr(bContext *C, wmOperatorType *ot, wmOperatorCallContext context, PointerRNA *properties, const wmEvent *event)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
int WM_operator_name_call(bContext *C, const char *opstring, wmOperatorCallContext context, PointerRNA *properties, const wmEvent *event)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
void WM_operator_properties_free(PointerRNA *ptr)