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:
authorAntony Riakiotakis <kalast@gmail.com>2012-04-18 23:59:27 +0400
committerAntony Riakiotakis <kalast@gmail.com>2012-04-18 23:59:27 +0400
commitaeccaa6f32ac724b8b9bcfab6554dadd644684ac (patch)
treecc20a8df092f2cd98d94aab82ca77f2106e358c0
parent18a6282e599bbcf2e633cfbfee4d201234e51a7c (diff)
knife tool: Add state indicator in header for tool options
-rw-r--r--source/blender/editors/mesh/editmesh_knife.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c
index 38429b46469..39b214289dc 100644
--- a/source/blender/editors/mesh/editmesh_knife.c
+++ b/source/blender/editors/mesh/editmesh_knife.c
@@ -188,6 +188,22 @@ static ListBase *knife_get_face_kedges(knifetool_opdata *kcd, BMFace *f);
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 @@ static int knifetool_invoke(bContext *C, wmOperator *op, wmEvent *evt)
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 @@ static int knifetool_modal(bContext *C, wmOperator *op, wmEvent *event)
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 @@ static int knifetool_modal(bContext *C, wmOperator *op, wmEvent *event)
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);