diff options
Diffstat (limited to 'release/scripts/templates/operator_modal_view3d.py')
-rw-r--r-- | release/scripts/templates/operator_modal_view3d.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/release/scripts/templates/operator_modal_view3d.py b/release/scripts/templates/operator_modal_view3d.py index c116dd28b9e..c494f121017 100644 --- a/release/scripts/templates/operator_modal_view3d.py +++ b/release/scripts/templates/operator_modal_view3d.py @@ -2,6 +2,7 @@ import bpy from mathutils import Vector from bpy.props import FloatVectorProperty + class ViewOperator(bpy.types.Operator): '''Translate the view using mouse events.''' bl_idname = "view3d.modal_operator" @@ -9,7 +10,6 @@ class ViewOperator(bpy.types.Operator): offset = FloatVectorProperty(name="Offset", size=3) - def execute(self, context): v3d = context.space_data rv3d = v3d.region_3d @@ -23,12 +23,15 @@ class ViewOperator(bpy.types.Operator): if event.type == 'MOUSEMOVE': self.offset = (self._initial_mouse - Vector((event.mouse_x, event.mouse_y, 0.0))) * 0.02 self.execute(context) + context.area.header_text_set("Offset %.4f %.4f %.4f" % tuple(self.offset)) elif event.type == 'LEFTMOUSE': + context.area.header_text_set() return {'FINISHED'} elif event.type in ('RIGHTMOUSE', 'ESC'): rv3d.view_location = self._initial_location + context.area.header_text_set() return {'CANCELLED'} return {'RUNNING_MODAL'} @@ -39,7 +42,7 @@ class ViewOperator(bpy.types.Operator): v3d = context.space_data rv3d = v3d.region_3d - context.window_manager.add_modal_handler(self) + context.window_manager.modal_handler_add(self) if rv3d.view_perspective == 'CAMERA': rv3d.view_perspective = 'PERSP' @@ -51,3 +54,15 @@ class ViewOperator(bpy.types.Operator): else: self.report({'WARNING'}, "Active space must be a View3d") return {'CANCELLED'} + + +def register(): + bpy.utils.register_class(ViewOperator) + + +def unregister(): + bpy.utils.unregister_class(ViewOperator) + + +if __name__ == "__main__": + register() |