[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52074] trunk/blender/source/blender/ editors/mesh/editmesh_tools.c: Bevel: patch from Thomas Beck fixes numeric offset input and adds wheel input for number of segments .

Howard Trickey howard.trickey at gmail.com
Sat Nov 10 14:59:47 CET 2012


Revision: 52074
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52074
Author:   howardt
Date:     2012-11-10 13:59:45 +0000 (Sat, 10 Nov 2012)
Log Message:
-----------
Bevel: patch from Thomas Beck fixes numeric offset input and adds wheel input for number of segments.

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

Modified: trunk/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2012-11-10 13:53:58 UTC (rev 52073)
+++ trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2012-11-10 13:59:45 UTC (rev 52074)
@@ -4627,19 +4627,16 @@
 	static char str[] = "Confirm: Enter/LClick, Cancel: (Esc/RMB), offset: %s, segments: %d";
 #else
 	static char str[] = "Confirm: Enter/LClick, Cancel: (Esc/RMB), factor: %s, Use Dist (D): %s: Use Even (E): %s";
+	BevelData *opdata = op->customdata;
 #endif
 
 	char msg[HEADER_LENGTH];
 	ScrArea *sa = CTX_wm_area(C);
-	BevelData *opdata = op->customdata;
 
 	if (sa) {
 #ifdef NEW_BEVEL
 		char offset_str[NUM_STR_REP_LEN];
-		if (hasNumInput(&opdata->num_input))
-			outputNumInput(&opdata->num_input, offset_str);
-		else
-			BLI_snprintf(offset_str, NUM_STR_REP_LEN, "%f", RNA_float_get(op->ptr, "offset"));
+		BLI_snprintf(offset_str, NUM_STR_REP_LEN, "%f", RNA_float_get(op->ptr, "offset"));
 		BLI_snprintf(msg, HEADER_LENGTH, str,
 		             offset_str,
 		             RNA_int_get(op->ptr, "segments")
@@ -4940,9 +4937,21 @@
 static int edbm_bevel_modal(bContext *C, wmOperator *op, wmEvent *event)
 {
 	BevelData *opdata = op->customdata;
+	int segments = RNA_int_get(op->ptr, "segments");
 
 	if (event->val == KM_PRESS) {
 		/* Try to handle numeric inputs... */
+#ifdef NEW_BEVEL
+		float value;
+
+		if (handleNumInput(&opdata->num_input, event)) {
+			applyNumInput(&opdata->num_input, &value);
+			RNA_float_set(op->ptr, "offset", value);
+			edbm_bevel_calc(C, op);
+			edbm_bevel_update_header(op, C);
+			return OPERATOR_RUNNING_MODAL;
+		}
+#else
 		float factor;
 
 		if (handleNumInput(&opdata->num_input, event)) {
@@ -4954,6 +4963,7 @@
 			edbm_bevel_update_header(op, C);
 			return OPERATOR_RUNNING_MODAL;
 		}
+#endif
 	}
 
 	switch (event->type) {
@@ -4983,6 +4993,28 @@
 			edbm_bevel_exit(C, op);
 			return OPERATOR_FINISHED;
 
+#ifdef NEW_BEVEL
+		case WHEELUPMOUSE:  /* change number of segments */
+			if (event->val == KM_RELEASE)
+				break;
+
+			segments++;
+			RNA_int_set(op->ptr, "segments", segments);
+			edbm_bevel_calc(C, op);
+			edbm_bevel_update_header(op, C);
+			break;
+
+		case WHEELDOWNMOUSE:  /* change number of segments */
+			if (event->val == KM_RELEASE)
+				break;
+
+			segments = max_ii(segments - 1, 1);
+			RNA_int_set(op->ptr, "segments", segments);
+			edbm_bevel_calc(C, op);
+			edbm_bevel_update_header(op, C);
+			break;
+
+#else
 		case EKEY:
 			if (event->val == KM_PRESS) {
 				int use_even =  RNA_boolean_get(op->ptr, "use_even");
@@ -5007,6 +5039,7 @@
 				edbm_bevel_update_header(op, C);
 			}
 			break;
+#endif
 	}
 
 	return OPERATOR_RUNNING_MODAL;




More information about the Bf-blender-cvs mailing list