
    \d8                     l   d Z ddlZddlmZ ddlmZ 	  eed          sddlZ ej        d           n# e	e
f$ r Y nw xY wddlZ eed          r ej                      G d d	ej                  Z G d
 dej                  ZddZddZej                                        dk    reZneZdgZdS )a>  
This module provides support for Twisted to interact with the glib/gtk2
mainloop.

In order to use this support, simply do the following::

    from twisted.internet import gtk2reactor
    gtk2reactor.install()

Then use twisted.internet APIs as usual.  The other methods here are not
intended to be called directly.
    N)	_glibbase)runtimefrozenz2.0threads_initc                   x    e Zd ZdZej        ej        z  ej        z  Zej	        Z
ej        Ze
ez  Zeez  ZddZdS )Gtk2Reactorz&
    PyGTK+ 2 event loop reactor.
    Tc                 j    d }|du rdd l }t          j                            | t          ||           d S NTr   )useGtk)gtkr   GlibReactorBase__init__gobjectselfr   _gtks      <lib/python3.11/site-packages/twisted/internet/gtk2reactor.pyr   zGtk2Reactor.__init__F   sB    T>>!**4$v*NNNNN    NT)__name__
__module____qualname____doc__r   IO_HUPIO_ERRIO_NVAL_POLL_DISCONNECTEDIO_IN_POLL_INIO_OUT	_POLL_OUTINFLAGSOUTFLAGSr    r   r   r   r   7   sv          !'.87?J}HI
 ++G--HO O O O O Or   r   c                       e Zd ZdZddZdS )PortableGtkReactorzd
    Reactor that works on Windows.

    Sockets aren't supported by GTK+'s input_add on Win32.
    Tc                 j    d }|du rdd l }t          j                            | t          ||           d S r
   )r   r   PortableGlibReactorBaser   r   r   s      r   r   zPortableGtkReactor.__init__U   sB    T>>)224$v2VVVVVr   Nr   )r   r   r   r   r   r$   r   r   r&   r&   N   s8         W W W W W Wr   r&   Tc                 F    t          |           }ddlm}  ||           |S )z
    Configure the twisted mainloop to be run inside the gtk mainloop.

    @param useGtk: should glib rather than GTK+ event loop be
        used (this will be slightly faster but does not support GUI).
    r   installReactor)r   twisted.internet.mainr+   r   reactorr+   s      r   installr/   ]   s8     &!!G444444N7Nr   c                 D    t                      }ddlm}  ||           |S )zK
    Configure the twisted mainloop to be run inside the gtk mainloop.
    r   r*   )r&   r,   r+   r-   s      r   portableInstallr1   k   s6     !""G444444N7Nr   posixr/   r   )r   systwisted.internetr   twisted.pythonr   hasattrpygtkrequireImportErrorAttributeErrorr   r   r   r   r(   r&   r/   r1   platformgetType__all__r$   r   r   <module>r>      s    


 ' & & & & & " " " " " "	73!! e^$ 	 	 	D	 
77N##  GO O O O O)+ O O O.W W W W W: W W W       ((GGG +s    5 ??