Mini Shell
U
��eg�- � @ s� d Z ddlT ddlmZmZ G dd� d�ZG dd� de�Zdd � ZG d
d� de�ZG dd
� d
e�Z dd� Z
G dd� de�Zdd� ZG dd� de�Z
dd� Zedkr�dd� Ze� dS )a& This modules handles dialog boxes.
It contains the following public symbols:
SimpleDialog -- A simple but flexible modal dialog box
Dialog -- a base class for dialogs
askinteger -- get an integer from the user
askfloat -- get a float from the user
askstring -- get a string from the user
� )�*)�
messagebox�_get_default_rootc @ sL e Zd Zdg ddddfdd�Zddd�Zd d
� Zdd� Zd
d� Zdd� ZdS )�SimpleDialog� Nc C s |rt ||d�| _n
t |�| _|r:| j�|� | j�|� t| j� t| j|dd�| _| jjdtd� t | j�| _
| j
�� || _|| _|| _
| j�d| j� tt|��D ]L}|| } t| j
| | |fdd�d �}
||kr�|
jtd
d� |
jttdd� q�| j�d
| j� | �|� d S )N)�class_i� )�textZaspect� )�expand�fill�<Return>c S s
| � |�S �N)�done��self�num� r �3/opt/cppython/lib/python3.8/tkinter/simpledialog.py�<lambda>8 � z'SimpleDialog.__init__.<locals>.<lambda>�r �command� )ZreliefZborderwidth)�sider r
�WM_DELETE_WINDOW)�Toplevel�root�titleZiconname�
_setup_dialogZMessage�message�packZBOTH�Frame�framer �cancel�default�bind�return_event�range�len�ButtonZconfigZRIDGE�LEFT�protocol�wm_delete_window�_set_transient)r �masterr �buttonsr$ r# r r r �s�br r r �__init__ s2
�zSimpleDialog.__init__� �?�333333�?c
C s | j }|�� |�|� |�� |�� rJ|�� }|�� }|�� }|�� }n|� � }|�
� }d }}|�� } |�� }
||| | }|||
| }|| |� � kr�|� � | }n|dk r�d}||
|�
� kr�|�
� |
}n|dk r�d}|�
d||f � |�� d S )Nr �+%d+%d)r �withdraw� transient�update_idletasksZwinfo_ismappedZwinfo_widthZwinfo_height�winfo_rootx�winfo_rootyZwinfo_screenwidthZwinfo_screenheightZwinfo_reqwidthZwinfo_reqheight�geometry� deiconify)
r r. ZrelxZrelyZwidgetZm_widthZm_heightZm_xZm_yZw_widthZw_height�x�yr r r r- ? s4
zSimpleDialog._set_transientc C s. | j �� | j �� | j �� | j �� | jS r
)r �wait_visibility�grab_set�mainloop�destroyr �r r r r �go\ s
zSimpleDialog.goc C s&