Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHoward Trickey <howard.trickey@gmail.com>2012-11-10 17:59:45 +0400
committerHoward Trickey <howard.trickey@gmail.com>2012-11-10 17:59:45 +0400
commit5ebe7d6a139c1062c4bf9de87b20eac8eff9ff59 (patch)
treed18265970532819902d4f9a9dd94650dd3557aba /source/blender/editors
parent4ec5a42456bf64e19377cd4ebd9dd7210dbe45c2 (diff)
Bevel: patch from Thomas Beck fixes numeric offset input and adds wheel input for number of segments.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/mesh/editmesh_tools.c43
1 files changed, 38 insertions, 5 deletions
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index 20b52f50b2d..0c5c756a0fc 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -4627,19 +4627,16 @@ static void edbm_bevel_update_header(wmOperator *op, bContext *C)
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 float edbm_bevel_mval_factor(wmOperator *op, wmEvent *event)
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 @@ static int edbm_bevel_modal(bContext *C, wmOperator *op, wmEvent *event)
edbm_bevel_update_header(op, C);
return OPERATOR_RUNNING_MODAL;
}
+#endif
}
switch (event->type) {
@@ -4983,6 +4993,28 @@ static int edbm_bevel_modal(bContext *C, wmOperator *op, wmEvent *event)
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 @@ static int edbm_bevel_modal(bContext *C, wmOperator *op, wmEvent *event)
edbm_bevel_update_header(op, C);
}
break;
+#endif
}
return OPERATOR_RUNNING_MODAL;