diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-04-01 16:43:07 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-04-01 16:43:07 +0400 |
commit | 3224efc38419201b44503982541aca8eaeb29486 (patch) | |
tree | 77a09bed4e1668427c48ceac7fdb8021eaa7f729 /source/blender/makesrna | |
parent | 3a28a7450596f46281431bd163b9a237eb481055 (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.h | 4 | ||||
-rw-r--r-- | source/blender/makesrna/RNA_enum_types.h | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_access.c | 26 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_screen.c | 8 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_space.c | 42 |
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."); } |