diff options
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/BKE_context.h | 25 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_screen.h | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/context.c | 19 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_context.c | 272 | ||||
-rw-r--r-- | source/blender/editors/space_buttons/buttons_context.c | 98 | ||||
-rw-r--r-- | source/blender/editors/space_clip/space_clip.c | 12 | ||||
-rw-r--r-- | source/blender/editors/space_image/space_image.c | 11 | ||||
-rw-r--r-- | source/blender/editors/space_node/space_node.c | 21 | ||||
-rw-r--r-- | source/blender/editors/space_sequencer/space_sequencer.c | 10 | ||||
-rw-r--r-- | source/blender/editors/space_text/space_text.c | 10 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_screen_types.h | 2 | ||||
-rw-r--r-- | source/blender/python/intern/bpy_rna.c | 10 |
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); |