[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35848] trunk/blender/release/scripts/ templates/operator_modal_timer.py: example operator that uses a timer.

Campbell Barton ideasman42 at gmail.com
Mon Mar 28 15:53:53 CEST 2011


Revision: 35848
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35848
Author:   campbellbarton
Date:     2011-03-28 13:53:53 +0000 (Mon, 28 Mar 2011)
Log Message:
-----------
example operator that uses a timer.

Added Paths:
-----------
    trunk/blender/release/scripts/templates/operator_modal_timer.py

Added: trunk/blender/release/scripts/templates/operator_modal_timer.py
===================================================================
--- trunk/blender/release/scripts/templates/operator_modal_timer.py	                        (rev 0)
+++ trunk/blender/release/scripts/templates/operator_modal_timer.py	2011-03-28 13:53:53 UTC (rev 35848)
@@ -0,0 +1,46 @@
+import bpy
+from bpy.props import IntProperty, FloatProperty
+
+
+class ModalTimerOperator(bpy.types.Operator):
+    '''Operator which runs its self from a timer.'''
+    bl_idname = "wm.modal_timer_operator"
+    bl_label = "Modal Timer Operator"
+
+    _timer = None
+
+    def modal(self, context, event):
+        if event.type == 'ESC':
+            return self.cancel()
+
+        if event.type == 'TIMER':
+            # change theme color, silly!
+            color = context.user_preferences.themes[0].view_3d.back
+            color.s = 1.0
+            color.h += 0.01
+
+        return {'PASS_THROUGH'}
+
+    def execute(self, context):
+        context.window_manager.modal_handler_add(self)
+        self._timer = context.window_manager.event_timer_add(0.1, context.window)
+        return {'RUNNING_MODAL'}
+
+    def cancel(self, context):
+        context.window_manager.event_timer_remove(self._timer)
+        return {'CANCELLED'}
+
+
+def register():
+    bpy.utils.register_class(ModalTimerOperator)
+
+
+def unregister():
+    bpy.utils.unregister_class(ModalTimerOperator)
+
+
+if __name__ == "__main__":
+    register()
+
+    # test call
+    bpy.ops.wm.modal_timer_operator()




More information about the Bf-blender-cvs mailing list