[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