Changeset View
Changeset View
Standalone View
Standalone View
release/scripts/templates_py/operator_modal_timer.py
| Show All 25 Lines | def execute(self, context): | ||||
| self._timer = wm.event_timer_add(0.1, window=context.window) | self._timer = wm.event_timer_add(0.1, window=context.window) | ||||
| wm.modal_handler_add(self) | wm.modal_handler_add(self) | ||||
| return {'RUNNING_MODAL'} | return {'RUNNING_MODAL'} | ||||
| def cancel(self, context): | def cancel(self, context): | ||||
| wm = context.window_manager | wm = context.window_manager | ||||
| wm.event_timer_remove(self._timer) | wm.event_timer_remove(self._timer) | ||||
| def menu_func(self, context): | |||||
| self.layout.operator(ModalTimerOperator.bl_idname, text=ModalTimerOperator.bl_label) | |||||
| def register(): | def register(): | ||||
| bpy.utils.register_class(ModalTimerOperator) | bpy.utils.register_class(ModalTimerOperator) | ||||
| bpy.types.VIEW3D_MT_view.append(menu_func) | |||||
| # Register and add to the "view" menu (required to also use F3 search "Modal Timer Operator" for quick access) | |||||
| def unregister(): | def unregister(): | ||||
| bpy.utils.unregister_class(ModalTimerOperator) | bpy.utils.unregister_class(ModalTimerOperator) | ||||
| bpy.types.VIEW3D_MT_view.remove(menu_func) | |||||
| if __name__ == "__main__": | if __name__ == "__main__": | ||||
| register() | register() | ||||
| # test call | # test call | ||||
| bpy.ops.wm.modal_timer_operator() | bpy.ops.wm.modal_timer_operator() | ||||