B 3[X @ s d Z ddlmZmZmZmZ ddlmZmZm Z m Z mZmZ ddlm Z ddlZddlZdZeejej ZedZdZd Zd Zee e e e e Zdd ZG d d deZedkrddlmZ edddd ddlm Z e e dS )z6 Dialog for building Tkinter accelerator key bindings )ToplevelListbox StringVarTclError)FrameButtonCheckbuttonEntryLabel Scrollbar) messageboxN)ZF1ZF2ZF3ZF4ZF5ZF6ZF7ZF8ZF9ZF10ZF11ZF12z~!@#%^&*()_-+={}[]|;:,.<>/?)TabSpaceZReturn)Z BackSpaceZDeleteZInsert)ZHomeZEndzPage Upz Page Downz Left ArrowzRight ArrowzUp Arrowz Down Arrowc $ C s| ddddddddd d ddd ddddddddddddddddddd d!d"d#d$#}| | | } d%|krr| tjkrr| } d&| S )'z3Translate from keycap symbol to the Tkinter keysym.ZspaceZ asciitildeZexclamZatZ numbersignZpercentZasciicircumZ ampersandZasteriskZ parenleftZ parenrightZ underscoreZminusZplusZequalZ braceleftZ bracerightZbracketleftZbracketrightZbarZ semicolonZcolonZcommaZperiodZlessZgreaterZslashZquestionZPriorZNextZLeftZRightZUpZDownr )#r ~!@#%^&*()_-+={}[]|;:,.<>/?zPage Upz Page Downz Left ArrowzRight ArrowzUp Arrowz Down Arrowr ShiftzKey-)getstringascii_lowercaseupper)key modifiersmapping r2 7/opt/alt/python37/lib64/python3.7/idlelib/config_key.py translate_key s r4 c @ s e Zd ZdZdddddZdd Zdd Zd d Zdd ZdddZ dd Z dd Zdd Zd ddZ d!ddZdd Zdd ZdS )" GetKeysDialogzKey Sequence ErrorF)_htest_utestc C sF t | | | | jdd | jddd | | | | | | d| j || _ || _|| _d| _ t| | _| jd | g | _x,| jD ]"}t| }|d | j| qW d| _| | | d| | d | d | |s | d | d nd f |sB| | d S )a parent - parent of this dialog title - string which is the title of the popup dialog action - string, the name of the virtual event these keys will be mapped to current_key_sequences - list, a list of all key sequence lists currently mapped to virtual events, for overlap checking _htest - bool, change box location when running htest _utest - bool, do not wait when running unittest )borderwidthF)heightwidthZWM_DELETE_WINDOW z+%d+%d N)!r __init__ZwithdrawZ configureZ resizabletitleZ transientZgrab_setZprotocolcancelparentactioncurrent_key_sequencesresultr key_stringsetset_modifiers_for_platform modifier_varsr0 appendadvancedcreate_widgetsZupdate_idletasksZgeometryZwinfo_rootxZwinfo_widthZwinfo_reqwidthZwinfo_rootyZwinfo_heightZwinfo_reqheightZ deiconifyZwait_window) selfrB r@ rC rD r6 r7 modifiervariabler2 r2 r3 r? 0 s@ *zGetKeysDialog.__init__c O s t j|| d S )N)r showerror)rM argskwargsr2 r2 r3 rP ` s zGetKeysDialog.showerrorc C s0 t | ddd | _}|jdddd t | }|jdd d t|dd| jd | _| jjddddd t|dd| jd | _| jjddddd t |dd| _ | j jdddddd t | j d| j dd}|jdd t | j d| jddd}|jddd d t || _ | j jddddd i | _d}xft| j| jD ]T\}}| j||}t| j | j|||d!d"} | jd|ddd# | | j|<