forked from bartvdbraak/blender
example operator that uses a timer.
This commit is contained in:
parent
bf1e2ce41e
commit
d766111632
46
release/scripts/templates/operator_modal_timer.py
Normal file
46
release/scripts/templates/operator_modal_timer.py
Normal file
@ -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()
|
Loading…
Reference in New Issue
Block a user