U
    lh	                     @   sp   d dl mZmZmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ G d	d
 d
eZdS )    )UnionTupleOptional   )CTkLabel)CTkEntry)	CTkButton)ThemeManager)CTkToplevel)CTkFontc                       s  e Zd ZdZdeeeeeef f  eeeeeef f  eeeeeef f  eeeeeef f  eeeeeef f  eeeeeef f  eeeeeef f  eeeeeef f  eeeee	f  ed fddZ
dd Zdd	d
Zdd Zdd Zdd Z  ZS )CTkInputDialogz
    Dialog with extra window, message, entry widget, cancel and ok button.
    For detailed information check out the documentation.
    N	CTkDialog)fg_color
text_colorbutton_fg_colorbutton_hover_colorbutton_text_colorentry_fg_colorentry_border_colorentry_text_colortitlefonttextc                    s  t  j|d |d kr$tjd d n| || _|d krFtjd d n| || _|d krhtjd d n| || _|d krtjd d n| || _|d krtjd d n| || _	|d krtjd d n| || _
|d krtjd d	 n| || _|d krtjd d n| || _d | _d
| _|	| _|| _|
| _| | j |   | dd | d| j | d| j | d
d
 |   d S )N)r   r
   r   r   r   r   hover_colorr   border_colorFz-topmostTZWM_DELETE_WINDOW
   )super__init__r	   ZthemeZ_check_color_typeZ	_fg_color_text_color_button_fg_color_button_hover_color_button_text_color_entry_fg_color_entry_border_color_entry_text_color_user_inputZ_runningZ_title_text_fontr   Zlift
attributesprotocol_on_closingafter_create_widgetsZ	resizableZgrab_set)selfr   r   r   r   r   r   r   r   r   r   r   	__class__ J/tmp/pip-unpacked-wheel-ckatmccg/customtkinter/windows/ctk_input_dialog.pyr      s*    """""""$zCTkInputDialog.__init__c                    s,   j ddd  jddd t ddd j j jd _ jjdddd	d	d
d t d j	 j
 j jd _ jjdddd	dd
d t dd j j jd j jd	 _ jjdddddd
d t dd j j jd j jd	 _ jjdddddd
d  d fdd  jd j d S )N)r   r   r   )Zweightr   i,  Ztransparent)masterwidthZ
wraplengthr   r   r   r         ew)rowcolumnZ
columnspanZpadxZpadyZsticky   )r2   r3   r   r   r   r   )r   r5   d   ZOk)	r2   r3   Zborder_widthr   r   r   r   r   command)r5   r   ZCancel)r   r5      c                      s
    j  S N)_entryZfocusr0   r-   r0   r1   <lambda>c       z0CTkInputDialog._create_widgets.<locals>.<lambda>z<Return>)Zgrid_columnconfigureZrowconfigurer   r   r&   r'   Z_labelZgridr   r"   r#   r$   r>   r   r   r    r!   	_ok_eventZ
_ok_button_cancel_eventZ_cancel_buttonr+   bindr?   r0   r?   r1   r,   8   sV    		zCTkInputDialog._create_widgetsc                 C   s    | j  | _|   |   d S r=   )r>   getr%   grab_releasedestroy)r-   eventr0   r0   r1   rB   f   s    zCTkInputDialog._ok_eventc                 C   s   |    |   d S r=   rF   rG   r?   r0   r0   r1   r*   k   s    zCTkInputDialog._on_closingc                 C   s   |    |   d S r=   rI   r?   r0   r0   r1   rC   o   s    zCTkInputDialog._cancel_eventc                 C   s   | j |  | jS r=   )r2   Zwait_windowr%   r?   r0   r0   r1   	get_inputs   s    zCTkInputDialog.get_input)NNNNNNNNr   Nr   )N)__name__
__module____qualname____doc__r   r   strr   tupler   r   r,   rB   r*   rC   rJ   __classcell__r0   r0   r.   r1   r      s<              '.
r   N)typingr   r   r   Zwidgetsr   r   r   Zwidgets.themer	   Zctk_toplevelr
   Zwidgets.fontr   r   r0   r0   r0   r1   <module>   s   