[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57339] trunk/blender/source/blender/ makesrna/intern: Fix for r57316: SPACE_EMPTY *is* needed in RNA enum for now, exported keymaps abuse it...

Bastien Montagne montagne29 at wanadoo.fr
Mon Jun 10 12:37:24 CEST 2013


Revision: 57339
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57339
Author:   mont29
Date:     2013-06-10 10:37:24 +0000 (Mon, 10 Jun 2013)
Log Message:
-----------
Fix for r57316: SPACE_EMPTY *is* needed in RNA enum for now, exported keymaps abuse it...

So for now, static enum is back to its previous form, and the menu one is dynamically generated by a callback. Not nice, but works.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57316

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_screen.c
    trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_screen.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_screen.c	2013-06-10 09:57:10 UTC (rev 57338)
+++ trunk/blender/source/blender/makesrna/intern/rna_screen.c	2013-06-10 10:37:24 UTC (rev 57339)
@@ -106,6 +106,55 @@
 }
 
 
+/* Returns an UI-compatible list */
+/* Note: Should not be needed, but for now we need to keep EMPTY at least in the static version of this enum, so... */
+static EnumPropertyItem *rna_Area_type_itemf(bContext *UNUSED(C), PointerRNA *UNUSED(ptr),
+                                             PropertyRNA *UNUSED(prop), int *free)
+{
+	EnumPropertyItem *item = NULL;
+	EnumPropertyItem sep = {0, "", ICON_NONE, NULL, NULL};
+	int totitem = 0;
+
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_VIEW3D);
+
+	RNA_enum_item_add(&item, &totitem, &sep);
+
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_TIME);
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_IPO);
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_ACTION);
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_NLA);
+
+	RNA_enum_item_add(&item, &totitem, &sep);
+
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_IMAGE);
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_SEQ);
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_CLIP);
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_TEXT);
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_NODE);
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_LOGIC);
+
+	RNA_enum_item_add(&item, &totitem, &sep);
+
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_BUTS);
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_OUTLINER);
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_USERPREF);
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_INFO);
+
+	RNA_enum_item_add(&item, &totitem, &sep);
+
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_FILE);
+
+	RNA_enum_item_add(&item, &totitem, &sep);
+
+	RNA_enum_items_add_value(&item, &totitem, space_type_items, SPACE_CONSOLE);
+
+	RNA_enum_item_end(&item, &totitem);
+	*free = 1;
+
+	return item;
+}
+
+
 static void rna_Area_type_set(PointerRNA *ptr, int value)
 {
 	ScrArea *sa = (ScrArea *)ptr->data;
@@ -204,7 +253,7 @@
 	prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
 	RNA_def_property_enum_sdna(prop, NULL, "spacetype");
 	RNA_def_property_enum_items(prop, space_type_items);
-	RNA_def_property_enum_funcs(prop, NULL, "rna_Area_type_set", NULL);
+	RNA_def_property_enum_funcs(prop, NULL, "rna_Area_type_set", "rna_Area_type_itemf");
 	RNA_def_property_ui_text(prop, "Editor Type", "Current editor type for this area");
 	RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE);
 	RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_space.c	2013-06-10 09:57:10 UTC (rev 57338)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c	2013-06-10 10:37:24 UTC (rev 57339)
@@ -60,6 +60,7 @@
 
 
 EnumPropertyItem space_type_items[] = {
+#if 0  /* XXX This can't work right now, because keymaps export abused SPACE_EMPTY, so we need it in RNA for now. */
 	{SPACE_VIEW3D, "VIEW_3D", ICON_VIEW3D, "3D View", ""},
 	{0, "", ICON_NONE, NULL, NULL},
 	{SPACE_TIME, "TIMELINE", ICON_TIME, "Timeline", ""},
@@ -82,6 +83,26 @@
 	{SPACE_FILE, "FILE_BROWSER", ICON_FILESEL, "File Browser", ""},
 	{0, "", ICON_NONE, NULL, NULL},
 	{SPACE_CONSOLE, "CONSOLE", ICON_CONSOLE, "Python Console", ""},
+#else
+	{SPACE_EMPTY, "EMPTY", ICON_NONE, "Empty", ""},
+	{SPACE_VIEW3D, "VIEW_3D", ICON_VIEW3D, "3D View", ""},
+	{SPACE_IPO, "GRAPH_EDITOR", ICON_IPO, "Graph Editor", ""},
+	{SPACE_OUTLINER, "OUTLINER", ICON_OOPS, "Outliner", ""},
+	{SPACE_BUTS, "PROPERTIES", ICON_BUTS, "Properties", ""},
+	{SPACE_FILE, "FILE_BROWSER", ICON_FILESEL, "File Browser", ""},
+	{SPACE_IMAGE, "IMAGE_EDITOR", ICON_IMAGE_COL, "UV/Image Editor", ""},
+	{SPACE_INFO, "INFO", ICON_INFO, "Info", ""},
+	{SPACE_SEQ, "SEQUENCE_EDITOR", ICON_SEQUENCE, "Video Sequence Editor", ""},
+	{SPACE_TEXT, "TEXT_EDITOR", ICON_TEXT, "Text Editor", ""},
+	{SPACE_ACTION, "DOPESHEET_EDITOR", ICON_ACTION, "Dope Sheet", ""},
+	{SPACE_NLA, "NLA_EDITOR", ICON_NLA, "NLA Editor", ""},
+	{SPACE_TIME, "TIMELINE", ICON_TIME, "Timeline", ""},
+	{SPACE_NODE, "NODE_EDITOR", ICON_NODETREE, "Node Editor", ""},
+	{SPACE_LOGIC, "LOGIC_EDITOR", ICON_LOGIC, "Logic Editor", ""},
+	{SPACE_CONSOLE, "CONSOLE", ICON_CONSOLE, "Python Console", ""},
+	{SPACE_USERPREF, "USER_PREFERENCES", ICON_PREFERENCES, "User Preferences", ""},
+	{SPACE_CLIP, "CLIP_EDITOR", ICON_CLIP, "Movie Clip Editor", ""},
+#endif
 	{0, NULL, 0, NULL, NULL}
 };
 




More information about the Bf-blender-cvs mailing list