52 if ((ddr->
ptr.
data ==
nullptr) || (ddr->
prop ==
nullptr) ||
91 const int target_index = but->
rnaindex;
100 if (target_path && dst_path) {
106 target_path->c_str(),
134 switch (event->
val) {
140 const bool is_undo = ddr->
is_undo;
196 ot->name =
"Eyedropper Driver";
197 ot->idname =
"UI_OT_eyedropper_driver";
198 ot->description =
"Pick a property to use as a driver target";
216 "Method used to match target and driven properties");
wmWindow * CTX_wm_window(const bContext *C)
Main * CTX_data_main(const bContext *C)
ARegion * CTX_wm_region(const bContext *C)
void DEG_id_tag_update(ID *id, unsigned int flags)
void DEG_relations_tag_update(Main *bmain)
Read Guarded memory(de)allocation.
void UI_context_update_anim_flag(const bContext *C)
uiBut * UI_context_active_but_prop_get(const bContext *C, PointerRNA *r_ptr, PropertyRNA **r_prop, int *r_index)
void UI_context_active_but_clear(bContext *C, wmWindow *win, ARegion *region)
bool UI_but_flag_is_set(uiBut *but, int flag)
int ANIM_add_driver_with_target(ReportList *reports, ID *dst_id, const char dst_path[], int dst_index, ID *src_id, const char src_path[], int src_index, short flag, int driver_type, short mapping_type)
Main Driver Management API calls.
const EnumPropertyItem prop_driver_create_mapping_types[]
static void driverdropper_sample(bContext *C, wmOperator *op, const wmEvent *event)
static void driverdropper_cancel(bContext *C, wmOperator *op)
static bool driverdropper_init(bContext *C, wmOperator *op)
void UI_OT_eyedropper_driver(wmOperatorType *ot)
static void driverdropper_exit(bContext *C, wmOperator *op)
static bool driverdropper_poll(bContext *C)
static wmOperatorStatus driverdropper_modal(bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus driverdropper_exec(bContext *C, wmOperator *op)
static wmOperatorStatus driverdropper_invoke(bContext *C, wmOperator *op, const wmEvent *)
uiBut * eyedropper_get_property_button_under_mouse(bContext *C, const wmEvent *event)
@ EYE_MODAL_SAMPLE_CONFIRM
bool RNA_property_driver_editable(const PointerRNA *ptr, PropertyRNA *prop)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
std::optional< std::string > RNA_path_from_ID_to_property(const PointerRNA *ptr, PropertyRNA *prop)
struct ReportList * reports
void WM_cursor_modal_set(wmWindow *win, int val)
void WM_cursor_modal_restore(wmWindow *win)
wmEventHandler_Op * WM_event_add_modal_handler(bContext *C, wmOperator *op)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)