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:
authorCampbell Barton <ideasman42@gmail.com>2009-08-16 07:40:00 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-08-16 07:40:00 +0400
commit573678df48b3c6296a22ba807b507a5421563990 (patch)
tree7bfa4a687d68809db4bcfe9065bb7db1ee8c7139 /source/blender/makesrna
parent177956a3a71479c56f437acb8524ad1130ba00e5 (diff)
- replace rna context.mode_string with an enum context.mode, that way its self documenting and is used as a string from py anyway.
- view3d use select menus use the context.mode enum value. - if selectmenu in dir(bpy.types) # creates a list of 1400+ strings, does a lookup and throws them away, better avoid this for redrawing.
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r--source/blender/makesrna/intern/rna_context.c36
1 files changed, 24 insertions, 12 deletions
diff --git a/source/blender/makesrna/intern/rna_context.c b/source/blender/makesrna/intern/rna_context.c
index 5d45a3513d1..7239fc1ff3d 100644
--- a/source/blender/makesrna/intern/rna_context.c
+++ b/source/blender/makesrna/intern/rna_context.c
@@ -31,10 +31,10 @@
#include "RNA_define.h"
#include "RNA_types.h"
-#ifdef RNA_RUNTIME
-
#include "BKE_context.h"
+#ifdef RNA_RUNTIME
+
static PointerRNA rna_Context_manager_get(PointerRNA *ptr)
{
bContext *C= (bContext*)ptr->data;
@@ -110,16 +110,10 @@ static PointerRNA rna_Context_user_preferences_get(PointerRNA *ptr)
return newptr;
}
-static void rna_Context_mode_string_get(PointerRNA *ptr, char *value)
+static int rna_Context_mode_get(PointerRNA *ptr)
{
bContext *C= (bContext*)ptr->data;
- strcpy(value, CTX_data_mode_string(C));
-}
-
-static int rna_Context_mode_string_length(PointerRNA *ptr)
-{
- bContext *C= (bContext*)ptr->data;
- return strlen(CTX_data_mode_string(C));
+ return CTX_data_mode_enum(C);
}
#else
@@ -129,6 +123,23 @@ void RNA_def_context(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
+ static EnumPropertyItem mode_items[] = {
+ {CTX_MODE_EDIT_MESH, "EDIT_MESH", 0, "Mesh Edit", ""},
+ {CTX_MODE_EDIT_CURVE, "EDIT_CURVE", 0, "Curve Edit", ""},
+ {CTX_MODE_EDIT_SURFACE, "EDIT_SURFACE", 0, "Surface Edit", ""},
+ {CTX_MODE_EDIT_TEXT, "EDIT_TEXT", 0, "Edit Edit", ""},
+ {CTX_MODE_EDIT_ARMATURE, "EDIT_ARMATURE", 0, "Armature Edit", ""}, // PARSKEL reuse will give issues
+ {CTX_MODE_EDIT_METABALL, "EDIT_METABALL", 0, "Metaball Edit", ""},
+ {CTX_MODE_EDIT_LATTICE, "EDIT_LATTICE", 0, "Lattice Edit", ""},
+ {CTX_MODE_POSE, "POSE", 0, "Pose ", ""},
+ {CTX_MODE_SCULPT, "SCULPT", 0, "Sculpt", ""},
+ {CTX_MODE_PAINT_WEIGHT, "PAINT_WEIGHT", 0, "Weight Paint", ""},
+ {CTX_MODE_PAINT_VERTEX, "PAINT_VERTEX", 0, "Vertex Paint", ""},
+ {CTX_MODE_PAINT_TEXTURE, "PAINT_TEXTURE", 0, "Texture Paint", ""},
+ {CTX_MODE_PARTICLE, "PARTICLE", 0, "Particle", ""},
+ {CTX_MODE_OBJECT, "OBJECT", 0, "Object", ""},
+ {0, NULL, 0, NULL, NULL}};
+
srna= RNA_def_struct(brna, "Context", NULL);
RNA_def_struct_ui_text(srna, "Context", "Current windowmanager and data context.");
RNA_def_struct_sdna(srna, "bContext");
@@ -190,9 +201,10 @@ void RNA_def_context(BlenderRNA *brna)
RNA_def_property_struct_type(prop, "UserPreferences");
RNA_def_property_pointer_funcs(prop, "rna_Context_user_preferences_get", NULL, NULL);
- prop= RNA_def_property(srna, "mode_string", PROP_STRING, PROP_NONE);
+ prop= RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_items(prop, mode_items);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
- RNA_def_property_string_funcs(prop, "rna_Context_mode_string_get", "rna_Context_mode_string_length", NULL);
+ RNA_def_property_enum_funcs(prop, "rna_Context_mode_get", NULL, NULL);
}
#endif