[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13810] trunk/blender/source/blender/src/ header_info.c: * Let 'Add' scripts appear in the Add header menu, not just the scripts window

Matt Ebb matt at mke3.net
Fri Feb 22 02:28:48 CET 2008


Revision: 13810
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13810
Author:   broken
Date:     2008-02-22 02:28:48 +0100 (Fri, 22 Feb 2008)

Log Message:
-----------
* Let 'Add' scripts appear in the Add header menu, not just the scripts window

Modified Paths:
--------------
    trunk/blender/source/blender/src/header_info.c

Modified: trunk/blender/source/blender/src/header_info.c
===================================================================
--- trunk/blender/source/blender/src/header_info.c	2008-02-22 00:40:32 UTC (rev 13809)
+++ trunk/blender/source/blender/src/header_info.c	2008-02-22 01:28:48 UTC (rev 13810)
@@ -1453,44 +1453,48 @@
 
 void do_info_addmenu(void *arg, int event)
 {
-	switch(event) {		
-		case 0:
-			/* Mesh */
-			break;
-		case 1:
-			/* Curve */
-			break;
-		case 2:
-			/* Surface */
-			break;
-		case 3:
-			/* Metaball */
-			break;
-		case 4:
-			/* Text (argument is discarded) */
-			add_primitiveFont(event);
-			break;
-		case 5:
-			/* Empty */
-			add_object_draw(OB_EMPTY);
-			break;
-		case 6:
-			/* Camera */
-			add_object_draw(OB_CAMERA);
-			break;
-		case 8:
-			/* Armature */
-			add_primitiveArmature(OB_ARMATURE);
-			break;
-		case 9:
-			/* Lattice */
-			add_object_draw(OB_LATTICE);
-			break;
-		case 10:
-			/* group instance not yet */
-			break;
-		default:
-			break;
+	if (event>=20) {
+		BPY_menu_do_python(PYMENU_ADD, event - 20);
+	} else {
+		switch(event) {		
+			case 0:
+				/* Mesh */
+				break;
+			case 1:
+				/* Curve */
+				break;
+			case 2:
+				/* Surface */
+				break;
+			case 3:
+				/* Metaball */
+				break;
+			case 4:
+				/* Text (argument is discarded) */
+				add_primitiveFont(event);
+				break;
+			case 5:
+				/* Empty */
+				add_object_draw(OB_EMPTY);
+				break;
+			case 6:
+				/* Camera */
+				add_object_draw(OB_CAMERA);
+				break;
+			case 8:
+				/* Armature */
+				add_primitiveArmature(OB_ARMATURE);
+				break;
+			case 9:
+				/* Lattice */
+				add_object_draw(OB_LATTICE);
+				break;
+			case 10:
+				/* group instance not yet */
+				break;
+			default:
+				break;
+		}
 	}
 	allqueue(REDRAWINFO, 0);
 }
@@ -1500,6 +1504,8 @@
 {
 /*		static short tog=0; */
 	uiBlock *block;
+	BPyMenu *pym;
+	int i=0;
 	short yco= 0;
 
 	block= uiNewBlock(&curarea->uiblocks, "addmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
@@ -1526,6 +1532,15 @@
 	uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Armature",			0, yco-=20, 120, 19, NULL, 0.0, 0.0, 1, 8, "");
 	uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Lattice",			0, yco-=20, 120, 19, NULL, 0.0, 0.0, 1, 9, "");
 
+	pym = BPyMenuTable[PYMENU_ADD];
+	if (pym) {
+		uiDefIconTextBut(block, SEPR, 0, ICON_BLANK1, "",					0, yco-=6,	1620, 6,  NULL, 0.0, 0.0, 0, 0, "");
+		
+		for (; pym; pym = pym->next, i++) {
+			uiDefIconTextBut(block, BUTM, 1, ICON_PYTHON, pym->name, 0, yco-=20, 120, 19, NULL, 0.0, 0.0, 1, i+20, pym->tooltip?pym->tooltip:pym->filename);
+		}
+	}
+
 	uiBlockSetDirection(block, UI_DOWN);
 	uiTextBoundsBlock(block, 80);
 		





More information about the Bf-blender-cvs mailing list