File: //usr/lib/python3/dist-packages/twisted/internet/__pycache__/wxreactor.cpython-310.pyc
o
�b� � @ s� d Z ddlmZmZ zddlmZmZm Z
W n ey) ddlmZmZm
Z
Y nw ddl
mZ ddlmZmZ G dd� de
�ZG d d
� d
ej�Zdd� ZdgZd
S )aa
This module provides wxPython event loop support for Twisted.
In order to use this support, simply do the following::
| from twisted.internet import wxreactor
| wxreactor.install()
Then, when your root wxApp has been created::
| from twisted.internet import reactor
| reactor.registerWxApp(yourApp)
| reactor.run()
Then use twisted.internet APIs as usual. Stop the event loop using
reactor.stop(), not yourApp.ExitMainLoop().
IMPORTANT: tests will fail when run under this reactor. This is
expected and probably does not reflect on the reactor's ability to run
real applications.
� )�Empty�Queue)� CallAfter�PySimpleApp�Timer)�
wxPySimpleApp�wxCallAfter�wxTimer)�_threadedselect)�log�runtimec @ s e Zd ZdZdd� Zdd� ZdS )�ProcessEventsTimerz�
Timer that tells wx to process pending events.
This is necessary on macOS, probably due to a bug in wx, if we want
wxCallAfters to be handled when modal dialogs, menus, etc. are open.
c C s t �| � || _d S �N)r �__init__�wxapp��selfr � r �</usr/lib/python3/dist-packages/twisted/internet/wxreactor.pyr 2 s
zProcessEventsTimer.__init__c C s | j �� dS )z5
Called repeatedly by wx event loop.
N)r �ProcessPendingEvents�r r r r �Notify6 s zProcessEventsTimer.NotifyN)�__name__�
__module__�__qualname__�__doc__r r r r r r r
* s r
c @ sF e Zd ZdZdZdd� Zdd� Zdd� Zd d
� Zdd� Z ddd�Z
dS )� WxReactorz[
wxPython reactor.
wxPython drives the event loop, select() runs in a thread.
Fc C s
|| _ dS )z;
Register wxApp instance with the reactor.
N)r r r r r �
registerWxAppF s
zWxReactor.registerWxAppc C s>