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.h28
-rw-r--r--source/blender/blenkernel/BKE_screen.h4
-rw-r--r--source/blender/blenkernel/intern/context.c42
-rw-r--r--source/blender/editors/screen/screen_context.c14
-rw-r--r--source/blender/editors/screen/screen_intern.h2
-rw-r--r--source/blender/editors/space_image/space_image.c6
-rw-r--r--source/blender/editors/space_node/space_node.c4
-rw-r--r--source/blender/editors/space_view3d/space_view3d.c20
-rw-r--r--source/blender/editors/space_view3d/view3d_ops.c3
9 files changed, 69 insertions, 54 deletions
diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h
index 160736d4a94..c489aba3326 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -59,13 +59,35 @@ struct wmWindowManager;
struct bContext;
typedef struct bContext bContext;
-typedef void bContextDataMember;
-
struct bContextDataResult;
typedef struct bContextDataResult bContextDataResult;
+enum {
+ CTX_DATA_MAIN,
+ CTX_DATA_SCENE,
+ CTX_DATA_TOOL_SETTINGS,
+
+ CTX_DATA_SELECTED_OBJECTS,
+ CTX_DATA_SELECTED_BASES,
+ CTX_DATA_SELECTED_EDITABLE_OBJECTS,
+ CTX_DATA_SELECTED_EDITABLE_BASES,
+ CTX_DATA_VISIBLE_OBJECTS,
+ CTX_DATA_VISIBLE_BASES,
+
+ CTX_DATA_ACTIVE_OBJECT,
+ CTX_DATA_ACTIVE_BASE,
+ CTX_DATA_EDIT_OBJECT,
+
+ CTX_DATA_EDIT_IMAGE,
+ CTX_DATA_EDIT_IMAGE_BUFFER,
+
+ CTX_DATA_SELECTED_NODES
+};
+
+typedef int bContextDataMember;
+
typedef int (*bContextDataCallback)(const bContext *C,
- const bContextDataMember *member, bContextDataResult *result);
+ bContextDataMember member, bContextDataResult *result);
/* Context */
diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h
index a2e9329a18a..250aaf7245a 100644
--- a/source/blender/blenkernel/BKE_screen.h
+++ b/source/blender/blenkernel/BKE_screen.h
@@ -77,7 +77,7 @@ typedef struct SpaceType {
void (*keymap)(struct wmWindowManager *);
/* return context data */
- int (*context)(const struct bContext *, const void *, struct bContextDataResult *);
+ int (*context)(const struct bContext *, int, struct bContextDataResult *);
/* region type definitions */
ListBase regiontypes;
@@ -117,7 +117,7 @@ typedef struct ARegionType {
void (*cursor)(struct wmWindow *, struct ScrArea *, struct ARegion *ar);
/* return context data */
- int (*context)(const struct bContext *, const void *, struct bContextDataResult *);
+ int (*context)(const struct bContext *, int, struct bContextDataResult *);
/* custom drawing callbacks */
ListBase drawcalls;
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index 2a24e5a9d0f..ccdbea87d87 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -239,18 +239,12 @@ void CTX_wm_ui_block_set(bContext *C, struct uiBlock *block, bContextDataCallbac
/* data context utility functions */
-struct bContextDataMember {
- StructRNA *rna;
- const char *name;
- int collection;
-};
-
struct bContextDataResult {
void *pointer;
ListBase list;
};
-static int ctx_data_get(bContext *C, const bContextDataMember *member, bContextDataResult *result)
+static int ctx_data_get(bContext *C, bContextDataMember member, bContextDataResult *result)
{
int done= 0, recursion= C->data.recursion;
@@ -284,7 +278,7 @@ static int ctx_data_get(bContext *C, const bContextDataMember *member, bContextD
return done;
}
-static void *ctx_data_pointer_get(const bContext *C, const bContextDataMember *member)
+static void *ctx_data_pointer_get(const bContext *C, bContextDataMember member)
{
bContextDataResult result;
@@ -294,7 +288,7 @@ static void *ctx_data_pointer_get(const bContext *C, const bContextDataMember *m
return NULL;
}
-static int ctx_data_pointer_verify(const bContext *C, const bContextDataMember *member, void **pointer)
+static int ctx_data_pointer_verify(const bContext *C, bContextDataMember member, void **pointer)
{
bContextDataResult result;
@@ -308,7 +302,7 @@ static int ctx_data_pointer_verify(const bContext *C, const bContextDataMember *
}
}
-static int ctx_data_collection_get(const bContext *C, const bContextDataMember *member, ListBase *list)
+static int ctx_data_collection_get(const bContext *C, bContextDataMember member, ListBase *list)
{
bContextDataResult result;
@@ -351,7 +345,7 @@ Main *CTX_data_main(const bContext *C)
{
Main *bmain;
- if(ctx_data_pointer_verify(C, CTX_data_main, (void*)&bmain))
+ if(ctx_data_pointer_verify(C, CTX_DATA_MAIN, (void*)&bmain))
return bmain;
else
return C->data.main;
@@ -366,7 +360,7 @@ Scene *CTX_data_scene(const bContext *C)
{
Scene *scene;
- if(ctx_data_pointer_verify(C, CTX_data_scene, (void*)&scene))
+ if(ctx_data_pointer_verify(C, CTX_DATA_SCENE, (void*)&scene))
return scene;
else
return C->data.scene;
@@ -389,62 +383,62 @@ ToolSettings *CTX_data_tool_settings(const bContext *C)
int CTX_data_selected_nodes(const bContext *C, ListBase *list)
{
- return ctx_data_collection_get(C, CTX_data_selected_nodes, list);
+ return ctx_data_collection_get(C, CTX_DATA_SELECTED_NODES, list);
}
int CTX_data_selected_editable_objects(const bContext *C, ListBase *list)
{
- return ctx_data_collection_get(C, CTX_data_selected_editable_objects, list);
+ return ctx_data_collection_get(C, CTX_DATA_SELECTED_EDITABLE_OBJECTS, list);
}
int CTX_data_selected_editable_bases(const bContext *C, ListBase *list)
{
- return ctx_data_collection_get(C, CTX_data_selected_editable_bases, list);
+ return ctx_data_collection_get(C, CTX_DATA_SELECTED_EDITABLE_BASES, list);
}
int CTX_data_selected_objects(const bContext *C, ListBase *list)
{
- return ctx_data_collection_get(C, CTX_data_selected_objects, list);
+ return ctx_data_collection_get(C, CTX_DATA_SELECTED_OBJECTS, list);
}
int CTX_data_selected_bases(const bContext *C, ListBase *list)
{
- return ctx_data_collection_get(C, CTX_data_selected_bases, list);
+ return ctx_data_collection_get(C, CTX_DATA_SELECTED_BASES, list);
}
int CTX_data_visible_objects(const bContext *C, ListBase *list)
{
- return ctx_data_collection_get(C, CTX_data_visible_objects, list);
+ return ctx_data_collection_get(C, CTX_DATA_VISIBLE_OBJECTS, list);
}
int CTX_data_visible_bases(const bContext *C, ListBase *list)
{
- return ctx_data_collection_get(C, CTX_data_visible_bases, list);
+ return ctx_data_collection_get(C, CTX_DATA_VISIBLE_BASES, list);
}
struct Object *CTX_data_active_object(const bContext *C)
{
- return ctx_data_pointer_get(C, CTX_data_active_object);
+ return ctx_data_pointer_get(C, CTX_DATA_ACTIVE_OBJECT);
}
struct Base *CTX_data_active_base(const bContext *C)
{
- return ctx_data_pointer_get(C, CTX_data_active_base);
+ return ctx_data_pointer_get(C, CTX_DATA_ACTIVE_BASE);
}
struct Object *CTX_data_edit_object(const bContext *C)
{
- return ctx_data_pointer_get(C, CTX_data_edit_object);
+ return ctx_data_pointer_get(C, CTX_DATA_EDIT_OBJECT);
}
struct Image *CTX_data_edit_image(const bContext *C)
{
- return ctx_data_pointer_get(C, CTX_data_edit_image);
+ return ctx_data_pointer_get(C, CTX_DATA_EDIT_IMAGE);
}
struct ImBuf *CTX_data_edit_image_buffer(const bContext *C)
{
- return ctx_data_pointer_get(C, CTX_data_edit_image_buffer);
+ return ctx_data_pointer_get(C, CTX_DATA_EDIT_IMAGE_BUFFER);
}
/* data evaluation */
diff --git a/source/blender/editors/screen/screen_context.c b/source/blender/editors/screen/screen_context.c
index e5a1cb95f52..2406c1c5e32 100644
--- a/source/blender/editors/screen/screen_context.c
+++ b/source/blender/editors/screen/screen_context.c
@@ -33,20 +33,20 @@
#include "BKE_context.h"
#include "BKE_utildefines.h"
-int ed_screen_context(const bContext *C, const bContextDataMember *member, bContextDataResult *result)
+int ed_screen_context(const bContext *C, bContextDataMember member, bContextDataResult *result)
{
bScreen *sc= CTX_wm_screen(C);
Scene *scene= sc->scene;
Base *base;
- if(member == CTX_data_scene) {
+ if(member == CTX_DATA_SCENE) {
CTX_data_pointer_set(result, scene);
return 1;
}
- else if(ELEM(member, CTX_data_selected_objects, &CTX_data_selected_bases)) {
+ else if(ELEM(member, CTX_DATA_SELECTED_OBJECTS, CTX_DATA_SELECTED_BASES)) {
for(base=scene->base.first; base; base=base->next) {
if((base->flag & SELECT) && (base->lay & scene->lay)) {
- if(member == CTX_data_selected_objects)
+ if(member == CTX_DATA_SELECTED_OBJECTS)
CTX_data_list_add(result, base->object);
else
CTX_data_list_add(result, base);
@@ -55,19 +55,19 @@ int ed_screen_context(const bContext *C, const bContextDataMember *member, bCont
return 1;
}
- else if(member == CTX_data_active_base) {
+ else if(member == CTX_DATA_ACTIVE_BASE) {
if(scene->basact)
CTX_data_pointer_set(result, scene->basact);
return 1;
}
- else if(member == CTX_data_active_object) {
+ else if(member == CTX_DATA_ACTIVE_OBJECT) {
if(scene->basact)
CTX_data_pointer_set(result, scene->basact->object);
return 1;
}
- else if(member == CTX_data_edit_object) {
+ else if(member == CTX_DATA_EDIT_OBJECT) {
/* convenience for now, 1 object per scene in editmode */
if(scene->obedit)
CTX_data_pointer_set(result, scene->obedit);
diff --git a/source/blender/editors/screen/screen_intern.h b/source/blender/editors/screen/screen_intern.h
index fea46175f8d..862c434e3d4 100644
--- a/source/blender/editors/screen/screen_intern.h
+++ b/source/blender/editors/screen/screen_intern.h
@@ -56,7 +56,7 @@ void ed_screen_set(bContext *C, bScreen *sc);
void ed_screen_fullarea(bContext *C);
/* screen_context.c */
-void ed_screen_context(const bContext *C, const bContextDataMember *member, bContextDataResult *result);
+void ed_screen_context(const bContext *C, bContextDataMember member, bContextDataResult *result);
#endif /* ED_SCREEN_INTERN_H */
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c
index 5ca1a54e40e..7929fcff716 100644
--- a/source/blender/editors/space_image/space_image.c
+++ b/source/blender/editors/space_image/space_image.c
@@ -230,15 +230,15 @@ static void image_listener(ScrArea *sa, wmNotifier *wmn)
}
}
-static int image_context(const bContext *C, const bContextDataMember *member, bContextDataResult *result)
+static int image_context(const bContext *C, bContextDataMember member, bContextDataResult *result)
{
SpaceImage *sima= (SpaceImage*)CTX_wm_space_data(C);
- if(member == CTX_data_edit_image) {
+ if(member == CTX_DATA_EDIT_IMAGE) {
CTX_data_pointer_set(result, get_space_image(sima));
return 1;
}
- else if(member == CTX_data_edit_image_buffer) {
+ else if(member == CTX_DATA_EDIT_IMAGE_BUFFER) {
CTX_data_pointer_set(result, get_space_image_buffer(sima));
return 1;
}
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index 659069e321d..7febc1cc8e2 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -273,11 +273,11 @@ static void node_region_listener(ARegion *ar, wmNotifier *wmn)
}
}
-static int node_context(const bContext *C, const bContextDataMember *member, bContextDataResult *result)
+static int node_context(const bContext *C, bContextDataMember member, bContextDataResult *result)
{
SpaceNode *snode= (SpaceNode*)CTX_wm_space_data(C);
- if(member == CTX_data_selected_nodes) {
+ if(member == CTX_DATA_SELECTED_NODES) {
bNode *node;
for(next_node(snode->edittree); (node=next_node(NULL));) {
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index beaeb68e69a..e9602a3fe03 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -382,19 +382,19 @@ static int object_is_libdata(Object *ob)
return 0;
}
-static int view3d_context(const bContext *C, const bContextDataMember *member, bContextDataResult *result)
+static int view3d_context(const bContext *C, bContextDataMember member, bContextDataResult *result)
{
View3D *v3d= CTX_wm_view3d(C);
Scene *scene= CTX_data_scene(C);
Base *base;
if(v3d==NULL) return 0;
-
- if(ELEM(member, CTX_data_selected_objects, CTX_data_selected_bases)) {
+
+ if(ELEM(member, CTX_DATA_SELECTED_OBJECTS, CTX_DATA_SELECTED_BASES)) {
for(base=scene->base.first; base; base=base->next) {
if((base->flag & SELECT) && (base->lay & v3d->lay)) {
if((base->object->restrictflag & OB_RESTRICT_VIEW)==0) {
- if(member == CTX_data_selected_objects)
+ if(member == CTX_DATA_SELECTED_OBJECTS)
CTX_data_list_add(result, base->object);
else
CTX_data_list_add(result, base);
@@ -404,12 +404,12 @@ static int view3d_context(const bContext *C, const bContextDataMember *member, b
return 1;
}
- else if(ELEM(member, CTX_data_selected_editable_objects, CTX_data_selected_editable_bases)) {
+ else if(ELEM(member, CTX_DATA_SELECTED_EDITABLE_OBJECTS, CTX_DATA_SELECTED_EDITABLE_BASES)) {
for(base=scene->base.first; base; base=base->next) {
if((base->flag & SELECT) && (base->lay & v3d->lay)) {
if((base->object->restrictflag & OB_RESTRICT_VIEW)==0) {
if(0==object_is_libdata(base->object)) {
- if(member == CTX_data_selected_editable_objects)
+ if(member == CTX_DATA_SELECTED_EDITABLE_OBJECTS)
CTX_data_list_add(result, base->object);
else
CTX_data_list_add(result, base);
@@ -420,11 +420,11 @@ static int view3d_context(const bContext *C, const bContextDataMember *member, b
return 1;
}
- else if(ELEM(member, CTX_data_visible_objects, CTX_data_visible_bases)) {
+ else if(ELEM(member, CTX_DATA_VISIBLE_OBJECTS, CTX_DATA_VISIBLE_BASES)) {
for(base=scene->base.first; base; base=base->next) {
if(base->lay & v3d->lay) {
if((base->object->restrictflag & OB_RESTRICT_VIEW)==0) {
- if(member == CTX_data_visible_objects)
+ if(member == CTX_DATA_VISIBLE_OBJECTS)
CTX_data_list_add(result, base->object);
else
CTX_data_list_add(result, base);
@@ -434,14 +434,14 @@ static int view3d_context(const bContext *C, const bContextDataMember *member, b
return 1;
}
- else if(member == CTX_data_active_base) {
+ else if(member == CTX_DATA_ACTIVE_BASE) {
if(scene->basact && (scene->basact->lay & v3d->lay))
if((scene->basact->object->restrictflag & OB_RESTRICT_VIEW)==0)
CTX_data_pointer_set(result, scene->basact);
return 1;
}
- else if(member == CTX_data_active_object) {
+ else if(member == CTX_DATA_ACTIVE_OBJECT) {
if(scene->basact && (scene->basact->lay & v3d->lay))
if((scene->basact->object->restrictflag & OB_RESTRICT_VIEW)==0)
CTX_data_pointer_set(result, scene->basact->object);
diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c
index 795d29ccde1..049c6564429 100644
--- a/source/blender/editors/space_view3d/view3d_ops.c
+++ b/source/blender/editors/space_view3d/view3d_ops.c
@@ -177,8 +177,7 @@ void view3d_keymap(wmWindowManager *wm)
RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_wpaint_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", WM_RADIALCONTROL_STRENGTH);
/* TODO - this is just while we have no way to load a text datablock */
- km = WM_keymap_add_item(keymap, "SCRIPT_OT_run_pyfile", PKEY, KM_PRESS, 0, 0);
- RNA_string_set(km->ptr, "filename", "test.py");
+ RNA_string_set(WM_keymap_add_item(keymap, "SCRIPT_OT_run_pyfile", PKEY, KM_PRESS, 0, 0)->ptr, "filename", "test.py");
transform_keymap_for_space(wm, keymap, SPACE_VIEW3D);