148 ot->
name =
"Copy Data Path";
149 ot->
idname =
"UI_OT_copy_data_path_button";
150 ot->
description =
"Copy the RNA data path for this property to the clipboard";
224 ot->
name =
"Copy as New Driver";
225 ot->
idname =
"UI_OT_copy_as_driver_button";
227 "Create a new driver with this property as input, and copy it to the "
228 "clipboard. Use Paste Driver to add it to the target property, or Paste "
229 "Driver Variables to extend an existing driver";
280 ot->
name =
"Copy Python Command";
281 ot->
idname =
"UI_OT_copy_python_command_button";
282 ot->
description =
"Copy the Python command matching this button";
352 ot->
name =
"Reset to Default Value";
353 ot->
idname =
"UI_OT_reset_default_button";
354 ot->
description =
"Reset this property's value to its default value";
413 ot->
name =
"Assign Value as Default";
414 ot->
idname =
"UI_OT_assign_default_button";
415 ot->
description =
"Set this property's current value as the new default";
454 ot->
name =
"Unset Property";
455 ot->
idname =
"UI_OT_unset_property_button";
456 ot->
description =
"Clear the property and use default or generated value in operators";
487 "'No-Operation', place holder preventing automatic override to ever affect the property"},
492 "Completely replace value from linked data by local one"},
497 "Store difference to linked data value"},
502 "Store factor to linked data value (useful e.g. for scale)"},
591 ot->
name =
"Define Override Type";
592 ot->
idname =
"UI_OT_override_type_set_button";
593 ot->
description =
"Create an override operation, or set the type of an existing one";
610 "Type of override operation");
652 BLI_assert(0 &&
"Failed to create matching source (linked data) RNA pointer");
656 if (!
all && index != -1) {
661 oprop,
NULL,
NULL, index, index,
false, &is_strict_find);
663 if (!is_strict_find) {
696 ot->
name =
"Remove Override";
697 ot->
idname =
"UI_OT_override_remove_button";
717 #define NOT_NULL(assignment) ((assignment) != NULL)
718 #define NOT_RNA_NULL(assignment) ((assignment).data != NULL)
739 bool *r_use_path_from_id,
742 *r_use_path_from_id =
false;
745 char *path_from_bone =
NULL;
747 bool ensure_list_items_contain_prop =
false;
777 if (idpath ==
NULL) {
808 if (
STREQ(prop_id,
"lock")) {
815 ensure_list_items_contain_prop =
true;
830 *r_path = path_from_bone;
859 bNode *node_data = link->ptr.data;
861 if (node_data->
type !=
node->type) {
876 *r_use_path_from_id =
true;
900 (
GS(id_data->name) != id_code)) {
926 if (
STREQ(prop_id,
"lock")) {
933 ensure_list_items_contain_prop =
true;
936 return (*r_path !=
NULL);
942 if (ensure_list_items_contain_prop) {
945 if ((
ptr->
type != link->ptr.type) &&
968 bool success =
false;
977 bool use_path_from_id;
983 if (link->ptr.data !=
ptr.
data) {
984 if (use_path_from_id) {
1005 if (lprop == prop) {
1046 ot->
name =
"Copy to Selected";
1047 ot->
idname =
"UI_OT_copy_to_selected_button";
1048 ot->
description =
"Copy property from this object to selected objects or bones";
1080 if (bone_name[0] !=
'\0') {
1088 if (target_type ==
NULL) {
1096 if (id_type ==
ID_OB) {
1112 const bool reveal_hidden =
true;
1167 if (str_ptr != str_buf) {
1196 ot->
name =
"Jump to Target";
1197 ot->
idname =
"UI_OT_jump_to_target_button";
1220 typedef struct uiEditSourceStore {
1223 } uiEditSourceStore;
1225 typedef struct uiEditSourceButStore {
1227 int py_dbg_line_number;
1228 } uiEditSourceButStore;
1231 static struct uiEditSourceStore *ui_editsource_info =
NULL;
1235 return (ui_editsource_info !=
NULL);
1238 static void ui_editsource_active_but_set(
uiBut *but)
1242 ui_editsource_info =
MEM_callocN(
sizeof(uiEditSourceStore), __func__);
1243 memcpy(&ui_editsource_info->but_orig, but,
sizeof(
uiBut));
1248 static void ui_editsource_active_but_clear(
void)
1252 ui_editsource_info =
NULL;
1255 static bool ui_editsource_uibut_match(
uiBut *but_a,
uiBut *but_b)
1258 printf(
"matching buttons: '%s' == '%s'\n", but_a->
drawstr, but_b->
drawstr);
1277 struct uiEditSourceButStore *but_store =
MEM_callocN(
sizeof(uiEditSourceButStore), __func__);
1280 int line_number = -1;
1283 printf(
"comparing buttons: '%s' == '%s'\n", but->
drawstr, ui_editsource_info->but_orig.drawstr);
1288 if (line_number != -1) {
1289 BLI_strncpy(but_store->py_dbg_fn, fn,
sizeof(but_store->py_dbg_fn));
1290 but_store->py_dbg_line_number = line_number;
1293 but_store->py_dbg_fn[0] =
'\0';
1294 but_store->py_dbg_line_number = -1;
1306 uiEditSourceButStore *but_store =
BLI_ghash_lookup(ui_editsource_info->hash, old_but);
1313 static int editsource_text_edit(
bContext *
C,
1322 printf(
"%s:%d\n", filepath, line);
1325 if (text_iter->filepath &&
BLI_path_cmp(text_iter->filepath, filepath) == 0) {
1368 struct uiEditSourceButStore *but_store =
NULL;
1379 ui_editsource_active_but_set(but);
1392 if (but_key && ui_editsource_uibut_match(&ui_editsource_info->but_orig, but_key)) {
1399 if (but_store->py_dbg_line_number != -1) {
1400 ret = editsource_text_edit(
C, op, but_store->py_dbg_fn, but_store->py_dbg_line_number);
1404 op->
reports,
RPT_ERROR,
"Active button is not from a script, cannot edit source");
1413 ui_editsource_active_but_clear();
1427 ot->
name =
"Edit Source";
1429 ot->
description =
"Edit UI source code of the active button";
1432 ot->
exec = editsource_exec;
1447 static void edittranslation_find_po_file(
const char *root,
1450 const size_t maxlen)
1464 const char *tc =
NULL;
1468 tc = strchr(uilng,
'_');
1471 if (szt <
sizeof(tstr)) {
1477 tc = strchr(uilng,
'@');
1483 strcat(tstr,
".po");
1504 const char *root =
U.i18ndir;
1521 "Please set your Preferences' 'Translation Branches "
1522 "Directory' path to a valid directory");
1529 "Could not find operator '%s'! Please enable ui_translate add-on "
1530 "in the User Preferences",
1535 edittranslation_find_po_file(root, uilng, popath,
FILE_MAX);
1537 if (popath[0] ==
'\0') {
1539 op->
reports,
RPT_ERROR,
"No valid po found for language '%s' under %s", uilng, root);
1614 ot->
name =
"Edit Translation";
1615 ot->
idname =
"UI_OT_edittranslation_init";
1616 ot->
description =
"Edit i18n in current language for the active button";
1619 ot->
exec = edittranslation_exec;
1642 ot->
name =
"Reload Translation";
1643 ot->
idname =
"UI_OT_reloadtranslation";
1664 if (region ==
NULL) {
1665 region = region_prev;
1668 if (region ==
NULL) {
1685 void *but_optype = but->
optype;
1689 but->
optype = but_optype;
1698 ot->
name =
"Press Button";
1699 ot->
idname =
"UI_OT_button_execute";
1727 ot->
name =
"Clear Button String";
1728 ot->
idname =
"UI_OT_button_string_clear";
1745 const char **
UNUSED(r_tooltip))
1793 if (color_len == 4) {
void CTX_wm_region_set(bContext *C, struct ARegion *region)
PointerRNA CTX_data_pointer_get_type_silent(const bContext *C, const char *member, StructRNA *type)
PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct bScreen * CTX_wm_screen(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
struct SpaceImage * CTX_wm_space_image(const bContext *C)
ListBase CTX_data_collection_get(const bContext *C, const char *member)
struct Main * CTX_data_main(const bContext *C)
struct wmWindow * CTX_wm_window(const bContext *C)
struct Base * BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob)
struct IDOverrideLibraryPropertyOperation * BKE_lib_override_library_property_operation_get(struct IDOverrideLibraryProperty *override_property, const short operation, const char *subitem_refname, const char *subitem_locname, const int subitem_refindex, const int subitem_locindex, const bool strict, bool *r_strict, bool *r_created)
struct IDOverrideLibraryPropertyOperation * BKE_lib_override_library_property_operation_find(struct IDOverrideLibraryProperty *override_property, const char *subitem_refname, const char *subitem_locname, const int subitem_refindex, const int subitem_locindex, const bool strict, bool *r_strict)
void BKE_lib_override_library_property_operation_delete(struct IDOverrideLibraryProperty *override_property, struct IDOverrideLibraryPropertyOperation *override_property_operation)
void BKE_lib_override_library_property_delete(struct IDOverrideLibrary *override, struct IDOverrideLibraryProperty *override_property)
const char * BKE_main_blendfile_path(const struct Main *bmain) ATTR_NONNULL()
bool nodeFindNode(struct bNodeTree *ntree, struct bNodeSocket *sock, struct bNode **r_node, int *r_sockindex)
void BKE_report(ReportList *reports, ReportType type, const char *message)
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
struct ARegion * BKE_area_find_region_type(const struct ScrArea *area, int type)
struct ScrArea struct ScrArea * BKE_screen_find_big_area(struct bScreen *screen, const int spacetype, const short min)
struct ARegion * BKE_screen_find_region_xy(struct bScreen *screen, const int regiontype, int x, int y) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
struct Text * BKE_text_load(struct Main *bmain, const char *file, const char *relpath)
void txt_move_toline(struct Text *text, unsigned int line, const bool sel)
void BLF_cache_clear(void)
bool BLI_is_file(const char *path) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
bool BLI_is_dir(const char *path) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
BLI_INLINE void * BLI_ghashIterator_getKey(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
void BLI_ghashIterator_step(GHashIterator *ghi)
BLI_INLINE bool BLI_ghashIterator_done(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
BLI_INLINE void * BLI_ghashIterator_getValue(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
bool BLI_ghash_remove(GHash *gh, const void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
void BLI_ghash_insert(GHash *gh, void *key, void *val)
void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
GHash * BLI_ghash_ptr_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void BLI_ghashIterator_init(GHashIterator *ghi, GHash *gh)
void * BLI_ghash_lookup(GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
MINLINE void srgb_to_linearrgb_v3_v3(float linear[3], const float srgb[3])
void BLI_path_append(char *__restrict dst, const size_t maxlen, const char *__restrict file) ATTR_NONNULL()
void BLI_join_dirfile(char *__restrict dst, const size_t maxlen, const char *__restrict dir, const char *__restrict file) ATTR_NONNULL()
bool BLI_rctf_compare(const struct rctf *rect_a, const struct rctf *rect_b, const float limit)
size_t size_t char * BLI_sprintfN(const char *__restrict format,...) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_PRINTF_FORMAT(1
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
#define STREQLEN(a, b, n)
const char * BLT_lang_get(void)
void BLT_lang_set(const char *)
#define ID_CHECK_UNDO(id)
#define ID_IS_LINKED(_id)
#define ID_IS_OVERRIDE_LIBRARY_TEMPLATE(_id)
@ IDOVERRIDE_LIBRARY_OP_MULTIPLY
@ IDOVERRIDE_LIBRARY_OP_NOOP
@ IDOVERRIDE_LIBRARY_OP_ADD
@ IDOVERRIDE_LIBRARY_OP_REPLACE
Object is a sort of wrapper for general info.
#define OB_DATA_SUPPORT_ID(_id_type)
bool ED_object_jump_to_object(struct bContext *C, struct Object *ob, const bool reveal_hidden)
bool ED_object_jump_to_bone(struct bContext *C, struct Object *ob, const char *bone_name, const bool reveal_hidden)
struct Base * ED_object_find_first_by_data_id(struct ViewLayer *view_layer, struct ID *id)
void ED_imapaint_bucket_fill(struct bContext *C, float color[3], struct wmOperator *op, const int mouse[2])
void ED_region_do_layout(struct bContext *C, struct ARegion *region)
bool ED_operator_regionactive(struct bContext *C)
void ED_region_do_draw(struct bContext *C, struct ARegion *region)
void ED_region_tag_redraw(struct ARegion *region)
void ED_text_scroll_to_cursor(struct SpaceText *st, struct ARegion *region, bool center)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
void IMB_colormanagement_scene_linear_to_srgb_v3(float pixel[3])
void IMB_colormanagement_srgb_to_scene_linear_v3(float pixel[3])
Read Guarded memory(de)allocation.
@ RNA_OVERRIDE_STATUS_OVERRIDABLE
@ RNA_OVERRIDE_STATUS_OVERRIDDEN
struct PointerRNA * UI_but_operator_ptr_get(uiBut *but)
void UI_screen_free_active_but(const struct bContext *C, struct bScreen *screen)
uiBut * UI_context_active_but_get(const struct bContext *C)
bool UI_but_active_drop_color(struct bContext *C)
void UI_context_active_but_prop_handle(struct bContext *C)
void UI_editsource_but_replace(const uiBut *old_but, uiBut *new_but)
#define EDTSRC_I18N_OP_NAME
void UI_editsource_active_but_test(uiBut *but)
bool UI_editsource_enable_check(void)
@ BUT_GET_RNASTRUCT_IDENTIFIER
@ BUT_GET_RNAPROP_IDENTIFIER
@ BUT_GET_RNA_LABEL_CONTEXT
@ BUT_GET_RNAENUM_IDENTIFIER
void UI_but_execute(const struct bContext *C, struct ARegion *region, uiBut *but)
uiBut * UI_context_active_but_prop_get(const struct bContext *C, struct PointerRNA *r_ptr, struct PropertyRNA **r_prop, int *r_index)
void UI_reinit_font(void)
uiBut * UI_context_active_but_get_respect_menu(const struct bContext *C)
void UI_but_string_info_get(struct bContext *C, uiBut *but,...) ATTR_SENTINEL(0)
void ANIM_copy_as_driver(struct ID *target_id, const char *target_path, const char *var_name)
wmKeyMap * eyedropper_modal_keymap(wmKeyConfig *keyconf)
wmKeyMap * eyedropper_colorband_modal_keymap(wmKeyConfig *keyconf)
void UI_OT_eyedropper_color(wmOperatorType *ot)
void UI_OT_eyedropper_colorramp_point(wmOperatorType *ot)
void UI_OT_eyedropper_colorramp(wmOperatorType *ot)
void UI_OT_eyedropper_id(wmOperatorType *ot)
void UI_OT_eyedropper_depth(wmOperatorType *ot)
void UI_OT_eyedropper_driver(wmOperatorType *ot)
void UI_OT_eyedropper_gpencil_color(wmOperatorType *ot)
void ui_but_active_string_clear_and_exit(bContext *C, uiBut *but)
uiBut * ui_region_find_active_but(struct ARegion *region) ATTR_WARN_UNUSED_RESULT
void ui_rna_collection_search_update_fn(const struct bContext *C, void *arg, const char *str, uiSearchItems *items, const bool is_first)
static int unset_property_button_exec(bContext *C, wmOperator *UNUSED(op))
static void UI_OT_override_type_set_button(wmOperatorType *ot)
static int copy_to_selected_button_exec(bContext *C, wmOperator *op)
static bool override_type_set_button_poll(bContext *C)
static void UI_OT_unset_property_button(wmOperatorType *ot)
static void UI_OT_button_execute(wmOperatorType *ot)
static bool override_remove_button_poll(bContext *C)
static int override_type_set_button_exec(bContext *C, wmOperator *op)
static bool reset_default_button_poll(bContext *C)
static int operator_button_property_finish(bContext *C, PointerRNA *ptr, PropertyRNA *prop)
static int ui_button_press_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static void UI_OT_copy_data_path_button(wmOperatorType *ot)
static void UI_OT_reloadtranslation(wmOperatorType *ot)
static int reset_default_button_exec(bContext *C, wmOperator *op)
bool ui_jump_to_target_button_poll(bContext *C)
static bool copy_data_path_button_poll(bContext *C)
static void UI_OT_copy_python_command_button(wmOperatorType *ot)
static void UI_OT_assign_default_button(wmOperatorType *ot)
@ UIOverride_Type_Replace
@ UIOverride_Type_Difference
static int copy_python_command_button_exec(bContext *C, wmOperator *UNUSED(op))
void ED_operatortypes_ui(void)
#define NOT_NULL(assignment)
static int override_type_set_button_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int reloadtranslation_exec(bContext *UNUSED(C), wmOperator *UNUSED(op))
static bool copy_to_selected_button_poll(bContext *C)
static bool copy_to_selected_button(bContext *C, bool all, bool poll)
bool UI_drop_color_poll(struct bContext *C, wmDrag *drag, const wmEvent *UNUSED(event), const char **UNUSED(r_tooltip))
static void UI_OT_jump_to_target_button(wmOperatorType *ot)
static void UI_OT_copy_to_selected_button(wmOperatorType *ot)
static int override_remove_button_exec(bContext *C, wmOperator *op)
void UI_drop_color_copy(wmDrag *drag, wmDropBox *drop)
static int jump_to_target_button_exec(bContext *C, wmOperator *UNUSED(op))
bool UI_context_copy_to_selected_list(bContext *C, PointerRNA *ptr, PropertyRNA *prop, ListBase *r_lb, bool *r_use_path_from_id, char **r_path)
static bool jump_to_target_button(bContext *C, bool poll)
static void UI_OT_override_remove_button(wmOperatorType *ot)
static void UI_OT_button_string_clear(wmOperatorType *ot)
#define NOT_RNA_NULL(assignment)
static bool copy_python_command_button_poll(bContext *C)
static int assign_default_button_exec(bContext *C, wmOperator *UNUSED(op))
static int copy_data_path_button_exec(bContext *C, wmOperator *op)
static void UI_OT_reset_default_button(wmOperatorType *ot)
void ED_keymap_ui(wmKeyConfig *keyconf)
User Interface Keymap.
static bool assign_default_button_poll(bContext *C)
static void UI_OT_copy_as_driver_button(wmOperatorType *ot)
static int drop_color_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static bool jump_to_target_ptr(bContext *C, PointerRNA ptr, const bool poll)
static EnumPropertyItem override_type_items[]
static int copy_as_driver_button_exec(bContext *C, wmOperator *op)
static bool copy_as_driver_button_poll(bContext *C)
static void UI_OT_drop_color(wmOperatorType *ot)
static void ui_context_selected_bones_via_pose(bContext *C, ListBase *r_lb)
static int button_string_clear_exec(bContext *C, wmOperator *UNUSED(op))
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static void area(int d1, int d2, int e1, int e2, float weights[2])
void PyC_FileAndNum_Safe(const char **r_filename, int *r_lineno)
char * RNA_path_resolve_from_type_to_property(PointerRNA *ptr, PropertyRNA *prop, const StructRNA *type)
bool RNA_property_array_check(PropertyRNA *prop)
bool RNA_struct_is_a(const StructRNA *type, const StructRNA *srna)
bool RNA_property_assign_default(PointerRNA *ptr, PropertyRNA *prop)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr)
const char * RNA_property_identifier(const PropertyRNA *prop)
bool RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index)
int RNA_property_array_dimension(PointerRNA *ptr, PropertyRNA *prop, int length[])
float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
PropertyType RNA_property_type(PropertyRNA *prop)
PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop)
void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values)
void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop)
char * RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop)
char * RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen, int *r_len)
char * RNA_path_from_struct_to_idproperty(PointerRNA *ptr, IDProperty *needle)
int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr)
void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
PropertyRNA * RNA_struct_type_find_property(StructRNA *srna, const char *identifier)
char * RNA_path_full_property_py_ex(Main *bmain, PointerRNA *ptr, PropertyRNA *prop, int index, bool use_fallback)
char * RNA_path_from_real_ID_to_property_index(Main *bmain, PointerRNA *ptr, PropertyRNA *prop, int index_dim, int index, ID **r_real_id)
bool RNA_pointer_is_null(const PointerRNA *ptr)
int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_is_idprop(const PropertyRNA *prop)
void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values)
PropertySubType RNA_property_subtype(PropertyRNA *prop)
bool RNA_path_resolve_property(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
char * RNA_path_full_struct_py(Main *bmain, struct PointerRNA *ptr)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values)
bool RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop_orig)
int RNA_enum_get(PointerRNA *ptr, const char *name)
void RNA_property_unset(PointerRNA *ptr, PropertyRNA *prop)
IDOverrideLibraryPropertyOperation * RNA_property_override_property_operation_get(Main *bmain, PointerRNA *ptr, PropertyRNA *prop, const short operation, const int index, const bool strict, bool *r_strict, bool *r_created)
IDOverrideLibraryProperty * RNA_property_override_property_find(Main *bmain, PointerRNA *ptr, PropertyRNA *prop, ID **r_owner_id)
eRNAOverrideStatus RNA_property_override_library_status(Main *bmain, PointerRNA *ptr, PropertyRNA *prop, const int index)
bool RNA_property_copy(Main *bmain, PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_float_color(StructOrFunctionRNA *cont_, const char *identifier, int len, const float *default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
StructRNA RNA_PropertyGroup
IDOverrideLibrary * override_library
uiButSearchUpdateFn items_update_fn
struct wmOperatorType * optype
char drawstr[UI_MAX_DRAW_STR]
struct PropertyRNA * rnaprop
struct PointerRNA rnapoin
PropertyRNA * search_prop
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
__forceinline bool all(const avxb &b)
void WM_draw_region_viewport_unbind(ARegion *region)
void WM_draw_region_viewport_bind(ARegion *region)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
int WM_operator_name_call_ptr(bContext *C, wmOperatorType *ot, short context, PointerRNA *properties)
void WM_event_add_mousemove(wmWindow *win)
wmKeyMap * WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)
void WM_operatortype_append(void(*opfunc)(wmOperatorType *))
int WM_menu_invoke_ex(bContext *C, wmOperator *op, int opcontext)
char * WM_operator_pystring_ex(bContext *C, wmOperator *op, const bool all_args, const bool macro_args, wmOperatorType *ot, PointerRNA *opptr)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
void WM_clipboard_text_set(const char *buf, bool selection)