1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- # Copyright (c) Twisted Matrix Laboratories.
- # See LICENSE for details.
-
- #
- """Old method of wxPython support for Twisted.
-
- twisted.internet.wxreactor is probably a better choice.
-
- To use::
-
- | # given a wxApp instance called myWxAppInstance:
- | from twisted.internet import wxsupport
- | wxsupport.install(myWxAppInstance)
-
- Use Twisted's APIs for running and stopping the event loop, don't use
- wxPython's methods.
-
- On Windows the Twisted event loop might block when dialogs are open
- or menus are selected.
-
- Maintainer: Itamar Shtull-Trauring
- """
-
- import warnings
- warnings.warn("wxsupport is not fully functional on Windows, wxreactor is better.")
-
- from twisted.python._oldstyle import _oldStyle
- from twisted.internet import reactor
-
-
-
- @_oldStyle
- class wxRunner:
- """Make sure GUI events are handled."""
-
- def __init__(self, app):
- self.app = app
-
- def run(self):
- """
- Execute pending WX events followed by WX idle events and
- reschedule.
- """
- # run wx events
- while self.app.Pending():
- self.app.Dispatch()
-
- # run wx idle events
- self.app.ProcessIdle()
- reactor.callLater(0.02, self.run)
-
-
- def install(app):
- """Install the wxPython support, given a wxApp instance"""
- runner = wxRunner(app)
- reactor.callLater(0.02, runner.run)
-
-
- __all__ = ["install"]
|