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/blenkernel/intern/context.c')
-rw-r--r--source/blender/blenkernel/intern/context.c36
1 files changed, 24 insertions, 12 deletions
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index 4b1ea2809bc..6f7188115e0 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -52,8 +52,10 @@
#endif
#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
#include "BPY_extern.h"
#endif
+#endif
/* struct */
@@ -69,6 +71,7 @@ struct bContext {
struct ARegion *region;
struct ARegion *menu;
struct bContextStore *store;
+ const char *operator_poll_msg; /* reason for poll failing */
} wm;
/* data context */
@@ -95,7 +98,7 @@ struct bContext {
/* context */
-bContext *CTX_create()
+bContext *CTX_create(void)
{
bContext *C;
@@ -174,7 +177,7 @@ void CTX_free(bContext *C)
/* store */
-bContextStore *CTX_store_add(ListBase *contexts, char *name, PointerRNA *ptr)
+bContextStore *CTX_store_add(ListBase *contexts, const char *name, PointerRNA *ptr)
{
bContextStoreEntry *entry;
bContextStore *ctx, *lastctx;
@@ -245,7 +248,7 @@ void CTX_py_init_set(bContext *C, int value)
C->data.py_init= value;
}
-void *CTX_py_dict_get(bContext *C)
+void *CTX_py_dict_get(const bContext *C)
{
return C->data.py_context;
}
@@ -466,6 +469,16 @@ void CTX_wm_menu_set(bContext *C, ARegion *menu)
C->wm.menu= menu;
}
+void CTX_wm_operator_poll_msg_set(bContext *C, const char *msg)
+{
+ C->wm.operator_poll_msg= msg;
+}
+
+const char *CTX_wm_operator_poll_msg_get(bContext *C)
+{
+ return C->wm.operator_poll_msg;
+}
+
/* data context utility functions */
struct bContextDataResult {
@@ -481,10 +494,10 @@ static int ctx_data_get(bContext *C, const char *member, bContextDataResult *res
int ret= 0;
memset(result, 0, sizeof(bContextDataResult));
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
if(CTX_py_dict_get(C)) {
- return BPY_context_get(C, member, result);
-// if (BPY_context_get(C, member, result))
+ return BPY_context_member_get(C, member, result);
+// if (BPY_context_member_get(C, member, result))
// return 1;
}
#endif
@@ -610,8 +623,7 @@ ListBase CTX_data_collection_get(const bContext *C, const char *member)
return result.list;
}
else {
- ListBase list;
- memset(&list, 0, sizeof(list));
+ ListBase list= {NULL, NULL};
return list;
}
}
@@ -830,7 +842,7 @@ int CTX_data_mode_enum(const bContext *C)
/* would prefer if we can use the enum version below over this one - Campbell */
/* must be aligned with above enum */
-static char *data_mode_strings[] = {
+static const char *data_mode_strings[] = {
"mesh_edit",
"curve_edit",
"surface_edit",
@@ -845,9 +857,9 @@ static char *data_mode_strings[] = {
"texturepaint",
"particlemode",
"objectmode",
- 0
+ NULL
};
-char *CTX_data_mode_string(const bContext *C)
+const char *CTX_data_mode_string(const bContext *C)
{
return data_mode_strings[CTX_data_mode_enum(C)];
}