File manager - Edit - /snap/core22/2411/usr/lib/python3/dist-packages/urwid/__pycache__/main_loop.cpython-310.pyc
Back
o ��o_�� � @ s� d dl mZmZ d dlZd dlZd dlZd dlZd dlZd dlZd dl m Z d dlmZ d dl mZ zd dlZW n eyA Y nw d dlmZmZ d dlmZmZ d dlmZmZ d d lmZ d d lmZ d dlmZ dZ G d d� de!�Z"G dd� de!�Z#G dd� de$�Z%G dd� de$�Z&G dd� de&�Z'G dd� de&�Z(G dd� de&�Z)zd dl*m+Z+ W n ey� e$Z+Y nw G dd� de+�Z,G dd� de&�Z-G d d!� d!e&�Z.ej/d"kr�d#d$l0m1Z1 d+d&d'�Z2d(d)� Z3e4d*kr�e3� dS dS ),� )�division�print_functionN��wraps)�count)�WeakKeyDictionary)�StoppingContext�is_mouse_event)�PYTHON3�reraise)�command_map� REDRAW_SCREEN)�PopUpTarget)�signals)�INPUT_DESCRIPTORS_CHANGEDi c @ s e Zd ZdZdS )�ExitMainLoopz_ When this exception is raised within a main loop the main loop will exit cleanly. N)�__name__� __module__�__qualname__�__doc__� r r �1/usr/lib/python3/dist-packages/urwid/main_loop.pyr 2 s r c @ s e Zd ZdS )�CantUseExternalLoopN)r r r r r r r r 9 s r c @ s e Zd ZdZ d=dd�Zdd � Zed d� edd �Zdd� Zedd� e�Z d>dd�Z d>dd�Zdd� Zdd� Z dd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� Zd-d.� Zd/d0� Zd1d2� Zd3d4� Zd5d6� Zd7d8� Zd9d:� Zd;d<� ZdS )?�MainLoopa� This is the standard main loop implementation for a single interactive session. :param widget: the topmost widget used for painting the screen, stored as :attr:`widget` and may be modified. Must be a box widget. :type widget: widget instance :param palette: initial palette for screen :type palette: iterable of palette entries :param screen: screen to use, default is a new :class:`raw_display.Screen` instance; stored as :attr:`screen` :type screen: display module screen instance :param handle_mouse: ``True`` to ask :attr:`.screen` to process mouse events :type handle_mouse: bool :param input_filter: a function to filter input before sending it to :attr:`.widget`, called from :meth:`.input_filter` :type input_filter: callable :param unhandled_input: a function called when input is not handled by :attr:`.widget`, called from :meth:`.unhandled_input` :type unhandled_input: callable :param event_loop: if :attr:`.screen` supports external an event loop it may be given here, default is a new :class:`SelectEventLoop` instance; stored as :attr:`.event_loop` :type event_loop: event loop instance :param pop_ups: `True` to wrap :attr:`.widget` with a :class:`PopUpTarget` instance to allow any widget to open a pop-up anywhere on the screen :type pop_ups: boolean .. attribute:: screen The screen object this main loop uses for screen updates and reading input .. attribute:: event_loop The event loop object this main loop uses for waiting on alarms and IO r NTFc C s� || _ || _|| _|sddlm} | �� }|r|�|� || _d | _|| _ || _ t|d�s8|d ur8td|f ��|d u r?t � }|| _t| jd�rN| jj| j_i | _d S )Nr )�raw_display�hook_event_loopz=screen object passed %r does not support external event loops�signal_handler_setter)�_widget�handle_mouse�pop_ups�urwidr �Screen�register_palette�screen�screen_size�_unhandled_input� _input_filter�hasattr�NotImplementedError�SelectEventLoop� event_loop�set_signal_handlerr �_watch_pipes) �self�widget�paletter# r �input_filter�unhandled_inputr* r r r r r �__init__j s. � zMainLoop.__init__c C s&