[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14140] trunk/blender/source/blender: == Align ==

Martin Poirier theeth at yahoo.com
Sun Mar 16 17:00:00 CET 2008


Revision: 14140
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14140
Author:   theeth
Date:     2008-03-16 17:00:00 +0100 (Sun, 16 Mar 2008)

Log Message:
-----------
== Align ==

Use pupmenu menu to select align orientation. Faster workflow than always having to change the current transform orientation beforehand.

Modified Paths:
--------------
    trunk/blender/source/blender/include/BIF_transform.h
    trunk/blender/source/blender/include/BSE_edit.h
    trunk/blender/source/blender/src/edit.c
    trunk/blender/source/blender/src/header_view3d.c
    trunk/blender/source/blender/src/space.c
    trunk/blender/source/blender/src/transform.c
    trunk/blender/source/blender/src/transform_orientations.c

Modified: trunk/blender/source/blender/include/BIF_transform.h
===================================================================
--- trunk/blender/source/blender/include/BIF_transform.h	2008-03-16 14:28:00 UTC (rev 14139)
+++ trunk/blender/source/blender/include/BIF_transform.h	2008-03-16 16:00:00 UTC (rev 14140)
@@ -105,7 +105,7 @@
 void BIF_selectTransformOrientation(struct TransformOrientation *ts);
 void BIF_selectTransformOrientationFromIndex(int index);
 
-char * BIF_menustringTransformOrientation(); /* the returned value was allocated and needs to be freed after use */
+char * BIF_menustringTransformOrientation(char *title); /* the returned value was allocated and needs to be freed after use */
 int BIF_countTransformOrientation();
 
 /* Drawing callbacks */

Modified: trunk/blender/source/blender/include/BSE_edit.h
===================================================================
--- trunk/blender/source/blender/include/BSE_edit.h	2008-03-16 14:28:00 UTC (rev 14139)
+++ trunk/blender/source/blender/include/BSE_edit.h	2008-03-16 16:00:00 UTC (rev 14140)
@@ -40,6 +40,7 @@
 void countall(void);
 void snapmenu(void); 
 void mergemenu(void);
+void alignmenu(void); 
 void delete_context_selected(void);
 void duplicate_context_selected(void);
 void toggle_shading(void);

Modified: trunk/blender/source/blender/src/edit.c
===================================================================
--- trunk/blender/source/blender/src/edit.c	2008-03-16 14:28:00 UTC (rev 14139)
+++ trunk/blender/source/blender/src/edit.c	2008-03-16 16:00:00 UTC (rev 14140)
@@ -1856,7 +1856,23 @@
 	}
 }
 
+void alignmenu()
+{
+	short val;
+	char *str_menu = BIF_menustringTransformOrientation("Align");
+	val= pupmenu(str_menu);
+	MEM_freeN(str_menu);
 
+	if (val >= 0)
+	{
+		short old_val = G.vd->twmode; 
+		G.vd->twmode = val;
+		initTransform(TFM_ALIGN, CTX_NO_PET|CTX_AUTOCONFIRM);
+		Transform();
+		G.vd->twmode = old_val;
+	}
+}
+
 #define MERGELIMIT 0.001
 void mergemenu(void)
 {	

Modified: trunk/blender/source/blender/src/header_view3d.c
===================================================================
--- trunk/blender/source/blender/src/header_view3d.c	2008-03-16 14:28:00 UTC (rev 14139)
+++ trunk/blender/source/blender/src/header_view3d.c	2008-03-16 16:00:00 UTC (rev 14140)
@@ -1787,8 +1787,7 @@
 		G.scene->snap_target = SCE_SNAP_TARGET_ACTIVE;
 		break;
 	case 21:
-		initTransform(TFM_ALIGN, CTX_NO_PET|CTX_AUTOCONFIRM);
-		Transform();
+		alignmenu();
 		break;
 	}
 	allqueue(REDRAWVIEW3D, 0);
@@ -5603,7 +5602,7 @@
 				xco+= XIC;
 			}
 			
-			str_menu = BIF_menustringTransformOrientation();
+			str_menu = BIF_menustringTransformOrientation("Orientation");
 			uiDefButS(block, MENU, B_MAN_MODE, str_menu,xco,0,70,YIC, &G.vd->twmode, 0, 0, 0, 0, "Transform Orientation (ALT+Space)");
 			MEM_freeN(str_menu);
 			

Modified: trunk/blender/source/blender/src/space.c
===================================================================
--- trunk/blender/source/blender/src/space.c	2008-03-16 14:28:00 UTC (rev 14139)
+++ trunk/blender/source/blender/src/space.c	2008-03-16 16:00:00 UTC (rev 14140)
@@ -1744,10 +1744,7 @@
 				
 			case AKEY:
 				if (G.obedit == 0 && G.qual == (LR_CTRLKEY|LR_ALTKEY)) {
-					if(okee("Align to Transform Orientation")) {
-						initTransform(TFM_ALIGN, CTX_NO_PET|CTX_AUTOCONFIRM);
-						Transform();
-					}
+					alignmenu();
 				}
 				else if(G.qual & LR_CTRLKEY) { /* also with shift! */
 					apply_object();	

Modified: trunk/blender/source/blender/src/transform.c
===================================================================
--- trunk/blender/source/blender/src/transform.c	2008-03-16 14:28:00 UTC (rev 14139)
+++ trunk/blender/source/blender/src/transform.c	2008-03-16 16:00:00 UTC (rev 14140)
@@ -467,7 +467,7 @@
 
 void BIF_selectOrientation() {
 	short val;
-	char *str_menu = BIF_menustringTransformOrientation();
+	char *str_menu = BIF_menustringTransformOrientation("Orientation");
 	val= pupmenu(str_menu);
 	MEM_freeN(str_menu);
 	

Modified: trunk/blender/source/blender/src/transform_orientations.c
===================================================================
--- trunk/blender/source/blender/src/transform_orientations.c	2008-03-16 14:28:00 UTC (rev 14139)
+++ trunk/blender/source/blender/src/transform_orientations.c	2008-03-16 16:00:00 UTC (rev 14140)
@@ -313,8 +313,8 @@
 	G.vd->twmode = V3D_MANIP_CUSTOM + index;
 }
 
-char * BIF_menustringTransformOrientation() {
-	char menu[] = "Orientation%t|Global%x0|Local%x1|Normal%x2|View%x3";
+char * BIF_menustringTransformOrientation(char *title) {
+	char menu[] = "%t|Global%x0|Local%x1|Normal%x2|View%x3";
 	ListBase *transform_spaces = &G.scene->transform_spaces;
 	TransformOrientation *ts;
 	int i = V3D_MANIP_CUSTOM;
@@ -324,7 +324,8 @@
 	str_menu = MEM_callocN(strlen(menu) + 40 * BIF_countTransformOrientation(), "UserTransSpace from matrix");
 	p = str_menu;
 	
-	p += sprintf(str_menu, "%s", menu);
+	p += sprintf(str_menu, "%s", title);
+	p += sprintf(p, "%s", menu);
 	
 	for (ts = transform_spaces->first; ts; ts = ts->next) {
 		p += sprintf(p, "|%s%%x%d", ts->name, i++);





More information about the Bf-blender-cvs mailing list