Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSybren A. Stüvel <sybren@blender.org>2020-10-02 19:56:25 +0300
committerSybren A. Stüvel <sybren@blender.org>2020-10-02 19:56:25 +0300
commit90a27d5aa91a1b6a25ea14e11c889d47f77f4cf7 (patch)
tree3916b5139f9e48ca543a1f017f82b62101dd717a /source/blender/editors/space_buttons
parent0db98b214d468864630fc9bba72be4ff9b2548e5 (diff)
Cleanup: Use enum for return values in context callbacks
Define enum `eContextResult` and use its values for returns, instead of just returning 1, 0, or -1 (and always having some comment that explains what -1 means). This also cleans up the mixup between returning `0` and `false`, and `1` and `true`. An inconsistency was discovered during this cleanup, and marked with `TODO(sybren)`. It's not fixed here, as it would consititute a functional change. The enum isn't used everywhere, as enums in C and C++ can have different storage sizes. To prevent issues, callback functions are still declared as returning`int`. To at least make things easier to understand for humans, I marked those with `int /*eContextResult*/`. This is a followup of D9090, and is intended to unify how context callbacks return values. This will make it easier to extend the approach in D9090 to those functions. No functional changes. Differential Revision: https://developer.blender.org/D9095
Diffstat (limited to 'source/blender/editors/space_buttons')
-rw-r--r--source/blender/editors/space_buttons/buttons_context.c98
1 files changed, 50 insertions, 48 deletions
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index a233e3a9edd..fabccecd533 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -780,17 +780,19 @@ const char *buttons_context_dir[] = {
NULL,
};
-int buttons_context(const bContext *C, const char *member, bContextDataResult *result)
+int /*eContextResult*/ buttons_context(const bContext *C,
+ const char *member,
+ bContextDataResult *result)
{
SpaceProperties *sbuts = CTX_wm_space_properties(C);
ButsContextPath *path = sbuts ? sbuts->path : NULL;
if (!path) {
- return 0;
+ return CTX_RESULT_MEMBER_NOT_FOUND;
}
if (sbuts->mainb == BCONTEXT_TOOL) {
- return 0;
+ return CTX_RESULT_MEMBER_NOT_FOUND;
}
/* here we handle context, getting data from precomputed path */
@@ -803,7 +805,7 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
else {
CTX_data_dir_set(result, buttons_context_dir);
}
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "scene")) {
/* Do not return one here if scene not found in path,
@@ -812,67 +814,67 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
}
if (CTX_data_equals(member, "world")) {
set_pointer_type(path, result, &RNA_World);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "object")) {
set_pointer_type(path, result, &RNA_Object);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "mesh")) {
set_pointer_type(path, result, &RNA_Mesh);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "armature")) {
set_pointer_type(path, result, &RNA_Armature);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "lattice")) {
set_pointer_type(path, result, &RNA_Lattice);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "curve")) {
set_pointer_type(path, result, &RNA_Curve);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "meta_ball")) {
set_pointer_type(path, result, &RNA_MetaBall);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "light")) {
set_pointer_type(path, result, &RNA_Light);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "camera")) {
set_pointer_type(path, result, &RNA_Camera);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "speaker")) {
set_pointer_type(path, result, &RNA_Speaker);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "lightprobe")) {
set_pointer_type(path, result, &RNA_LightProbe);
- return 1;
+ return CTX_RESULT_OK;
}
#ifdef WITH_HAIR_NODES
if (CTX_data_equals(member, "hair")) {
set_pointer_type(path, result, &RNA_Hair);
- return 1;
+ return CTX_RESULT_OK;
}
#endif
#ifdef WITH_PARTICLE_NODES
if (CTX_data_equals(member, "pointcloud")) {
set_pointer_type(path, result, &RNA_PointCloud);
- return 1;
+ return CTX_RESULT_OK;
}
#endif
if (CTX_data_equals(member, "volume")) {
set_pointer_type(path, result, &RNA_Volume);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "material")) {
set_pointer_type(path, result, &RNA_Material);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "texture")) {
ButsContextTexture *ct = sbuts->texuser;
@@ -881,7 +883,7 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
CTX_data_pointer_set(result, &ct->texture->id, &RNA_Texture, ct->texture);
}
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "material_slot")) {
PointerRNA *ptr = get_pointer_type(path, &RNA_Object);
@@ -899,7 +901,7 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
}
}
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "texture_user")) {
ButsContextTexture *ct = sbuts->texuser;
@@ -913,7 +915,7 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
CTX_data_pointer_set(result, user->ptr.owner_id, user->ptr.type, user->ptr.data);
}
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "texture_user_property")) {
ButsContextTexture *ct = sbuts->texuser;
@@ -927,7 +929,7 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
CTX_data_pointer_set(result, NULL, &RNA_Property, user->prop);
}
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "texture_node")) {
ButsContextTexture *ct = sbuts->texuser;
@@ -938,9 +940,9 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
CTX_data_pointer_set(result, &ct->user->ntree->id, &RNA_Node, ct->user->node);
}
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
if (CTX_data_equals(member, "texture_slot")) {
ButsContextTexture *ct = sbuts->texuser;
@@ -967,23 +969,23 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
}
}
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "bone")) {
set_pointer_type(path, result, &RNA_Bone);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "edit_bone")) {
set_pointer_type(path, result, &RNA_EditBone);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "pose_bone")) {
set_pointer_type(path, result, &RNA_PoseBone);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "particle_system")) {
set_pointer_type(path, result, &RNA_ParticleSystem);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "particle_system_editable")) {
if (PE_poll((bContext *)C)) {
@@ -992,7 +994,7 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
else {
CTX_data_pointer_set(result, NULL, &RNA_ParticleSystem, NULL);
}
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "particle_settings")) {
/* only available when pinned */
@@ -1000,7 +1002,7 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
if (ptr && ptr->data) {
CTX_data_pointer_set(result, ptr->owner_id, &RNA_ParticleSettings, ptr->data);
- return 1;
+ return CTX_RESULT_OK;
}
/* get settings from active particle system instead */
@@ -1009,11 +1011,11 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
if (ptr && ptr->data) {
ParticleSettings *part = ((ParticleSystem *)ptr->data)->part;
CTX_data_pointer_set(result, ptr->owner_id, &RNA_ParticleSettings, part);
- return 1;
+ return CTX_RESULT_OK;
}
set_pointer_type(path, result, &RNA_ParticleSettings);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "cloth")) {
PointerRNA *ptr = get_pointer_type(path, &RNA_Object);
@@ -1022,9 +1024,9 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
Object *ob = ptr->data;
ModifierData *md = BKE_modifiers_findby_type(ob, eModifierType_Cloth);
CTX_data_pointer_set(result, &ob->id, &RNA_ClothModifier, md);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
if (CTX_data_equals(member, "soft_body")) {
PointerRNA *ptr = get_pointer_type(path, &RNA_Object);
@@ -1033,9 +1035,9 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
Object *ob = ptr->data;
ModifierData *md = BKE_modifiers_findby_type(ob, eModifierType_Softbody);
CTX_data_pointer_set(result, &ob->id, &RNA_SoftBodyModifier, md);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
if (CTX_data_equals(member, "fluid")) {
@@ -1045,9 +1047,9 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
Object *ob = ptr->data;
ModifierData *md = BKE_modifiers_findby_type(ob, eModifierType_Fluid);
CTX_data_pointer_set(result, &ob->id, &RNA_FluidModifier, md);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
if (CTX_data_equals(member, "collision")) {
PointerRNA *ptr = get_pointer_type(path, &RNA_Object);
@@ -1056,13 +1058,13 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
Object *ob = ptr->data;
ModifierData *md = BKE_modifiers_findby_type(ob, eModifierType_Collision);
CTX_data_pointer_set(result, &ob->id, &RNA_CollisionModifier, md);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
if (CTX_data_equals(member, "brush")) {
set_pointer_type(path, result, &RNA_Brush);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "dynamic_paint")) {
PointerRNA *ptr = get_pointer_type(path, &RNA_Object);
@@ -1071,19 +1073,19 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
Object *ob = ptr->data;
ModifierData *md = BKE_modifiers_findby_type(ob, eModifierType_DynamicPaint);
CTX_data_pointer_set(result, &ob->id, &RNA_DynamicPaintModifier, md);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
if (CTX_data_equals(member, "line_style")) {
set_pointer_type(path, result, &RNA_FreestyleLineStyle);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "gpencil")) {
set_pointer_type(path, result, &RNA_GreasePencil);
- return 1;
+ return CTX_RESULT_OK;
}
- return 0; /* not found */
+ return CTX_RESULT_MEMBER_NOT_FOUND;
}
/************************* Drawing the Path ************************/