[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44404] trunk/blender/source/blender/ editors/space_clip/clip_ops.c: Code clean-up and make zoom in/ out operator store mouse coordinate
Sergey Sharybin
sergey.vfx at gmail.com
Fri Feb 24 14:44:49 CET 2012
Revision: 44404
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44404
Author: nazgul
Date: 2012-02-24 13:44:45 +0000 (Fri, 24 Feb 2012)
Log Message:
-----------
Code clean-up and make zoom in/out operator store mouse coordinate
so exec() callback will zoom in/out properly.
Modified Paths:
--------------
trunk/blender/source/blender/editors/space_clip/clip_ops.c
Modified: trunk/blender/source/blender/editors/space_clip/clip_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_ops.c 2012-02-24 13:31:18 UTC (rev 44403)
+++ trunk/blender/source/blender/editors/space_clip/clip_ops.c 2012-02-24 13:44:45 UTC (rev 44404)
@@ -119,16 +119,6 @@
ED_region_tag_redraw(CTX_wm_region(C));
}
-static void view_zoom_in_do_exec(bContext *C, wmEvent *event)
-{
- sclip_zoom_set_factor_exec(C, event, 1.25f);
-}
-
-static void view_zoom_out_do_exec(bContext *C, wmEvent *event)
-{
- sclip_zoom_set_factor_exec(C, event, 0.8f);
-}
-
/******************** open clip operator ********************/
static void clip_filesel(bContext *C, wmOperator *op, const char *path)
@@ -544,18 +534,29 @@
/********************** view zoom in/out operator *********************/
-static int view_zoom_in_exec(bContext *C, wmOperator *UNUSED(op))
+static int view_zoom_in_exec(bContext *C, wmOperator *op)
{
- view_zoom_in_do_exec(C, NULL);
+ SpaceClip *sc= CTX_wm_space_clip(C);
+ ARegion *ar= CTX_wm_region(C);
+ float location[2];
+ RNA_float_get_array(op->ptr, "location", location);
+
+ sclip_zoom_set_factor(sc, ar, 1.25f, location);
+
+ ED_region_tag_redraw(CTX_wm_region(C));
+
return OPERATOR_FINISHED;
}
-static int view_zoom_in_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
+static int view_zoom_in_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- view_zoom_in_do_exec(C, event);
+ float location[2];
- return OPERATOR_FINISHED;
+ ED_clip_mouse_pos(C, event, location);
+ RNA_float_set_array(op->ptr, "location", location);
+
+ return view_zoom_in_exec(C, op);
}
void CLIP_OT_view_zoom_in(wmOperatorType *ot)
@@ -568,20 +569,34 @@
ot->exec= view_zoom_in_exec;
ot->invoke= view_zoom_in_invoke;
ot->poll= ED_space_clip_poll;
+
+ /* properties */
+ RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MAX, FLT_MAX, "Location", "Cursor location in screen coordinates", -10.0f, 10.0f);
}
-static int view_zoom_out_exec(bContext *C, wmOperator *UNUSED(op))
+static int view_zoom_out_exec(bContext *C, wmOperator *op)
{
- view_zoom_out_do_exec(C, NULL);
+ SpaceClip *sc= CTX_wm_space_clip(C);
+ ARegion *ar= CTX_wm_region(C);
+ float location[2];
+ RNA_float_get_array(op->ptr, "location", location);
+
+ sclip_zoom_set_factor(sc, ar, 0.8f, location);
+
+ ED_region_tag_redraw(CTX_wm_region(C));
+
return OPERATOR_FINISHED;
}
-static int view_zoom_out_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
+static int view_zoom_out_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- view_zoom_out_do_exec(C, event);
+ float location[2];
- return OPERATOR_FINISHED;
+ ED_clip_mouse_pos(C, event, location);
+ RNA_float_set_array(op->ptr, "location", location);
+
+ return view_zoom_out_exec(C, op);
}
void CLIP_OT_view_zoom_out(wmOperatorType *ot)
@@ -594,6 +609,9 @@
ot->exec= view_zoom_out_exec;
ot->invoke= view_zoom_out_invoke;
ot->poll= ED_space_clip_poll;
+
+ /* properties */
+ RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MAX, FLT_MAX, "Location", "Cursor location in normalised (0.0-1.0) coordinates", -10.0f, 10.0f);
}
/********************** view zoom ratio operator *********************/
More information about the Bf-blender-cvs
mailing list