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:
-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);