[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45763] trunk/blender/source/blender/ editors/mesh/editmesh_knife.c: knife tool: Add state indicator in header for tool options

Antony Riakiotakis kalast at gmail.com
Wed Apr 18 21:59:28 CEST 2012


Revision: 45763
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45763
Author:   psy-fi
Date:     2012-04-18 19:59:27 +0000 (Wed, 18 Apr 2012)
Log Message:
-----------
knife tool: Add state indicator in header for tool options

Modified Paths:
--------------
    trunk/blender/source/blender/editors/mesh/editmesh_knife.c

Modified: trunk/blender/source/blender/editors/mesh/editmesh_knife.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_knife.c	2012-04-18 19:09:05 UTC (rev 45762)
+++ trunk/blender/source/blender/editors/mesh/editmesh_knife.c	2012-04-18 19:59:27 UTC (rev 45763)
@@ -188,6 +188,22 @@
 static void knife_input_ray_cast(knifetool_opdata *kcd, const int mval_i[2],
                                  float r_origin[3], float r_ray[3]);
 
+static void knife_update_header(bContext *C, knifetool_opdata *kcd)
+{
+	#define HEADER_LENGTH 170
+	char header[HEADER_LENGTH];
+
+	BLI_snprintf(header, HEADER_LENGTH, "LMB: define cut lines, Return or RMB: confirm, E: new cut, Ctrl: midpoint snap (%s), "
+				 "Shift: ignore snap (%s), C: angle constrain (%s), Z: cut through (%s)",
+				 kcd->snap_midpoints? "On" : "Off",
+				 kcd->ignore_edge_snapping?  "On" : "Off",
+				 kcd->angle_snapping? "On" : "Off",
+				 kcd->cut_through? "On" : "Off");
+
+	ED_area_headerprint(CTX_wm_area(C), header);
+}
+
+
 static void knife_project_v3(knifetool_opdata *kcd, const float co[3], float sco[3])
 {
 	ED_view3d_project_float_v3(kcd->ar, co, sco, kcd->projmat);
@@ -2838,9 +2854,7 @@
 	kcd = op->customdata;
 	knifetool_update_mval(kcd, evt->mval);
 
-	ED_area_headerprint(CTX_wm_area(C),
-	                    "LMB: define cut lines, Return or RMB: confirm, E: new cut, Ctrl: midpoint snap, "
-	                    "Shift: ignore snap, C: angle constrain, Z: cut through");
+	knife_update_header(C, kcd);
 
 	return OPERATOR_RUNNING_MODAL;
 }
@@ -2953,6 +2967,7 @@
 
 				knife_recalc_projmat(kcd);
 				knife_update_active(kcd);
+				knife_update_header(C, kcd);
 				ED_region_tag_redraw(kcd->ar);
 				break;
 			case KNF_MODAL_MIDPOINT_OFF:
@@ -2960,21 +2975,26 @@
 
 				knife_recalc_projmat(kcd);
 				knife_update_active(kcd);
+				knife_update_header(C, kcd);
 				ED_region_tag_redraw(kcd->ar);
 				break;
 			case KNF_MODEL_IGNORE_SNAP_ON:
 				ED_region_tag_redraw(kcd->ar);
 				kcd->ignore_vert_snapping = kcd->ignore_edge_snapping = 1;
+				knife_update_header(C, kcd);
 				break;
 			case KNF_MODEL_IGNORE_SNAP_OFF:
 				ED_region_tag_redraw(kcd->ar);
 				kcd->ignore_vert_snapping = kcd->ignore_edge_snapping = 0;
+				knife_update_header(C, kcd);
 				break;
 			case KNF_MODAL_ANGLE_SNAP_TOGGLE:
 				kcd->angle_snapping = !kcd->angle_snapping;
+				knife_update_header(C, kcd);
 				break;
 			case KNF_MODAL_CUT_THROUGH_TOGGLE:
 				kcd->cut_through = !kcd->cut_through;
+				knife_update_header(C, kcd);
 				break;
 			case KNF_MODAL_NEW_CUT:
 				ED_region_tag_redraw(kcd->ar);




More information about the Bf-blender-cvs mailing list