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
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')
-rw-r--r--source/blender/blenkernel/BKE_context.h25
-rw-r--r--source/blender/blenkernel/BKE_screen.h6
-rw-r--r--source/blender/blenkernel/intern/context.c19
-rw-r--r--source/blender/editors/screen/screen_context.c272
-rw-r--r--source/blender/editors/space_buttons/buttons_context.c98
-rw-r--r--source/blender/editors/space_clip/space_clip.c12
-rw-r--r--source/blender/editors/space_image/space_image.c11
-rw-r--r--source/blender/editors/space_node/space_node.c21
-rw-r--r--source/blender/editors/space_sequencer/space_sequencer.c10
-rw-r--r--source/blender/editors/space_text/space_text.c10
-rw-r--r--source/blender/makesdna/DNA_screen_types.h2
-rw-r--r--source/blender/python/intern/bpy_rna.c10
12 files changed, 267 insertions, 229 deletions
diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h
index f3e4a18b9bd..5c534803781 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -74,9 +74,26 @@ typedef struct bContext bContext;
struct bContextDataResult;
typedef struct bContextDataResult bContextDataResult;
-typedef int (*bContextDataCallback)(const bContext *C,
- const char *member,
- bContextDataResult *result);
+/* Result of context lookups.
+ * The specific values are important, and used implicitly in ctx_data_get(). Some functions also
+ * still accept/return `int` instead, to ensure that the compiler uses the correct storage size
+ * when mixing C/C++ code. */
+typedef enum eContextResult {
+ /* The context member was found, and its data is available. */
+ CTX_RESULT_OK = 1,
+
+ /* The context member was not found. */
+ CTX_RESULT_MEMBER_NOT_FOUND = 0,
+
+ /* The context member was found, but its data is not available.
+ * For example, "active_bone" is a valid context member, but has not data in Object mode. */
+ CTX_RESULT_NO_DATA = -1,
+} eContextResult;
+
+/* Function mapping a context member name to its value. */
+typedef int /*eContextResult*/ (*bContextDataCallback)(const bContext *C,
+ const char *member,
+ bContextDataResult *result);
typedef struct bContextStoreEntry {
struct bContextStoreEntry *next, *prev;
@@ -213,7 +230,7 @@ ListBase CTX_data_dir_get_ex(const bContext *C,
const bool use_rna,
const bool use_all);
ListBase CTX_data_dir_get(const bContext *C);
-int CTX_data_get(
+int /*eContextResult*/ CTX_data_get(
const bContext *C, const char *member, PointerRNA *r_ptr, ListBase *r_lb, short *r_type);
void CTX_data_id_pointer_set(bContextDataResult *result, struct ID *id);
diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h
index bcc58ecf2c5..35a3d0415a8 100644
--- a/source/blender/blenkernel/BKE_screen.h
+++ b/source/blender/blenkernel/BKE_screen.h
@@ -26,6 +26,8 @@
#include "RNA_types.h"
+#include "BKE_context.h"
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -106,7 +108,7 @@ typedef struct SpaceType {
void (*gizmos)(void);
/* return context data */
- int (*context)(const struct bContext *C, const char *member, struct bContextDataResult *result);
+ bContextDataCallback context;
/* Used when we want to replace an ID by another (or NULL). */
void (*id_remap)(struct ScrArea *area,
@@ -181,7 +183,7 @@ typedef struct ARegionType {
void (*cursor)(struct wmWindow *win, struct ScrArea *area, struct ARegion *region);
/* return context data */
- int (*context)(const struct bContext *C, const char *member, struct bContextDataResult *result);
+ bContextDataCallback context;
/* Is called whenever the current visible View2D's region changes.
*
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index 17ac8d7bedc..2002a49293f 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -294,7 +294,7 @@ static void *ctx_wm_python_context_get(const bContext *C,
return fall_through;
}
-static int ctx_data_get(bContext *C, const char *member, bContextDataResult *result)
+static eContextResult ctx_data_get(bContext *C, const char *member, bContextDataResult *result)
{
bScreen *screen;
ScrArea *area;
@@ -374,7 +374,7 @@ static void *ctx_data_pointer_get(const bContext *C, const char *member)
{
bContextDataResult result;
- if (C && ctx_data_get((bContext *)C, member, &result) == 1) {
+ if (C && ctx_data_get((bContext *)C, member, &result) == CTX_RESULT_OK) {
BLI_assert(result.type == CTX_DATA_TYPE_POINTER);
return result.ptr.data;
}
@@ -391,7 +391,7 @@ static int ctx_data_pointer_verify(const bContext *C, const char *member, void *
*pointer = NULL;
return 1;
}
- if (ctx_data_get((bContext *)C, member, &result) == 1) {
+ if (ctx_data_get((bContext *)C, member, &result) == CTX_RESULT_OK) {
BLI_assert(result.type == CTX_DATA_TYPE_POINTER);
*pointer = result.ptr.data;
return 1;
@@ -405,7 +405,7 @@ static int ctx_data_collection_get(const bContext *C, const char *member, ListBa
{
bContextDataResult result;
- if (ctx_data_get((bContext *)C, member, &result) == 1) {
+ if (ctx_data_get((bContext *)C, member, &result) == CTX_RESULT_OK) {
BLI_assert(result.type == CTX_DATA_TYPE_COLLECTION);
*list = result.list;
return 1;
@@ -453,7 +453,7 @@ PointerRNA CTX_data_pointer_get(const bContext *C, const char *member)
{
bContextDataResult result;
- if (ctx_data_get((bContext *)C, member, &result) == 1) {
+ if (ctx_data_get((bContext *)C, member, &result) == CTX_RESULT_OK) {
BLI_assert(result.type == CTX_DATA_TYPE_POINTER);
return result.ptr;
}
@@ -495,7 +495,7 @@ ListBase CTX_data_collection_get(const bContext *C, const char *member)
{
bContextDataResult result;
- if (ctx_data_get((bContext *)C, member, &result) == 1) {
+ if (ctx_data_get((bContext *)C, member, &result) == CTX_RESULT_OK) {
BLI_assert(result.type == CTX_DATA_TYPE_COLLECTION);
return result.list;
}
@@ -504,14 +504,13 @@ ListBase CTX_data_collection_get(const bContext *C, const char *member)
return list;
}
-/* 1:found, -1:found but not set, 0:not found */
-int CTX_data_get(
+int /*eContextResult*/ CTX_data_get(
const bContext *C, const char *member, PointerRNA *r_ptr, ListBase *r_lb, short *r_type)
{
bContextDataResult result;
- int ret = ctx_data_get((bContext *)C, member, &result);
+ eContextResult ret = ctx_data_get((bContext *)C, member, &result);
- if (ret == 1) {
+ if (ret == CTX_RESULT_OK) {
*r_ptr = result.ptr;
*r_lb = result.list;
*r_type = result.type;
diff --git a/source/blender/editors/screen/screen_context.c b/source/blender/editors/screen/screen_context.c
index e32d374d094..07a571ae464 100644
--- a/source/blender/editors/screen/screen_context.c
+++ b/source/blender/editors/screen/screen_context.c
@@ -114,23 +114,16 @@ const char *screen_context_dir[] = {
/* Each function `screen_ctx_XXX()` will be called when the screen context "XXX" is requested.
* ensure_ed_screen_context_functions() is responsible for creating the hash map from context
- * member name to function.
- *
- * Each function returns:
- * 1 for "the member name was found and returned data is valid"
- * 0 for "the member name was not found"
- * -1 for "the member name was found but data is not available"
- *
- * */
+ * member name to function. */
-static int screen_ctx_scene(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_scene(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
Scene *scene = WM_window_get_active_scene(win);
CTX_data_id_pointer_set(result, &scene->id);
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_visible_objects(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_visible_objects(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
@@ -142,9 +135,9 @@ static int screen_ctx_visible_objects(const bContext *C, bContextDataResult *res
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_selectable_objects(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_selectable_objects(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
@@ -156,9 +149,9 @@ static int screen_ctx_selectable_objects(const bContext *C, bContextDataResult *
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_selected_objects(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_selected_objects(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
@@ -170,9 +163,10 @@ static int screen_ctx_selected_objects(const bContext *C, bContextDataResult *re
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_selected_editable_objects(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_selected_editable_objects(const bContext *C,
+ bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
@@ -184,9 +178,9 @@ static int screen_ctx_selected_editable_objects(const bContext *C, bContextDataR
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_editable_objects(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_editable_objects(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
@@ -199,9 +193,9 @@ static int screen_ctx_editable_objects(const bContext *C, bContextDataResult *re
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_objects_in_mode(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_objects_in_mode(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
@@ -215,9 +209,10 @@ static int screen_ctx_objects_in_mode(const bContext *C, bContextDataResult *res
FOREACH_OBJECT_IN_MODE_END;
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_objects_in_mode_unique_data(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_objects_in_mode_unique_data(const bContext *C,
+ bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
@@ -238,11 +233,11 @@ static int screen_ctx_objects_in_mode_unique_data(const bContext *C, bContextDat
FOREACH_OBJECT_IN_MODE_END;
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_visible_or_editable_bones_(const bContext *C,
- bContextDataResult *result,
- const bool editable_bones)
+static eContextResult screen_ctx_visible_or_editable_bones_(const bContext *C,
+ bContextDataResult *result,
+ const bool editable_bones)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -299,21 +294,21 @@ static int screen_ctx_visible_or_editable_bones_(const bContext *C,
MEM_freeN(objects);
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_visible_bones(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_visible_bones(const bContext *C, bContextDataResult *result)
{
return screen_ctx_visible_or_editable_bones_(C, result, false);
}
-static int screen_ctx_editable_bones(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_editable_bones(const bContext *C, bContextDataResult *result)
{
return screen_ctx_visible_or_editable_bones_(C, result, true);
}
-static int screen_ctx_selected_bones_(const bContext *C,
- bContextDataResult *result,
- const bool selected_editable_bones)
+static eContextResult screen_ctx_selected_bones_(const bContext *C,
+ bContextDataResult *result,
+ const bool selected_editable_bones)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -369,19 +364,20 @@ static int screen_ctx_selected_bones_(const bContext *C,
MEM_freeN(objects);
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_selected_bones(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_selected_bones(const bContext *C, bContextDataResult *result)
{
return screen_ctx_selected_bones_(C, result, false);
}
-static int screen_ctx_selected_editable_bones(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_selected_editable_bones(const bContext *C,
+ bContextDataResult *result)
{
return screen_ctx_selected_bones_(C, result, true);
}
-static int screen_ctx_visible_pose_bones(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_visible_pose_bones(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
@@ -405,11 +401,11 @@ static int screen_ctx_visible_pose_bones(const bContext *C, bContextDataResult *
FOREACH_OBJECT_IN_MODE_END;
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_selected_pose_bones(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_selected_pose_bones(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
@@ -433,12 +429,12 @@ static int screen_ctx_selected_pose_bones(const bContext *C, bContextDataResult
FOREACH_OBJECT_IN_MODE_END;
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_selected_pose_bones_from_active_object(const bContext *C,
- bContextDataResult *result)
+static eContextResult screen_ctx_selected_pose_bones_from_active_object(const bContext *C,
+ bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -458,11 +454,11 @@ static int screen_ctx_selected_pose_bones_from_active_object(const bContext *C,
FOREACH_PCHAN_SELECTED_IN_OBJECT_END;
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_active_bone(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_active_bone(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -472,19 +468,19 @@ static int screen_ctx_active_bone(const bContext *C, bContextDataResult *result)
if (arm->edbo) {
if (arm->act_edbone) {
CTX_data_pointer_set(result, &arm->id, &RNA_EditBone, arm->act_edbone);
- return 1;
+ return CTX_RESULT_OK;
}
}
else {
if (arm->act_bone) {
CTX_data_pointer_set(result, &arm->id, &RNA_Bone, arm->act_bone);
- return 1;
+ return CTX_RESULT_OK;
}
}
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_active_pose_bone(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_active_pose_bone(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -495,11 +491,11 @@ static int screen_ctx_active_pose_bone(const bContext *C, bContextDataResult *re
pchan = BKE_pose_channel_active(obpose);
if (pchan) {
CTX_data_pointer_set(result, &obpose->id, &RNA_PoseBone, pchan);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_active_object(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_active_object(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -509,9 +505,9 @@ static int screen_ctx_active_object(const bContext *C, bContextDataResult *resul
CTX_data_id_pointer_set(result, &obact->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_object(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_object(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -521,9 +517,9 @@ static int screen_ctx_object(const bContext *C, bContextDataResult *result)
CTX_data_id_pointer_set(result, &obact->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_edit_object(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_edit_object(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -533,9 +529,9 @@ static int screen_ctx_edit_object(const bContext *C, bContextDataResult *result)
CTX_data_id_pointer_set(result, &obedit->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_sculpt_object(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_sculpt_object(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -545,9 +541,9 @@ static int screen_ctx_sculpt_object(const bContext *C, bContextDataResult *resul
CTX_data_id_pointer_set(result, &obact->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_vertex_paint_object(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_vertex_paint_object(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -556,9 +552,9 @@ static int screen_ctx_vertex_paint_object(const bContext *C, bContextDataResult
CTX_data_id_pointer_set(result, &obact->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_weight_paint_object(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_weight_paint_object(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -567,9 +563,9 @@ static int screen_ctx_weight_paint_object(const bContext *C, bContextDataResult
CTX_data_id_pointer_set(result, &obact->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_image_paint_object(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_image_paint_object(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -578,9 +574,10 @@ static int screen_ctx_image_paint_object(const bContext *C, bContextDataResult *
CTX_data_id_pointer_set(result, &obact->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_particle_edit_object(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_particle_edit_object(const bContext *C,
+ bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -589,9 +586,9 @@ static int screen_ctx_particle_edit_object(const bContext *C, bContextDataResult
CTX_data_id_pointer_set(result, &obact->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_pose_object(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_pose_object(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
@@ -600,9 +597,9 @@ static int screen_ctx_pose_object(const bContext *C, bContextDataResult *result)
if (obpose) {
CTX_data_id_pointer_set(result, &obpose->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
-static int screen_ctx_sequences(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_sequences(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
Scene *scene = WM_window_get_active_scene(win);
@@ -612,11 +609,11 @@ static int screen_ctx_sequences(const bContext *C, bContextDataResult *result)
CTX_data_list_add(result, &scene->id, &RNA_Sequence, seq);
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_selected_sequences(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_selected_sequences(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
Scene *scene = WM_window_get_active_scene(win);
@@ -628,11 +625,12 @@ static int screen_ctx_selected_sequences(const bContext *C, bContextDataResult *
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_selected_editable_sequences(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_selected_editable_sequences(const bContext *C,
+ bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
Scene *scene = WM_window_get_active_scene(win);
@@ -644,11 +642,11 @@ static int screen_ctx_selected_editable_sequences(const bContext *C, bContextDat
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_selected_nla_strips(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_selected_nla_strips(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
Scene *scene = WM_window_get_active_scene(win);
@@ -671,11 +669,11 @@ static int screen_ctx_selected_nla_strips(const bContext *C, bContextDataResult
ANIM_animdata_freelist(&anim_data);
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_gpencil_data(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_gpencil_data(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ScrArea *area = CTX_wm_area(C);
@@ -690,11 +688,11 @@ static int screen_ctx_gpencil_data(const bContext *C, bContextDataResult *result
if (gpd) {
CTX_data_id_pointer_set(result, &gpd->id);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_gpencil_data_owner(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_gpencil_data_owner(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ScrArea *area = CTX_wm_area(C);
@@ -710,11 +708,11 @@ static int screen_ctx_gpencil_data_owner(const bContext *C, bContextDataResult *
if (gpd_ptr) {
CTX_data_pointer_set(result, ptr.owner_id, ptr.type, ptr.data);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_annotation_data(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_annotation_data(const bContext *C, bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
bScreen *screen = CTX_wm_screen(C);
@@ -724,11 +722,12 @@ static int screen_ctx_annotation_data(const bContext *C, bContextDataResult *res
if (gpd) {
CTX_data_id_pointer_set(result, &gpd->id);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_annotation_data_owner(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_annotation_data_owner(const bContext *C,
+ bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
bScreen *screen = CTX_wm_screen(C);
@@ -743,11 +742,12 @@ static int screen_ctx_annotation_data_owner(const bContext *C, bContextDataResul
if (gpd_ptr) {
CTX_data_pointer_set(result, ptr.owner_id, ptr.type, ptr.data);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_active_gpencil_layer(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_active_gpencil_layer(const bContext *C,
+ bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ScrArea *area = CTX_wm_area(C);
@@ -760,12 +760,13 @@ static int screen_ctx_active_gpencil_layer(const bContext *C, bContextDataResult
if (gpl) {
CTX_data_pointer_set(result, &gpd->id, &RNA_GPencilLayer, gpl);
- return 1;
+ return CTX_RESULT_OK;
}
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_active_annotation_layer(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_active_annotation_layer(const bContext *C,
+ bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
bScreen *screen = CTX_wm_screen(C);
@@ -778,12 +779,13 @@ static int screen_ctx_active_annotation_layer(const bContext *C, bContextDataRes
if (gpl) {
CTX_data_pointer_set(result, &gpd->id, &RNA_GPencilLayer, gpl);
- return 1;
+ return CTX_RESULT_OK;
}
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_active_gpencil_frame(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_active_gpencil_frame(const bContext *C,
+ bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ScrArea *area = CTX_wm_area(C);
@@ -796,12 +798,13 @@ static int screen_ctx_active_gpencil_frame(const bContext *C, bContextDataResult
if (gpl) {
CTX_data_pointer_set(result, &gpd->id, &RNA_GPencilLayer, gpl->actframe);
- return 1;
+ return CTX_RESULT_OK;
}
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_visible_gpencil_layers(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_visible_gpencil_layers(const bContext *C,
+ bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ScrArea *area = CTX_wm_area(C);
@@ -816,11 +819,12 @@ static int screen_ctx_visible_gpencil_layers(const bContext *C, bContextDataResu
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_editable_gpencil_layers(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_editable_gpencil_layers(const bContext *C,
+ bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ScrArea *area = CTX_wm_area(C);
@@ -835,11 +839,12 @@ static int screen_ctx_editable_gpencil_layers(const bContext *C, bContextDataRes
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_editable_gpencil_strokes(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_editable_gpencil_strokes(const bContext *C,
+ bContextDataResult *result)
{
wmWindow *win = CTX_wm_window(C);
ScrArea *area = CTX_wm_area(C);
@@ -879,11 +884,11 @@ static int screen_ctx_editable_gpencil_strokes(const bContext *C, bContextDataRe
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_active_operator(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_active_operator(const bContext *C, bContextDataResult *result)
{
wmOperator *op = NULL;
@@ -903,13 +908,13 @@ static int screen_ctx_active_operator(const bContext *C, bContextDataResult *res
if (op && op->ptr) {
CTX_data_pointer_set(result, NULL, &RNA_Operator, op);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_sel_edit_fcurves_(const bContext *C,
- bContextDataResult *result,
- const int extra_filter)
+static eContextResult screen_ctx_sel_edit_fcurves_(const bContext *C,
+ bContextDataResult *result,
+ const int extra_filter)
{
bAnimContext ac;
@@ -932,27 +937,30 @@ static int screen_ctx_sel_edit_fcurves_(const bContext *C,
ANIM_animdata_freelist(&anim_data);
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
-static int screen_ctx_editable_fcurves(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_editable_fcurves(const bContext *C, bContextDataResult *result)
{
return screen_ctx_sel_edit_fcurves_(C, result, ANIMFILTER_FOREDIT);
}
-static int screen_ctx_visible_fcurves(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_visible_fcurves(const bContext *C, bContextDataResult *result)
{
return screen_ctx_sel_edit_fcurves_(C, result, 0);
}
-static int screen_ctx_selected_editable_fcurves(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_selected_editable_fcurves(const bContext *C,
+ bContextDataResult *result)
{
return screen_ctx_sel_edit_fcurves_(C, result, ANIMFILTER_SEL | ANIMFILTER_FOREDIT);
}
-static int screen_ctx_selected_visible_fcurves(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_selected_visible_fcurves(const bContext *C,
+ bContextDataResult *result)
{
return screen_ctx_sel_edit_fcurves_(C, result, ANIMFILTER_SEL);
}
-static int screen_ctx_active_editable_fcurve(const bContext *C, bContextDataResult *result)
+static eContextResult screen_ctx_active_editable_fcurve(const bContext *C,
+ bContextDataResult *result)
{
bAnimContext ac;
@@ -972,9 +980,9 @@ static int screen_ctx_active_editable_fcurve(const bContext *C, bContextDataResu
}
ANIM_animdata_freelist(&anim_data);
- return 1;
+ return CTX_RESULT_OK;
}
- return -1; /* found but not available */
+ return CTX_RESULT_NO_DATA;
}
/* Registry of context callback functions. */
@@ -1057,13 +1065,13 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
{
if (CTX_data_dir(member)) {
CTX_data_dir_set(result, screen_context_dir);
- return 1;
+ return CTX_RESULT_OK;
}
ensure_ed_screen_context_functions();
context_callback callback = BLI_ghash_lookup(ed_screen_context_functions, member);
if (callback == NULL) {
- return 0; /* not found */
+ return CTX_RESULT_MEMBER_NOT_FOUND;
}
return callback(C, result);
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 ************************/
diff --git a/source/blender/editors/space_clip/space_clip.c b/source/blender/editors/space_clip/space_clip.c
index 18df8774e09..b17a0ba03d5 100644
--- a/source/blender/editors/space_clip/space_clip.c
+++ b/source/blender/editors/space_clip/space_clip.c
@@ -575,29 +575,31 @@ static void clip_keymap(struct wmKeyConfig *keyconf)
extern const char *clip_context_dir[]; /* quiet warning. */
const char *clip_context_dir[] = {"edit_movieclip", "edit_mask", NULL};
-static int clip_context(const bContext *C, const char *member, bContextDataResult *result)
+static int /*eContextResult*/ clip_context(const bContext *C,
+ const char *member,
+ bContextDataResult *result)
{
SpaceClip *sc = CTX_wm_space_clip(C);
if (CTX_data_dir(member)) {
CTX_data_dir_set(result, clip_context_dir);
- return true;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "edit_movieclip")) {
if (sc->clip) {
CTX_data_id_pointer_set(result, &sc->clip->id);
}
- return true;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "edit_mask")) {
if (sc->mask_info.mask) {
CTX_data_id_pointer_set(result, &sc->mask_info.mask->id);
}
- return true;
+ return CTX_RESULT_OK;
}
- return false;
+ return CTX_RESULT_MEMBER_NOT_FOUND;
}
/* dropboxes */
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c
index 1d23a409748..510c638d227 100644
--- a/source/blender/editors/space_image/space_image.c
+++ b/source/blender/editors/space_image/space_image.c
@@ -442,25 +442,28 @@ static void image_listener(wmWindow *win, ScrArea *area, wmNotifier *wmn, Scene
const char *image_context_dir[] = {"edit_image", "edit_mask", NULL};
-static int image_context(const bContext *C, const char *member, bContextDataResult *result)
+static int /*eContextResult*/ image_context(const bContext *C,
+ const char *member,
+ bContextDataResult *result)
{
SpaceImage *sima = CTX_wm_space_image(C);
if (CTX_data_dir(member)) {
CTX_data_dir_set(result, image_context_dir);
+ /* TODO(sybren): return CTX_RESULT_OK; */
}
else if (CTX_data_equals(member, "edit_image")) {
CTX_data_id_pointer_set(result, (ID *)ED_space_image(sima));
- return 1;
+ return CTX_RESULT_OK;
}
else if (CTX_data_equals(member, "edit_mask")) {
Mask *mask = ED_space_image_get_mask(sima);
if (mask) {
CTX_data_id_pointer_set(result, &mask->id);
}
- return true;
+ return CTX_RESULT_OK;
}
- return 0;
+ return CTX_RESULT_MEMBER_NOT_FOUND;
}
static void IMAGE_GGT_gizmo2d(wmGizmoGroupType *gzgt)
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index bc4bed502e0..299d3d938d6 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -776,14 +776,15 @@ static void node_region_listener(wmWindow *UNUSED(win),
const char *node_context_dir[] = {
"selected_nodes", "active_node", "light", "material", "world", NULL};
-
-static int node_context(const bContext *C, const char *member, bContextDataResult *result)
+static int /*eContextResult*/ node_context(const bContext *C,
+ const char *member,
+ bContextDataResult *result)
{
SpaceNode *snode = CTX_wm_space_node(C);
if (CTX_data_dir(member)) {
CTX_data_dir_set(result, node_context_dir);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "selected_nodes")) {
bNode *node;
@@ -796,7 +797,7 @@ static int node_context(const bContext *C, const char *member, bContextDataResul
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "active_node")) {
if (snode->edittree) {
@@ -805,7 +806,7 @@ static int node_context(const bContext *C, const char *member, bContextDataResul
}
CTX_data_type_set(result, CTX_DATA_TYPE_POINTER);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "node_previews")) {
if (snode->nodetree) {
@@ -814,28 +815,28 @@ static int node_context(const bContext *C, const char *member, bContextDataResul
}
CTX_data_type_set(result, CTX_DATA_TYPE_POINTER);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "material")) {
if (snode->id && GS(snode->id->name) == ID_MA) {
CTX_data_id_pointer_set(result, snode->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "light")) {
if (snode->id && GS(snode->id->name) == ID_LA) {
CTX_data_id_pointer_set(result, snode->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "world")) {
if (snode->id && GS(snode->id->name) == ID_WO) {
CTX_data_id_pointer_set(result, snode->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
- return 0;
+ return CTX_RESULT_MEMBER_NOT_FOUND;
}
static void node_widgets(void)
diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c
index cce99cd9f08..289477c8353 100644
--- a/source/blender/editors/space_sequencer/space_sequencer.c
+++ b/source/blender/editors/space_sequencer/space_sequencer.c
@@ -457,24 +457,26 @@ static void sequencer_dropboxes(void)
extern const char *sequencer_context_dir[]; /* Quiet warning. */
const char *sequencer_context_dir[] = {"edit_mask", NULL};
-static int sequencer_context(const bContext *C, const char *member, bContextDataResult *result)
+static int /*eContextResult*/ sequencer_context(const bContext *C,
+ const char *member,
+ bContextDataResult *result)
{
Scene *scene = CTX_data_scene(C);
if (CTX_data_dir(member)) {
CTX_data_dir_set(result, sequencer_context_dir);
- return true;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "edit_mask")) {
Mask *mask = BKE_sequencer_mask_get(scene);
if (mask) {
CTX_data_id_pointer_set(result, &mask->id);
}
- return true;
+ return CTX_RESULT_OK;
}
- return false;
+ return CTX_RESULT_MEMBER_NOT_FOUND;
}
static void SEQUENCER_GGT_navigate(wmGizmoGroupType *gzgt)
diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c
index 300f63761c0..4e5949817f3 100644
--- a/source/blender/editors/space_text/space_text.c
+++ b/source/blender/editors/space_text/space_text.c
@@ -248,22 +248,24 @@ static void text_keymap(struct wmKeyConfig *keyconf)
const char *text_context_dir[] = {"edit_text", NULL};
-static int text_context(const bContext *C, const char *member, bContextDataResult *result)
+static int /*eContextResult*/ text_context(const bContext *C,
+ const char *member,
+ bContextDataResult *result)
{
SpaceText *st = CTX_wm_space_text(C);
if (CTX_data_dir(member)) {
CTX_data_dir_set(result, text_context_dir);
- return 1;
+ return CTX_RESULT_OK;
}
if (CTX_data_equals(member, "edit_text")) {
if (st->text != NULL) {
CTX_data_id_pointer_set(result, &st->text->id);
}
- return 1;
+ return CTX_RESULT_OK;
}
- return 0;
+ return CTX_RESULT_MEMBER_NOT_FOUND;
}
/********************* main region ********************/
diff --git a/source/blender/makesdna/DNA_screen_types.h b/source/blender/makesdna/DNA_screen_types.h
index fefea225a5a..cfc9751c9a5 100644
--- a/source/blender/makesdna/DNA_screen_types.h
+++ b/source/blender/makesdna/DNA_screen_types.h
@@ -94,7 +94,7 @@ typedef struct bScreen {
/** If set, screen has timer handler added in window. */
struct wmTimer *animtimer;
/** Context callback. */
- void *context;
+ void /*bContextDataCallback*/ *context;
/** Runtime. */
struct wmTooltipState *tool_tip;
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index 30174e9c605..1aad07af591 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -4260,9 +4260,9 @@ static PyObject *pyrna_struct_getattro(BPy_StructRNA *self, PyObject *pyname)
ListBase newlb;
short newtype;
- const int done = CTX_data_get(C, name, &newptr, &newlb, &newtype);
+ const eContextResult done = CTX_data_get(C, name, &newptr, &newlb, &newtype);
- if (done == 1) { /* Found. */
+ if (done == CTX_RESULT_OK) {
switch (newtype) {
case CTX_DATA_TYPE_POINTER:
if (newptr.data == NULL) {
@@ -4295,7 +4295,7 @@ static PyObject *pyrna_struct_getattro(BPy_StructRNA *self, PyObject *pyname)
break;
}
}
- else if (done == -1) { /* Found, but not set. */
+ else if (done == CTX_RESULT_NO_DATA) {
ret = Py_None;
Py_INCREF(ret);
}
@@ -4482,9 +4482,9 @@ static int pyrna_struct_setattro(BPy_StructRNA *self, PyObject *pyname, PyObject
ListBase newlb;
short newtype;
- const int done = CTX_data_get(C, name, &newptr, &newlb, &newtype);
+ const eContextResult done = CTX_data_get(C, name, &newptr, &newlb, &newtype);
- if (done == 1) {
+ if (done == CTX_RESULT_OK) {
PyErr_Format(
PyExc_AttributeError, "bpy_struct: Context property \"%.200s\" is read-only", name);
BLI_freelistN(&newlb);