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:
Diffstat (limited to 'source/blender/editors/screen/screen_context.c')
-rw-r--r--source/blender/editors/screen/screen_context.c118
1 files changed, 69 insertions, 49 deletions
diff --git a/source/blender/editors/screen/screen_context.c b/source/blender/editors/screen/screen_context.c
index 3202dc68f37..c17a34f97b9 100644
--- a/source/blender/editors/screen/screen_context.c
+++ b/source/blender/editors/screen/screen_context.c
@@ -125,11 +125,11 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_dir_set(result, screen_context_dir);
return 1;
}
- else if (CTX_data_equals(member, "scene")) {
+ if (CTX_data_equals(member, "scene")) {
CTX_data_id_pointer_set(result, &scene->id);
return 1;
}
- else if (CTX_data_equals(member, "visible_objects")) {
+ if (CTX_data_equals(member, "visible_objects")) {
LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) {
if (BASE_VISIBLE(v3d, base)) {
CTX_data_id_list_add(result, &base->object->id);
@@ -138,7 +138,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
- else if (CTX_data_equals(member, "selectable_objects")) {
+ if (CTX_data_equals(member, "selectable_objects")) {
LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) {
if (BASE_SELECTABLE(v3d, base)) {
CTX_data_id_list_add(result, &base->object->id);
@@ -147,7 +147,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
- else if (CTX_data_equals(member, "selected_objects")) {
+ if (CTX_data_equals(member, "selected_objects")) {
LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) {
if (BASE_SELECTED(v3d, base)) {
CTX_data_id_list_add(result, &base->object->id);
@@ -156,7 +156,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
- else if (CTX_data_equals(member, "selected_editable_objects")) {
+ if (CTX_data_equals(member, "selected_editable_objects")) {
LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) {
if (BASE_SELECTED_EDITABLE(v3d, base)) {
CTX_data_id_list_add(result, &base->object->id);
@@ -165,7 +165,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
- else if (CTX_data_equals(member, "editable_objects")) {
+ if (CTX_data_equals(member, "editable_objects")) {
/* Visible + Editable, but not necessarily selected */
LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) {
if (BASE_EDITABLE(v3d, base)) {
@@ -175,7 +175,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
- else if (CTX_data_equals(member, "objects_in_mode")) {
+ if (CTX_data_equals(member, "objects_in_mode")) {
if (obact && (obact->mode != OB_MODE_OBJECT)) {
FOREACH_OBJECT_IN_MODE_BEGIN (view_layer, v3d, obact->type, obact->mode, ob_iter) {
CTX_data_id_list_add(result, &ob_iter->id);
@@ -185,7 +185,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
- else if (CTX_data_equals(member, "objects_in_mode_unique_data")) {
+ if (CTX_data_equals(member, "objects_in_mode_unique_data")) {
if (obact && (obact->mode != OB_MODE_OBJECT)) {
FOREACH_OBJECT_IN_MODE_BEGIN (view_layer, v3d, obact->type, obact->mode, ob_iter) {
ob_iter->id.tag |= LIB_TAG_DOIT;
@@ -202,7 +202,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
- else if (CTX_data_equals(member, "visible_bones") || CTX_data_equals(member, "editable_bones")) {
+ if (CTX_data_equals(member, "visible_bones") || CTX_data_equals(member, "editable_bones")) {
bArmature *arm = (obedit && obedit->type == OB_ARMATURE) ? obedit->data : NULL;
EditBone *ebone, *flipbone = NULL;
const bool editable_bones = CTX_data_equals(member, "editable_bones");
@@ -257,9 +257,10 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "selected_bones") ||
- CTX_data_equals(member, "selected_editable_bones")) {
+ if (CTX_data_equals(member, "selected_bones") ||
+ CTX_data_equals(member, "selected_editable_bones")) {
bArmature *arm = (obedit && obedit->type == OB_ARMATURE) ? obedit->data : NULL;
EditBone *ebone, *flipbone = NULL;
const bool selected_editable_bones = CTX_data_equals(member, "selected_editable_bones");
@@ -314,8 +315,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "visible_pose_bones")) {
+ if (CTX_data_equals(member, "visible_pose_bones")) {
Object *obpose = BKE_object_pose_armature_get(obact);
if (obpose && obpose->pose && obpose->data) {
if (obpose != obact) {
@@ -336,8 +338,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "selected_pose_bones")) {
+ if (CTX_data_equals(member, "selected_pose_bones")) {
Object *obpose = BKE_object_pose_armature_get(obact);
if (obpose && obpose->pose && obpose->data) {
if (obpose != obact) {
@@ -358,8 +361,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "selected_pose_bones_from_active_object")) {
+ if (CTX_data_equals(member, "selected_pose_bones_from_active_object")) {
Object *obpose = BKE_object_pose_armature_get(obact);
if (obpose && obpose->pose && obpose->data) {
if (obpose != obact) {
@@ -377,8 +381,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "active_bone")) {
+ if (CTX_data_equals(member, "active_bone")) {
if (obact && obact->type == OB_ARMATURE) {
bArmature *arm = obact->data;
if (arm->edbo) {
@@ -394,8 +399,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
}
}
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "active_pose_bone")) {
+ if (CTX_data_equals(member, "active_pose_bone")) {
bPoseChannel *pchan;
Object *obpose = BKE_object_pose_armature_get(obact);
@@ -404,22 +410,23 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_pointer_set(result, &obpose->id, &RNA_PoseBone, pchan);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "active_object")) {
+ if (CTX_data_equals(member, "active_object")) {
if (obact) {
CTX_data_id_pointer_set(result, &obact->id);
}
return 1;
}
- else if (CTX_data_equals(member, "object")) {
+ if (CTX_data_equals(member, "object")) {
if (obact) {
CTX_data_id_pointer_set(result, &obact->id);
}
return 1;
}
- else if (CTX_data_equals(member, "edit_object")) {
+ if (CTX_data_equals(member, "edit_object")) {
/* convenience for now, 1 object per scene in editmode */
if (obedit) {
CTX_data_id_pointer_set(result, &obedit->id);
@@ -427,49 +434,49 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
return 1;
}
- else if (CTX_data_equals(member, "sculpt_object")) {
+ if (CTX_data_equals(member, "sculpt_object")) {
if (obact && (obact->mode & OB_MODE_SCULPT)) {
CTX_data_id_pointer_set(result, &obact->id);
}
return 1;
}
- else if (CTX_data_equals(member, "vertex_paint_object")) {
+ if (CTX_data_equals(member, "vertex_paint_object")) {
if (obact && (obact->mode & OB_MODE_VERTEX_PAINT)) {
CTX_data_id_pointer_set(result, &obact->id);
}
return 1;
}
- else if (CTX_data_equals(member, "weight_paint_object")) {
+ if (CTX_data_equals(member, "weight_paint_object")) {
if (obact && (obact->mode & OB_MODE_WEIGHT_PAINT)) {
CTX_data_id_pointer_set(result, &obact->id);
}
return 1;
}
- else if (CTX_data_equals(member, "image_paint_object")) {
+ if (CTX_data_equals(member, "image_paint_object")) {
if (obact && (obact->mode & OB_MODE_TEXTURE_PAINT)) {
CTX_data_id_pointer_set(result, &obact->id);
}
return 1;
}
- else if (CTX_data_equals(member, "particle_edit_object")) {
+ if (CTX_data_equals(member, "particle_edit_object")) {
if (obact && (obact->mode & OB_MODE_PARTICLE_EDIT)) {
CTX_data_id_pointer_set(result, &obact->id);
}
return 1;
}
- else if (CTX_data_equals(member, "pose_object")) {
+ if (CTX_data_equals(member, "pose_object")) {
Object *obpose = BKE_object_pose_armature_get(obact);
if (obpose) {
CTX_data_id_pointer_set(result, &obpose->id);
}
return 1;
}
- else if (CTX_data_equals(member, "sequences")) {
+ if (CTX_data_equals(member, "sequences")) {
Editing *ed = BKE_sequencer_editing_get(scene, false);
if (ed) {
Sequence *seq;
@@ -479,8 +486,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "selected_sequences")) {
+ if (CTX_data_equals(member, "selected_sequences")) {
Editing *ed = BKE_sequencer_editing_get(scene, false);
if (ed) {
Sequence *seq;
@@ -492,8 +500,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "selected_editable_sequences")) {
+ if (CTX_data_equals(member, "selected_editable_sequences")) {
Editing *ed = BKE_sequencer_editing_get(scene, false);
if (ed) {
Sequence *seq;
@@ -505,8 +514,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "selected_nla_strips")) {
+ if (CTX_data_equals(member, "selected_nla_strips")) {
bAnimContext ac;
if (ANIM_animdata_get_context(C, &ac) != 0) {
ListBase anim_data = {NULL, NULL};
@@ -530,8 +540,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "gpencil_data")) {
+ if (CTX_data_equals(member, "gpencil_data")) {
/* FIXME: for some reason, CTX_data_active_object(C) returns NULL when called from these
* situations (as outlined above - see Campbell's #ifdefs).
* That causes the get_active function to fail when called from context.
@@ -543,8 +554,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_id_pointer_set(result, &gpd->id);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "gpencil_data_owner")) {
+ if (CTX_data_equals(member, "gpencil_data_owner")) {
/* Pointer to which data/datablock owns the reference to the Grease Pencil data being used
* (as gpencil_data). */
bGPdata **gpd_ptr = NULL;
@@ -557,16 +569,18 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_pointer_set(result, ptr.owner_id, ptr.type, ptr.data);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "annotation_data")) {
+ if (CTX_data_equals(member, "annotation_data")) {
bGPdata *gpd = ED_annotation_data_get_active_direct((ID *)screen, area, scene);
if (gpd) {
CTX_data_id_pointer_set(result, &gpd->id);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "annotation_data_owner")) {
+ if (CTX_data_equals(member, "annotation_data_owner")) {
/* Pointer to which data/datablock owns the reference to the Grease Pencil data being used. */
bGPdata **gpd_ptr = NULL;
PointerRNA ptr;
@@ -578,8 +592,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_pointer_set(result, ptr.owner_id, ptr.type, ptr.data);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "active_gpencil_layer")) {
+ if (CTX_data_equals(member, "active_gpencil_layer")) {
bGPdata *gpd = ED_gpencil_data_get_active_direct(area, obact);
if (gpd) {
@@ -590,8 +605,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
return 1;
}
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "active_annotation_layer")) {
+ if (CTX_data_equals(member, "active_annotation_layer")) {
bGPdata *gpd = ED_annotation_data_get_active_direct((ID *)screen, area, scene);
if (gpd) {
@@ -602,8 +618,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
return 1;
}
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "active_gpencil_frame")) {
+ if (CTX_data_equals(member, "active_gpencil_frame")) {
bGPdata *gpd = ED_gpencil_data_get_active_direct(area, obact);
if (gpd) {
@@ -614,8 +631,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
return 1;
}
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "visible_gpencil_layers")) {
+ if (CTX_data_equals(member, "visible_gpencil_layers")) {
bGPdata *gpd = ED_gpencil_data_get_active_direct(area, obact);
if (gpd) {
@@ -629,8 +647,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "editable_gpencil_layers")) {
+ if (CTX_data_equals(member, "editable_gpencil_layers")) {
bGPdata *gpd = ED_gpencil_data_get_active_direct(area, obact);
if (gpd) {
@@ -644,8 +663,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "editable_gpencil_strokes")) {
+ if (CTX_data_equals(member, "editable_gpencil_strokes")) {
bGPdata *gpd = ED_gpencil_data_get_active_direct(area, obact);
const bool is_multiedit = (bool)GPENCIL_MULTIEDIT_SESSIONS_ON(gpd);
@@ -684,8 +704,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "active_operator")) {
+ if (CTX_data_equals(member, "active_operator")) {
wmOperator *op = NULL;
SpaceFile *sfile = CTX_wm_space_file(C);
@@ -706,11 +727,11 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_pointer_set(result, NULL, &RNA_Operator, op);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "editable_fcurves") ||
- CTX_data_equals(member, "visible_fcurves") ||
- CTX_data_equals(member, "selected_editable_fcurves") ||
- CTX_data_equals(member, "selected_visible_fcurves")) {
+ if (CTX_data_equals(member, "editable_fcurves") || CTX_data_equals(member, "visible_fcurves") ||
+ CTX_data_equals(member, "selected_editable_fcurves") ||
+ CTX_data_equals(member, "selected_visible_fcurves")) {
bAnimContext ac;
if (ANIM_animdata_get_context(C, &ac) && ELEM(ac.spacetype, SPACE_ACTION, SPACE_GRAPH)) {
@@ -740,8 +761,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ return -1; /* found but not available */
}
- else if (CTX_data_equals(member, "active_editable_fcurve")) {
+ if (CTX_data_equals(member, "active_editable_fcurve")) {
bAnimContext ac;
if (ANIM_animdata_get_context(C, &ac) && ELEM(ac.spacetype, SPACE_GRAPH)) {
@@ -762,10 +784,8 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
ANIM_animdata_freelist(&anim_data);
return 1;
}
- }
- else {
- return 0; /* not found */
+ return -1; /* found but not available */
}
- return -1; /* found but not available */
+ return 0; /* not found */
}