Blender
V3.3
|
#include "BLI_compiler_attrs.h"
Go to the source code of this file.
Classes | |
union | IDPropertyTemplate |
Macros | |
#define | IDP_Int(prop) ((prop)->data.val) |
#define | IDP_Array(prop) ((prop)->data.pointer) |
#define | IDP_Float(prop) (*(float *)&(prop)->data.val) |
#define | IDP_Double(prop) (*(double *)&(prop)->data.val) |
#define | IDP_String(prop) ((char *)(prop)->data.pointer) |
#define | IDP_IDPArray(prop) ((struct IDProperty *)(prop)->data.pointer) |
#define | IDP_Id(prop) ((ID *)(prop)->data.pointer) |
#define | IDP_BlendDataRead(reader, prop) IDP_BlendReadData_impl(reader, prop, __func__) |
Typedefs | |
typedef union IDPropertyTemplate | IDPropertyTemplate |
typedef void(* | IDPWalkFunc) (void *userData, struct IDProperty *idp) |
typedef void(* | IDPForeachPropertyCallback) (struct IDProperty *id_property, void *user_data) |
typedef enum eIDPropertyUIDataType | eIDPropertyUIDataType |
Enumerations | |
enum | eIDPropertyUIDataType { IDP_UI_DATA_TYPE_UNSUPPORTED = -1 , IDP_UI_DATA_TYPE_INT = 0 , IDP_UI_DATA_TYPE_FLOAT = 1 , IDP_UI_DATA_TYPE_STRING = 2 , IDP_UI_DATA_TYPE_ID = 3 } |
#define IDP_Array | ( | prop | ) | ((prop)->data.pointer) |
Definition at line 245 of file BKE_idprop.h.
#define IDP_BlendDataRead | ( | reader, | |
prop | |||
) | IDP_BlendReadData_impl(reader, prop, __func__) |
Definition at line 321 of file BKE_idprop.h.
Definition at line 270 of file BKE_idprop.h.
Definition at line 269 of file BKE_idprop.h.
Definition at line 273 of file BKE_idprop.h.
#define IDP_IDPArray | ( | prop | ) | ((struct IDProperty *)(prop)->data.pointer) |
Definition at line 272 of file BKE_idprop.h.
#define IDP_Int | ( | prop | ) | ((prop)->data.val) |
Definition at line 244 of file BKE_idprop.h.
#define IDP_String | ( | prop | ) | ((char *)(prop)->data.pointer) |
Definition at line 271 of file BKE_idprop.h.
typedef enum eIDPropertyUIDataType eIDPropertyUIDataType |
typedef void(* IDPForeachPropertyCallback) (struct IDProperty *id_property, void *user_data) |
Call a callback for each #IDproperty in the hierarchy under given root one (included).
Definition at line 295 of file BKE_idprop.h.
typedef union IDPropertyTemplate IDPropertyTemplate |
typedef void(* IDPWalkFunc) (void *userData, struct IDProperty *idp) |
Definition at line 90 of file BKE_idprop.h.
Definition at line 325 of file BKE_idprop.h.
bool IDP_AddToGroup | ( | struct IDProperty * | group, |
struct IDProperty * | prop | ||
) |
This function has a sanity check to make sure ID properties with the same name don't get added to the group.
The sanity check just means the property is not added to the group if another property exists with the same name; the client code using ID properties then needs to detect this (the function that adds new properties to groups, IDP_AddToGroup, returns false if a property can't be added to the group, and true if it can) and free the property.
Definition at line 631 of file idprop.c.
References BLI_addtail(), BLI_assert, IDProperty::data, IDPropertyData::group, IDP_GetPropertyFromGroup(), IDP_GROUP, IDProperty::len, IDProperty::name, NULL, and IDProperty::type.
Referenced by bc_set_IDPropertyMatrix(), BKE_keyconfig_pref_set_select_mouse(), cycles_property_int_set(), blender::bke::idprop::IDPGroupSerializer::entry_to_idprop(), IMB_metadata_set_field(), MOD_nodes_update_interface(), operator_last_properties_init_impl(), RNA_property_boolean_set(), RNA_property_boolean_set_array(), RNA_property_collection_add(), RNA_property_copy(), RNA_property_enum_set(), RNA_property_float_set(), RNA_property_float_set_array(), RNA_property_int_set(), RNA_property_int_set_array(), RNA_property_pointer_add(), RNA_property_string_set(), RNA_property_string_set_bytes(), shortcut_get_operator_property(), shortcut_property_from_rna(), texture_paint_image_from_view_exec(), ui_but_event_operator_string_from_menu(), ui_but_event_operator_string_from_panel(), ui_but_event_property_operator_string(), and version_geometry_nodes_add_attribute_input_settings().
void IDP_AppendArray | ( | struct IDProperty * | prop, |
struct IDProperty * | item | ||
) |
Definition at line 133 of file idprop.c.
References BLI_assert, IDP_IDPARRAY, IDP_ResizeIDPArray(), IDP_SetIndexArray(), IDProperty::len, and IDProperty::type.
Referenced by BPy_IDProperty_Map_ValidateAndCreate(), and RNA_property_collection_add().
void IDP_AssignID | ( | struct IDProperty * | prop, |
struct ID * | id, | ||
int | flag | ||
) |
Definition at line 452 of file idprop.c.
References BLI_assert, IDProperty::data, id, id_us_min(), id_us_plus(), IDP_Id, IDP_ID, LIB_ID_CREATE_NO_USER_REFCOUNT, NULL, IDPropertyData::pointer, and IDProperty::type.
Referenced by RNA_property_pointer_set().
void IDP_AssignString | ( | struct IDProperty * | prop, |
const char * | st, | ||
int | maxlen | ||
) |
Definition at line 383 of file idprop.c.
References BLI_assert, BLI_strncpy(), IDProperty::data, IDP_ResizeArray(), IDP_STRING, IDP_STRING_SUB_BYTE, IDPropertyData::pointer, usdtokens::st(), IDProperty::subtype, and IDProperty::type.
Referenced by attribute_search_exec_fn(), IMB_metadata_set_field(), MOD_nodes_update_interface(), and RNA_property_string_set().
void IDP_BlendReadData_impl | ( | struct BlendDataReader * | reader, |
struct IDProperty ** | prop, | ||
const char * | caller_func_id | ||
) |
Definition at line 1419 of file idprop.c.
References IDP_DirectLinkGroup(), IDP_GROUP, and NULL.
void IDP_BlendReadExpand | ( | struct BlendExpander * | expander, |
struct IDProperty * | prop | ||
) |
Definition at line 1471 of file idprop.c.
References BLO_expand, IDProperty::data, IDPropertyData::group, IDP_BlendReadExpand(), IDP_GROUP, IDP_Id, IDP_ID, IDP_IDPArray, IDP_IDPARRAY, IDProperty::len, LISTBASE_FOREACH, and IDProperty::type.
Referenced by BKE_pose_blend_read_expand(), expand_bones(), expand_id(), expand_node_socket(), IDP_BlendReadExpand(), ntreeBlendReadExpand(), scene_blend_read_expand(), and seq_blend_read_expand().
void IDP_BlendReadLib | ( | struct BlendLibReader * | reader, |
struct Library * | lib, | ||
struct IDProperty * | prop | ||
) |
Definition at line 1435 of file idprop.c.
References BLO_read_get_new_id_address(), IDProperty::data, G, IDPropertyData::group, IDP_BlendReadLib(), IDP_GROUP, IDP_Id, IDP_ID, IDP_IDPArray, IDP_IDPARRAY, IDProperty::len, lib, LISTBASE_FOREACH, IDProperty::name, IDPropertyData::pointer, and IDProperty::type.
Referenced by BKE_pose_blend_read_lib(), BKE_view_layer_blend_read_lib(), IDP_BlendReadLib(), lib_link_bones(), lib_link_id(), lib_link_node_socket(), ntreeBlendReadLib(), scene_blend_read_lib(), and seq_read_lib_cb().
void IDP_BlendWrite | ( | struct BlendWriter * | writer, |
const struct IDProperty * | prop | ||
) |
Referenced by BKE_asset_metadata_write(), BKE_constraint_blend_write(), BKE_fmodifiers_blend_write(), BKE_id_blend_write(), BKE_pose_blend_write(), BKE_screen_view3d_shading_blend_write(), BKE_view_layer_blend_write(), blendWrite(), ntreeBlendWrite(), scene_blend_write(), seq_write_data_cb(), workspace_blend_write(), write_bone(), write_keymapitem(), write_node_socket(), write_node_socket_interface(), write_uilist(), and write_userdef().
void IDP_ClearProperty | ( | struct IDProperty * | prop | ) |
Definition at line 1099 of file idprop.c.
References IDProperty::data, IDP_FreePropertyContent(), IDProperty::len, NULL, IDPropertyData::pointer, and IDProperty::totallen.
Referenced by blo_update_defaults_scene(), BPy_IDGroup_clear(), IDP_Reset(), WM_gizmo_properties_clear(), and WM_operator_properties_clear().
double IDP_coerce_to_double_or_zero | ( | const struct IDProperty * | prop | ) |
Return a double from an IDProperty with a compatible type. This should be avoided, but it's sometimes necessary, for example when legacy files have incorrect property types.
Referenced by version_idproperty_move_data_float().
float IDP_coerce_to_float_or_zero | ( | const struct IDProperty * | prop | ) |
Return a float from an IDProperty with a compatible type. This should be avoided, but it's sometimes necessary, for example when legacy files have incorrect property types.
Referenced by version_idproperty_move_data_float().
int IDP_coerce_to_int_or_zero | ( | const struct IDProperty * | prop | ) |
Return an int from an IDProperty with a compatible type. This should be avoided, but it's sometimes necessary, for example when legacy files have incorrect property types.
Referenced by version_idproperty_move_data_float(), and version_idproperty_move_data_int().
void IDP_ConcatString | ( | struct IDProperty * | str1, |
struct IDProperty * | append | ||
) |
Definition at line 413 of file idprop.c.
References BLI_assert, IDProperty::data, IDP_ResizeArray(), IDP_STRING, IDProperty::len, IDPropertyData::pointer, and IDProperty::type.
void IDP_ConcatStringC | ( | struct IDProperty * | prop, |
const char * | st | ||
) |
Definition at line 402 of file idprop.c.
References BLI_assert, IDProperty::data, IDP_ResizeArray(), IDP_STRING, IDProperty::len, IDPropertyData::pointer, usdtokens::st(), and IDProperty::type.
struct IDProperty* IDP_CopyIDPArray | ( | const struct IDProperty * | array, |
int | flag | ||
) |
struct IDProperty* IDP_CopyProperty | ( | const struct IDProperty * | prop | ) |
Referenced by BKE_pose_channel_copy_data(), BKE_scene_duplicate(), copy_pchan(), ED_armature_from_edit(), ed_marker_duplicate_apply(), ED_screen_user_menu_item_add_operator(), fcm_python_copy(), fcurves_to_pchan_links_get(), IMB_metadata_copy(), make_boneList_recursive(), operator_last_properties_init_impl(), pose_backup_create(), pose_bone_do_paste(), poselib_backup_posecopy(), pycon_copy(), RNA_property_copy(), scene_copy_data(), screen_user_menu_draw(), shortcut_get_operator_property(), uiDefSearchButO_ptr(), uiItemsFullEnumO_items(), view3d_duplicate(), wm_gizmo_create(), wm_keymap_item_copy(), wm_keymap_item_find(), wm_keymap_item_find_in_keymap(), WM_keymap_item_restore_to_default(), wm_operator_close_file_dialog_if_needed(), WM_operator_confirm_message_ex(), wm_operator_create(), WM_operator_last_properties_store(), WM_operator_name_call_ptr_with_depends_on_cursor(), wm_save_file_forwardcompat_dialog(), WM_toolsystem_ref_properties_init_for_keymap(), and wm_xr_actionmap_item_copy().
struct IDProperty* IDP_CopyProperty_ex | ( | const struct IDProperty * | prop, |
int | flag | ||
) |
Referenced by BKE_libblock_copy_ex(), BKE_pose_copy_data_ex(), BKE_view_layer_copy_data(), Freestyle::BlenderStrokeRenderer::BlenderStrokeRenderer(), copy_bonechildren(), copyData(), ED_armature_ebone_listbase_copy(), blender::bke::node_copy_with_mapping(), node_socket_copy(), scene_copy_markers(), and seq_dupli().
void IDP_CopyPropertyContent | ( | struct IDProperty * | dst, |
struct IDProperty * | src | ||
) |
Copy content from source IDProperty into destination one, freeing destination property's content first.
Definition at line 769 of file idprop.c.
References IDP_CopyProperty(), IDP_FreeProperty(), IDProperty::next, IDProperty::prev, src, and SWAP.
Referenced by MOD_nodes_update_interface().
bool IDP_EqualsProperties | ( | struct IDProperty * | prop1, |
struct IDProperty * | prop2 | ||
) |
Definition at line 882 of file idprop.c.
References IDP_EqualsProperties_ex().
Referenced by ED_screen_user_menu_item_find_operator(), wm_xr_operator_test_event(), and wm_xr_session_modal_action_test().
bool IDP_EqualsProperties_ex | ( | struct IDProperty * | prop1, |
struct IDProperty * | prop2, | ||
bool | is_strict | ||
) |
is_strict | When false treat missing items as a match. |
Definition at line 795 of file idprop.c.
References BLI_assert_unreachable, IDProperty::data, fabsf, IDPropertyData::group, IDP_Array, IDP_ARRAY, IDP_Double, IDP_DOUBLE, IDP_EqualsProperties_ex(), IDP_Float, IDP_FLOAT, IDP_GetPropertyFromGroup(), IDP_GROUP, IDP_Id, IDP_ID, IDP_IDPArray, IDP_IDPARRAY, IDP_Int, IDP_INT, IDP_print(), idp_size_table, IDP_String, IDP_STRING, IDProperty::len, LISTBASE_FOREACH, max_ff(), IDProperty::name, NULL, STREQLEN, IDProperty::subtype, and IDProperty::type.
Referenced by IDP_EqualsProperties(), IDP_EqualsProperties_ex(), and wm_keymap_item_find_in_keymap().
void IDP_foreach_property | ( | struct IDProperty * | id_property_root, |
int | type_filter, | ||
IDPForeachPropertyCallback | callback, | ||
void * | user_data | ||
) |
Loop through all ID properties in hierarchy of given id_property_root included.
type_filter | If not 0, only apply callback on properties of matching types, see IDP_TYPE_FILTER_ enum in DNA_ID.h. |
Definition at line 1117 of file idprop.c.
References callback, IDProperty::data, IDPropertyData::group, IDP_Array, IDP_foreach_property(), IDP_GROUP, IDP_IDPARRAY, IDProperty::len, LISTBASE_FOREACH, IDProperty::type, and user_data.
Referenced by armature_foreach_id_bone(), armature_foreach_id_editbone(), BKE_fcurve_foreach_id(), blender::deg::DepsgraphNodeBuilder::build_idproperties(), blender::deg::DepsgraphRelationBuilder::build_idproperties(), find_used_ids_from_settings(), foreachIDLink(), IDP_foreach_property(), library_foreach_ID_link(), library_foreach_node_socket(), node_foreach_id(), object_foreach_id(), scene_foreach_id(), and seq_foreach_member_id_cb().
void IDP_FreeArray | ( | struct IDProperty * | prop | ) |
Definition at line 248 of file idprop.c.
References IDProperty::data, idp_resize_group_array(), MEM_freeN, NULL, and IDPropertyData::pointer.
Referenced by IDP_FreePropertyContent_ex().
void IDP_FreeFromGroup | ( | struct IDProperty * | group, |
struct IDProperty * | prop | ||
) |
Removes the property from the group and frees it.
Definition at line 666 of file idprop.c.
References IDP_FreeProperty(), and IDP_RemoveFromGroup().
Referenced by BPy_IDGroup_pop(), BPy_Wrap_SetMapItem(), IDP_SyncGroupTypes(), IMB_metadata_set_field(), pyrna_struct_pop(), rna_idproperty_free(), RNA_property_pointer_remove(), rna_property_rna_or_id_get(), RNA_struct_idprops_unset(), and version_idproperty_ui_data().
void IDP_FreeProperty | ( | struct IDProperty * | prop | ) |
Definition at line 1093 of file idprop.c.
References IDP_FreePropertyContent(), and MEM_freeN.
Referenced by BKE_addon_free(), BKE_area_region_free(), BKE_asset_metadata_free(), BKE_blender_user_menu_item_free(), BKE_pose_channel_copy_data(), BKE_workspace_tool_remove(), blo_do_versions_280(), bone_free(), do_versions_after_linking_280(), ED_armature_edit_free(), ED_pose_backup_free(), fcm_python_free(), IDP_CopyPropertyContent(), IDP_FreeFromGroup(), idp_from_PyMapping(), idp_from_PySequence_Fast(), IDP_ReplaceGroupInGroup(), IDP_ReplaceInGroup_ex(), idp_resize_group_array(), IDP_SyncGroupTypes(), IDP_SyncGroupValues(), IMB_metadata_free(), keymap_item_free(), MOD_nodes_update_interface(), blender::bke::idprop::IDPropertyDeleter::operator()(), operator_last_properties_init_impl(), operatortype_ghash_free_cb(), pose_clear_user_transforms_exec(), poseAnim_mapping_free(), poselib_backup_free_data(), pycon_free(), pyrna_struct_dealloc(), pyrna_struct_id_properties_clear(), scene_free_data(), shortcut_free_operator_property(), blender::bke::idprop::tests::TEST(), blender::bke::idprop::tests::test_convert_idprop_from_value(), ui_but_event_operator_string_from_menu(), ui_but_event_operator_string_from_panel(), ui_but_event_property_operator_string(), ui_handler_wait_for_input_remove(), uiItemsFullEnumO_items(), userdef_free_keyconfig_prefs(), view3d_free(), wm_free_operator_properties_callback(), WM_gizmo_properties_free(), wm_keymap_item_find(), wm_keymap_item_find_in_keymap(), WM_keymap_item_restore_to_default(), WM_operator_free(), WM_operator_last_properties_store(), WM_operator_properties_free(), WM_operatortype_last_properties_clear_all(), WM_operatortype_remove_ptr(), and wm_xr_exit().
void IDP_FreeProperty_ex | ( | struct IDProperty * | prop, |
bool | do_id_user | ||
) |
Definition at line 1087 of file idprop.c.
References IDP_FreePropertyContent_ex(), and MEM_freeN.
Referenced by BKE_armature_bonelist_free(), BKE_armature_editbonelist_free(), BKE_pose_channel_free_ex(), BKE_view_layer_free_ex(), ED_armature_ebone_listbase_free(), freeData(), and node_socket_interface_free().
void IDP_FreePropertyContent | ( | struct IDProperty * | prop | ) |
Definition at line 1082 of file idprop.c.
References IDP_FreePropertyContent_ex().
Referenced by BPy_IDProperty_Map_ValidateAndCreate(), ed_marker_delete_exec(), IDP_ClearProperty(), IDP_FreeProperty(), IDP_ResizeIDPArray(), and IDP_SetIndexArray().
void IDP_FreePropertyContent_ex | ( | struct IDProperty * | prop, |
bool | do_id_user | ||
) |
Definition at line 1055 of file idprop.c.
References id_us_min(), IDP_ARRAY, IDP_FreeArray(), IDP_FreeGroup(), IDP_FreeIDPArray(), IDP_FreeString(), IDP_GROUP, IDP_Id, IDP_ID, IDP_IDPARRAY, IDP_STRING, IDP_ui_data_free(), NULL, IDProperty::type, and IDProperty::ui_data.
Referenced by BKE_libblock_free_data(), IDP_FreeGroup(), IDP_FreeIDPArray(), IDP_FreeProperty_ex(), IDP_FreePropertyContent(), node_free_node(), node_socket_free(), preview_id_copy_free(), scene_free_markers(), and seq_sequence_free_ex().
void IDP_FreeString | ( | struct IDProperty * | prop | ) |
Definition at line 424 of file idprop.c.
References BLI_assert, IDProperty::data, IDP_STRING, MEM_freeN, IDPropertyData::pointer, and IDProperty::type.
Referenced by IDP_FreePropertyContent_ex().
struct IDProperty* IDP_GetIndexArray | ( | struct IDProperty * | prop, |
int | index | ||
) |
Definition at line 126 of file idprop.c.
References BLI_assert, GETPROP, IDP_IDPARRAY, and IDProperty::type.
Referenced by RNA_property_collection_add().
struct IDProperty* IDP_GetProperties | ( | struct ID * | id, |
bool | create_if_needed | ||
) |
Get the Group property that contains the id properties for ID id
.
create_if_needed | Set to create the group property and attach it to id if it doesn't exist; otherwise the function will return NULL if there's no Group property attached to the ID. |
Definition at line 778 of file idprop.c.
References id, IDP_GROUP, MEM_callocN, and ID::properties.
Referenced by blo_update_defaults_scene(), cycles_properties_from_ID(), cycles_visibility_properties_from_ID(), do_versions_idproperty_ui_data(), preview_id_copy_free(), proj_paint_state_viewport_init(), texture_paint_camera_project_exec(), and texture_paint_image_from_view_exec().
struct IDProperty* IDP_GetPropertyFromGroup | ( | const struct IDProperty * | prop, |
const char * | name | ||
) |
Referenced by attribute_search_exec_fn(), bc_get_IDProperty(), BKE_asset_metadata_idprop_find(), BKE_keyconfig_pref_set_select_mouse(), blo_do_versions_280(), BPy_IDGroup_Contains(), BPy_IDGroup_get(), BPy_IDGroup_Map_GetItem(), BPy_IDGroup_pop(), BPy_IDProperty_Map_ValidateAndCreate(), BPy_Wrap_SetMapItem(), check_property_socket_sync(), draw_property_for_socket(), find_output_attributes_to_store(), idprops_ensure_named_group(), IMB_metadata_get_field(), IMB_metadata_set_field(), initialize_group_input(), keymap_item_has_invalid_wm_context_data_path(), MOD_nodes_update_interface(), operator_last_properties_init_impl(), proj_paint_state_viewport_init(), pyrna_struct_contains(), pyrna_struct_get(), pyrna_struct_id_properties_ui(), pyrna_struct_pop(), pyrna_struct_subscript(), rna_idproperty_find(), rna_idproperty_free(), rna_path_parse(), RNA_struct_idprops_unset(), version_idproperty_move_data_float(), version_idproperty_move_data_int(), version_idproperty_move_data_string(), version_idproperty_ui_data(), WM_operator_last_properties_init(), WM_toolsystem_ref_properties_get_ex(), WM_toolsystem_ref_properties_get_idprops(), and WM_toolsystem_ref_properties_init_for_keymap().
struct IDProperty* IDP_GetPropertyTypeFromGroup | ( | const struct IDProperty * | prop, |
const char * | name, | ||
char | type | ||
) |
Same as above but ensure type match.
Referenced by cycles_properties_from_ID(), cycles_properties_from_view_layer(), cycles_property_float(), cycles_property_int(), cycles_property_int_set(), cycles_visibility_properties_from_ID(), and texture_paint_camera_project_exec().
bool IDP_InsertToGroup | ( | struct IDProperty * | group, |
struct IDProperty * | previous, | ||
struct IDProperty * | pnew | ||
) |
This is the same as IDP_AddToGroup, only you pass an item in the group list to be inserted after.
void IDP_MergeGroup | ( | struct IDProperty * | dest, |
const struct IDProperty * | src, | ||
bool | do_overwrite | ||
) |
If a property is missing in dest, add it. Do it recursively.
Referenced by BPy_IDGroup_update(), gizmo_tweak_start_and_finish(), operator_last_properties_init_impl(), WM_gizmo_operator_invoke(), and WM_toolsystem_ref_properties_init_for_keymap().
void IDP_MergeGroup_ex | ( | struct IDProperty * | dest, |
const struct IDProperty * | src, | ||
bool | do_overwrite, | ||
int | flag | ||
) |
If a property is missing in dest, add it. Do it recursively.
struct IDProperty* IDP_New | ( | char | type, |
const IDPropertyTemplate * | val, | ||
const char * | name | ||
) |
Allocate a new ID.
This function takes three arguments: the ID property type, a union which defines its initial value, and a name.
The union is simple to use; see the top of BKE_idprop.h for its definition. An example of using this function:
Note that you MUST either attach the id property to an id property group with IDP_AddToGroup or MEM_freeN the property, doing anything else might result in a memory leak.
Definition at line 887 of file idprop.c.
References IDPropertyTemplate::array, BLI_assert, CLOG_ERROR, IDPropertyTemplate::d, IDProperty::data, DEFAULT_ALLOC_FOR_NULL_STRINGS, ELEM, IDPropertyTemplate::f, IDPropertyTemplate::i, IDPropertyTemplate::id, id_us_plus(), IDP_ARRAY, IDP_DOUBLE, IDP_FLOAT, IDP_GROUP, IDP_Id, IDP_ID, IDP_INT, idp_size_table, IDP_String, IDP_STRING, IDP_STRING_SUB_BYTE, IDP_STRING_SUB_UTF8, if(), IDPropertyTemplate::len, IDProperty::len, LOG, MEM_callocN, MEM_mallocN, NULL, IDPropertyData::pointer, usdtokens::st(), IDPropertyTemplate::str, IDPropertyTemplate::string, IDPropertyTemplate::subtype, IDProperty::subtype, IDProperty::totallen, IDPropertyTemplate::type, type, IDProperty::type, and IDPropertyData::val.
Referenced by action_asset_type_property(), blender::bke::idprop::array_create(), bc_set_IDPropertyMatrix(), BKE_asset_metadata_idprop_ensure(), BKE_keyconfig_pref_ensure(), BKE_keyconfig_pref_set_select_mouse(), blender::bke::idprop::create(), blender::bke::idprop::create_group(), cycles_property_int_set(), id_property_create_from_socket(), idp_from_DatablockPointer(), idp_from_PyBytes(), idp_from_PyFloat(), idp_from_PyLong(), idp_from_PyMapping(), idp_from_PySequence_Buffer(), idp_from_PySequence_Fast(), idp_from_PyUnicode(), idp_resize_group_array(), idprops_ensure_named_group(), IMB_metadata_ensure(), MOD_nodes_update_interface(), object_asset_dimensions_property(), operator_last_properties_init_impl(), RNA_property_boolean_set(), RNA_property_boolean_set_array(), RNA_property_collection_add(), RNA_property_enum_set(), RNA_property_float_set(), RNA_property_float_set_array(), RNA_property_int_set(), RNA_property_int_set_array(), RNA_property_pointer_add(), RNA_property_pointer_set(), RNA_property_string_set_bytes(), RNA_struct_idprops(), shortcut_get_operator_property(), shortcut_property_from_rna(), template_operator_property_buts_draw_single(), texture_paint_image_from_view_exec(), ui_but_event_operator_string_from_menu(), ui_but_event_operator_string_from_panel(), ui_but_event_property_operator_string(), uiItemFullO_ptr_ex(), version_geometry_nodes_add_attribute_input_settings(), wm_gizmo_create(), WM_gizmo_operator_invoke(), WM_gizmo_properties_alloc(), wm_operator_create(), WM_operator_last_properties_ensure_idprops(), WM_operator_last_properties_store(), WM_operator_properties_alloc(), WM_toolsystem_ref_properties_ensure_idprops(), and WM_toolsystem_ref_properties_init_for_keymap().
struct IDProperty* IDP_NewIDPArray | ( | const char * | name | ) |
Definition at line 63 of file idprop.c.
References BLI_strncpy(), IDP_IDPARRAY, IDProperty::len, MAX_IDPROP_NAME, MEM_callocN, IDProperty::name, and IDProperty::type.
Referenced by idp_from_PySequence_Fast(), and RNA_property_collection_add().
struct IDProperty* IDP_NewString | ( | const char * | st, |
const char * | name, | ||
int | maxlen | ||
) |
st | The string to assign. |
name | The property name. |
maxlen | The size of the new string (including the \0 terminator). |
Definition at line 339 of file idprop.c.
References BLI_strncpy(), IDProperty::data, DEFAULT_ALLOC_FOR_NULL_STRINGS, IDP_String, IDP_STRING, IDProperty::len, MAX_IDPROP_NAME, MEM_callocN, MEM_mallocN, IDProperty::name, NULL, IDPropertyData::pointer, usdtokens::st(), IDProperty::totallen, and IDProperty::type.
Referenced by blender::bke::idprop::create(), IMB_metadata_set_field(), MOD_nodes_update_interface(), RNA_property_string_set(), shortcut_get_operator_property(), shortcut_property_from_rna(), ui_but_event_operator_string_from_menu(), ui_but_event_operator_string_from_panel(), and ui_but_event_property_operator_string().
void IDP_print | ( | const struct IDProperty * | prop | ) |
Referenced by IDP_EqualsProperties_ex(), wm_keymap_item_find(), and wm_keymap_item_find_in_keymap().
bool void IDP_RemoveFromGroup | ( | struct IDProperty * | group, |
struct IDProperty * | prop | ||
) |
To free the property, you have to do: #IDP_FreeProperty(prop);
Definition at line 657 of file idprop.c.
References BLI_assert, BLI_findindex(), BLI_remlink(), IDProperty::data, IDPropertyData::group, IDP_GROUP, IDProperty::len, and IDProperty::type.
Referenced by IDP_FreeFromGroup().
void IDP_ReplaceGroupInGroup | ( | struct IDProperty * | dest, |
const struct IDProperty * | src | ||
) |
Replaces all properties with the same name in a destination group from a source group.
Referenced by wm_operator_create().
void IDP_ReplaceInGroup | ( | struct IDProperty * | group, |
struct IDProperty * | prop | ||
) |
Definition at line 578 of file idprop.c.
References IDP_GetPropertyFromGroup(), IDP_ReplaceInGroup_ex(), and IDProperty::name.
Referenced by BKE_asset_metadata_idprop_ensure(), IDP_MergeGroup_ex(), RNA_property_pointer_set(), ui_but_event_operator_string_from_panel(), and WM_operator_last_properties_store().
void IDP_ReplaceInGroup_ex | ( | struct IDProperty * | group, |
struct IDProperty * | prop, | ||
struct IDProperty * | prop_exist | ||
) |
Checks if a property with the same name as prop exists, and if so replaces it. Use this to preserve order!
Definition at line 563 of file idprop.c.
References BLI_addtail(), BLI_assert, BLI_insertlinkreplace(), IDProperty::data, IDPropertyData::group, IDP_FreeProperty(), IDP_GetPropertyFromGroup(), IDP_GROUP, IDProperty::len, IDProperty::name, NULL, and IDProperty::type.
Referenced by BPy_IDProperty_Map_ValidateAndCreate(), IDP_ReplaceInGroup(), idprops_ensure_named_group(), and RNA_property_pointer_set().
void IDP_repr_fn | ( | const struct IDProperty * | prop, |
void(*)(void *user_data, const char *str, uint str_len) | str_append_fn, | ||
void * | user_data | ||
) |
char* IDP_reprN | ( | const struct IDProperty * | prop, |
uint * | r_len | ||
) |
Referenced by keymap_handler_log_kmi_op_str().
void IDP_Reset | ( | struct IDProperty * | prop, |
const struct IDProperty * | reference | ||
) |
void IDP_ResizeArray | ( | struct IDProperty * | prop, |
int | newlen | ||
) |
This function works for strings too!
Definition at line 211 of file idprop.c.
References IDProperty::data, IDP_ARRAY_REALLOC_LIMIT, idp_resize_group_array(), idp_size_table, IDProperty::len, MEM_recallocN, IDPropertyData::pointer, IDProperty::subtype, and IDProperty::totallen.
Referenced by IDP_AssignString(), IDP_ConcatString(), IDP_ConcatStringC(), and RNA_property_string_set_bytes().
void IDP_ResizeIDPArray | ( | struct IDProperty * | prop, |
int | len | ||
) |
Definition at line 141 of file idprop.c.
References BLI_assert, IDProperty::data, GETPROP, IDP_ARRAY_REALLOC_LIMIT, IDP_FreePropertyContent(), IDP_IDPARRAY, len, IDProperty::len, MEM_recallocN, IDPropertyData::pointer, IDProperty::totallen, and IDProperty::type.
Referenced by IDP_AppendArray(), RNA_property_collection_clear(), and RNA_property_collection_remove().
void IDP_SetIndexArray | ( | struct IDProperty * | prop, |
int | index, | ||
struct IDProperty * | item | ||
) |
Shallow copies item.
Definition at line 110 of file idprop.c.
References BLI_assert, GETPROP, IDP_FreePropertyContent(), IDP_IDPARRAY, IDProperty::len, and IDProperty::type.
Referenced by IDP_AppendArray().
void IDP_SyncGroupTypes | ( | struct IDProperty * | dest, |
const struct IDProperty * | src, | ||
bool | do_arraylen | ||
) |
Referenced by WM_operator_type_set().
void IDP_SyncGroupValues | ( | struct IDProperty * | dest, |
const struct IDProperty * | src | ||
) |
Sync values from one group to another when values name and types match, copy the values, else ignore.
Referenced by ED_pose_backup_restore(), pose_bone_do_paste(), poseAnim_mapping_reset(), and poselib_backup_restore().
struct IDPropertyUIData* IDP_ui_data_copy | ( | const struct IDProperty * | prop | ) |
struct IDPropertyUIData* IDP_ui_data_ensure | ( | struct IDProperty * | prop | ) |
Definition at line 1519 of file idprop.c.
References BLI_assert_unreachable, IDP_ui_data_type(), IDP_UI_DATA_TYPE_FLOAT, IDP_UI_DATA_TYPE_ID, IDP_UI_DATA_TYPE_INT, IDP_UI_DATA_TYPE_STRING, IDP_UI_DATA_TYPE_UNSUPPORTED, IDPropertyUIDataInt::max, IDPropertyUIDataFloat::max, MEM_callocN, IDPropertyUIDataInt::min, IDPropertyUIDataFloat::min, NULL, IDPropertyUIDataFloat::precision, IDPropertyUIDataInt::soft_max, IDPropertyUIDataFloat::soft_max, IDPropertyUIDataInt::soft_min, IDPropertyUIDataFloat::soft_min, IDPropertyUIDataInt::step, IDPropertyUIDataFloat::step, and IDProperty::ui_data.
Referenced by BPy_IDIDPropertyUIManager_as_dict(), BPy_IDPropertyUIManager_update(), id_property_create_from_socket(), MOD_nodes_update_interface(), RNA_property_float_set_default(), RNA_property_int_set_default(), and version_idproperty_ui_data().
void IDP_ui_data_free | ( | struct IDProperty * | prop | ) |
Definition at line 1023 of file idprop.c.
References IDPropertyUIDataInt::default_array, IDPropertyUIDataFloat::default_array, IDPropertyUIDataString::default_value, IDPropertyUIData::description, IDP_ui_data_type(), IDP_UI_DATA_TYPE_FLOAT, IDP_UI_DATA_TYPE_ID, IDP_UI_DATA_TYPE_INT, IDP_UI_DATA_TYPE_STRING, IDP_UI_DATA_TYPE_UNSUPPORTED, MEM_freeN, MEM_SAFE_FREE, NULL, and IDProperty::ui_data.
Referenced by BPy_IDPropertyUIManager_clear(), IDP_FreePropertyContent_ex(), and MOD_nodes_update_interface().
void IDP_ui_data_free_unique_contents | ( | struct IDPropertyUIData * | ui_data, |
eIDPropertyUIDataType | type, | ||
const struct IDPropertyUIData * | other | ||
) |
Free allocated pointers in the UI data that isn't shared with the UI data in the other
argument. Useful for returning early on failure when updating UI data in place, or when replacing a subset of the UI data's allocated pointers.
Referenced by idprop_ui_data_update_float(), idprop_ui_data_update_id(), idprop_ui_data_update_int(), and idprop_ui_data_update_string().
bool IDP_ui_data_supported | ( | const struct IDProperty * | prop | ) |
eIDPropertyUIDataType IDP_ui_data_type | ( | const struct IDProperty * | prop | ) |