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-04-01 16:43:07 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-04-01 16:43:07 +0400
commit3224efc38419201b44503982541aca8eaeb29486 (patch)
tree77a09bed4e1668427c48ceac7fdb8021eaa7f729 /source/blender/makesrna
parent3a28a7450596f46281431bd163b9a237eb481055 (diff)
Python Panels WIP
- Register python panels - Added a generic class checking function BPY_class_validate() for panels/operators. - No button drawing yet Brecht, Added RNA_enum_value_from_id() and RNA_enum_id_from_value() to rna_access.c to do lookups between identifiers and values of EnumPropertyItem's, Not sure if these should go here.
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r--source/blender/makesrna/RNA_access.h4
-rw-r--r--source/blender/makesrna/RNA_enum_types.h2
-rw-r--r--source/blender/makesrna/intern/rna_access.c26
-rw-r--r--source/blender/makesrna/intern/rna_screen.c8
-rw-r--r--source/blender/makesrna/intern/rna_space.c42
5 files changed, 61 insertions, 21 deletions
diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h
index cde4c4d6867..1bc898016e6 100644
--- a/source/blender/makesrna/RNA_access.h
+++ b/source/blender/makesrna/RNA_access.h
@@ -456,6 +456,10 @@ int RNA_enum_get(PointerRNA *ptr, const char *name);
void RNA_enum_set(PointerRNA *ptr, const char *name, int value);
int RNA_enum_is_equal(PointerRNA *ptr, const char *name, const char *enumname);
+/* lower level functions that donr use a PointerRNA */
+int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value);
+int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier);
+
void RNA_string_get(PointerRNA *ptr, const char *name, char *value);
char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen);
int RNA_string_length(PointerRNA *ptr, const char *name);
diff --git a/source/blender/makesrna/RNA_enum_types.h b/source/blender/makesrna/RNA_enum_types.h
index 9cb49fcaf60..f8c0ba18c29 100644
--- a/source/blender/makesrna/RNA_enum_types.h
+++ b/source/blender/makesrna/RNA_enum_types.h
@@ -30,6 +30,8 @@
/* Types */
extern EnumPropertyItem prop_mode_items[];
+extern EnumPropertyItem space_type_items[];
+extern EnumPropertyItem region_type_items[];
#endif /* RNA_ENUM_TYPES */
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index 52b1b77ddf0..cf6072c2bfd 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -1832,6 +1832,32 @@ int RNA_enum_is_equal(PointerRNA *ptr, const char *name, const char *enumname)
}
}
+int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value)
+{
+ for( ; item->identifier; item++) {
+ if (strcmp(item->identifier, identifier)==0) {
+ *value= item->value;
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier)
+{
+ for( ; item->identifier; item++) {
+ if (item->value==value) {
+ *identifier= item->identifier;
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+
+
void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
{
PropertyRNA *prop= RNA_struct_find_property(ptr, name);
diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c
index 9508357233c..00cf29bfc51 100644
--- a/source/blender/makesrna/intern/rna_screen.c
+++ b/source/blender/makesrna/intern/rna_screen.c
@@ -32,6 +32,14 @@
#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
+EnumPropertyItem region_type_items[] = {
+ {RGN_TYPE_WINDOW, "WINDOW", "Window", ""},
+ {RGN_TYPE_HEADER, "HEADER", "Header", ""},
+ {RGN_TYPE_CHANNELS, "CHANNELS", "Channels", ""},
+ {RGN_TYPE_TEMPORARY, "TEMPORARY", "Temporary", ""},
+ {RGN_TYPE_UI, "BUTTONS_WINDOW", "Window", ""},
+ {0, NULL, NULL, NULL}};
+
#ifdef RNA_RUNTIME
#else
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 5184e904927..9950d70af24 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -33,6 +33,26 @@
#include "WM_types.h"
+EnumPropertyItem space_type_items[] = {
+ {SPACE_EMPTY, "EMPTY", "Empty", ""},
+ {SPACE_VIEW3D, "VIEW_3D", "3D View", ""},
+ {SPACE_IPO, "GRAPH_EDITOR", "Graph Editor", ""},
+ {SPACE_OUTLINER, "OUTLINER", "Outliner", ""},
+ {SPACE_BUTS, "BUTTONS_WINDOW", "Buttons Window", ""},
+ {SPACE_FILE, "FILE_BROWSER", "File Browser", ""},
+ {SPACE_IMAGE, "IMAGE_EDITOR", "Image Editor", ""},
+ {SPACE_INFO, "USER_PREFERENCES", "User Preferences", ""},
+ {SPACE_SEQ, "SEQUENCE_EDITOR", "Sequence Editor", ""},
+ {SPACE_TEXT, "TEXT_EDITOR", "Text Editor", ""},
+ //{SPACE_IMASEL, "IMAGE_BROWSER", "Image Browser", ""},
+ {SPACE_SOUND, "AUDIO_WINDOW", "Audio Window", ""},
+ {SPACE_ACTION, "DOPESHEET_EDITOR", "DopeSheet Editor", ""},
+ {SPACE_NLA, "NLA_EDITOR", "NLA Editor", ""},
+ {SPACE_SCRIPT, "SCRIPTS_WINDOW", "Scripts Window", ""},
+ {SPACE_TIME, "TIMELINE", "Timeline", ""},
+ {SPACE_NODE, "NODE_EDITOR", "Node Editor", ""},
+ {0, NULL, NULL, NULL}};
+
#ifdef RNA_RUNTIME
#include "DNA_scene_types.h"
@@ -117,26 +137,6 @@ static void rna_def_space(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
-
- static EnumPropertyItem type_items[] = {
- {SPACE_EMPTY, "EMPTY", "Empty", ""},
- {SPACE_VIEW3D, "VIEW_3D", "3D View", ""},
- {SPACE_IPO, "GRAPH_EDITOR", "Graph Editor", ""},
- {SPACE_OUTLINER, "OUTLINER", "Outliner", ""},
- {SPACE_BUTS, "BUTTONS_WINDOW", "Buttons Window", ""},
- {SPACE_FILE, "FILE_BROWSER", "File Browser", ""},
- {SPACE_IMAGE, "IMAGE_EDITOR", "Image Editor", ""},
- {SPACE_INFO, "USER_PREFERENCES", "User Preferences", ""},
- {SPACE_SEQ, "SEQUENCE_EDITOR", "Sequence Editor", ""},
- {SPACE_TEXT, "TEXT_EDITOR", "Text Editor", ""},
- //{SPACE_IMASEL, "IMAGE_BROWSER", "Image Browser", ""},
- {SPACE_SOUND, "AUDIO_WINDOW", "Audio Window", ""},
- {SPACE_ACTION, "DOPESHEET_EDITOR", "DopeSheet Editor", ""},
- {SPACE_NLA, "NLA_EDITOR", "NLA Editor", ""},
- {SPACE_SCRIPT, "SCRIPTS_WINDOW", "Scripts Window", ""},
- {SPACE_TIME, "TIMELINE", "Timeline", ""},
- {SPACE_NODE, "NODE_EDITOR", "Node Editor", ""},
- {0, NULL, NULL, NULL}};
srna= RNA_def_struct(brna, "Space", NULL);
RNA_def_struct_sdna(srna, "SpaceLink");
@@ -145,7 +145,7 @@ static void rna_def_space(BlenderRNA *brna)
prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "spacetype");
- RNA_def_property_enum_items(prop, type_items);
+ RNA_def_property_enum_items(prop, space_type_items);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_ui_text(prop, "Type", "Space data type.");
}