PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  pY0@swdZddlTddljZddlZddlZGdddeZe dkrsddl m Z e edS)z6 Dialog for building Tkinter accelerator key bindings )*Nc@seZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ dddZ dddZddZdS) GetKeysDialogFcCstj|||jdd|jdtdt|j||j||j|jd|j ||_ ||_ ||_ d|_ t||_|jjd|jg|_x:|jD]/}t|}|jd|jj|qWd|_|j|j|j|j|jd|j|jd |jd |j|s|jd |j d nd f|j!|j"d S) a3 action - string, the name of the virtual event these keys will be mapped to currentKeys - list, a list of all key sequence lists currently mapped to virtual events, for overlap checking _htest - bool, change box location when running htest borderwidthheightwidthZWM_DELETE_WINDOWFz+%d+%dN)#Toplevel__init__Z configureZ resizableFALSEtitleZ transientZgrab_setprotocolCancelparentactioncurrentKeySequencesresultZ StringVar keyStringsetSetModifiersForPlatform modifier_vars modifiersappendadvanced CreateWidgetsLoadFinalKeyListZwithdrawZupdate_idletasksZgeometryZ winfo_rootxZ winfo_widthZwinfo_reqwidthZ winfo_rootyZ winfo_heightZwinfo_reqheightZ deiconifyZ wait_window)selfrrrrZ_htestmodifiervariabler!//opt/python35/lib/python3.5/keybindingDialog.pyr s@                  0 zGetKeysDialog.__init__c CsZt|dddt}|jdtdtdtt|}|jdtdtt|ddd d d |j |_ |j j d d dd ddddt|ddd d d |j |_ |j j d d ddddddt||_t||_t||_t||_|jj d d dd dtdddd|jj d d dd dtdddd|jj|jj d ddd dtdd|jj d ddd dtdd|jjt|d |jdd|_|jj d ddd dtddddt|jdd|jd}|jdtt|jdtd|jdtdd}|jdddddti|_d }xt|j|j D]\}}|j!j"||}t#|jd |j$d|d|d|d d!} | j d d d|dddt| |j|<|d7}qWt|jdtdd"d#d$d%d&d'} | j d ddd d(d)dddtt%|jd d*d+d,d-t&|_'|j'j(d.|j)|j'j d d dd)d/d)dt*t+|jd0t,d |j'j-} |j'j.d1| j/| j d d ddd/d)dt*t|jdd2d |j0|_1|j1j d ddd d(d)t|jdtdd3|jd4d5} | jdtt2|jd|j|_3|j3jdtt|jdtdd6d7d8d9d:d;d<} | j d d dd dtdS)=Nrr ZreliefZsideexpandfilltextOKrZcommandrowrcolumnZpadxrZpadyrZstickyzAdvanced Key Binding Entry >>ZstickzNew keys for 'z' :ZanchorZjustifyZ textvariableZipadxZipadyr ZonvalueZoffvaluerz!Select the desired modifier keys z"above, and the final key from the zlist on the right. z"Use upper case Symbols when using z&the Shift modifier. (Letters will be zconverted automatically.)Z columnspanr Z selectmodezZrowspanZorientZyscrollcommandz Clear KeyszEnter new binding(s) for 'z' : z2(These bindings will not be checked for validity!)z4Key bindings are specified using Tkinter keysyms as zin these samples: , , , , , . Upper case is used when the Shift modifier is present! z8'Emacs style' multi-keystroke bindings are specified as z5follows: , where the first key z!is the 'do-nothing' keybinding. z4Multiple separate bindings for one action should be z,separated by a space, eg., .)4ZFrameZSUNKENpackZTOPTRUEZBOTHZBOTTOMXZButtonr&ZbuttonOKZgridrZ buttonCancelframeKeySeqBasicframeKeySeqAdvancedframeControlsBasicframeHelpAdvancedZNSEWlift ToggleLevel buttonLevelZEWZLabelrWZLEFTrZGROOVEZmodifier_checkbuttonsziprrmodifier_labelgetZ CheckbuttonBuildKeyStringZListboxZSINGLE listKeysFinalbindFinalKeySelectedZNSZ ScrollbarZVERTICALyviewconfigr ClearKeySeqZ buttonClearZEntryentryKeysAdvanced)rZ frameMainZ frameButtonsZlabelTitleBasicZlabelKeysBasicr)rr ZlabelcheckZ labelFnAdviceZscrollKeysFinalZlabelTitleAdvancedZlabelHelpAdvancedr!r!r"r5s %%++ %%  +  "  "  ( %"    zGetKeysDialog.CreateWidgetscCsLtjdkr'ddddg|_ndddg|_ddi|_dS) aUDetermine list of names of key modifiers for this platform. The names are used to build Tk bindings -- it doesn't matter if the keyboard has these keys, it matters if Tk understands them. The order is also important: key binding equality depends on it, so config-keys.def must use the same ordering. darwinShiftZControlZOptionZCommandZAltZCtrlN)sysplatformrr:)rr!r!r"rsz%GetKeysDialog.SetModifiersForPlatformcCs|jjddddkrr|j|jjdd|jj|jj|jjd|_ n@|j|jjdd|j j|j jd|_ dS)Nr%r'ZAdvancedz<< Basic Key Binding EntryTzAdvanced Key Binding Entry >>F) r7ZcgetrBrAr2r5r4rCZ focus_setrr1r3)rr!r!r"r6s"        zGetKeysDialog.ToggleLevelcCs|jdS)N)r<)reventr!r!r"r?szGetKeysDialog.FinalKeySelectedcCsl|j}}|jjt}|rG|j||}|j||jjddj|ddS)N<->) GetModifiersr=r;ANCHOR TranslateKeyrrrjoin)rZkeyListrfinalKeyr!r!r"r<s  zGetKeysDialog.BuildKeyStringcCs'dd|jD}dd|DS)NcSsg|]}|jqSr!)r;).0r r!r!r" s z.GetKeysDialog.GetModifiers..cSsg|]}|r|qSr!r!)rRmodr!r!r"rSs )r)rZmodListr!r!r"rMszGetKeysDialog.GetModifierscCs[|jjdt|jjtdx|jD]}|jdq0W|jjddS)Nrz0.0r)r=Z select_clearENDr@ZMOVETOrrr)rr r!r!r"rBs zGetKeysDialog.ClearKeySeqc Csd|_ttjtj|_td |_d|_d|_d|_ |j|j|j|j|j|j }|j j t |dS)NF1F2F4F5F6F7F8F9F10F11F12z~!@#%^&*()_-+={}[]|;:,.<>/?TabSpaceReturn BackSpaceDeleteInsertHomeEndPage Up Page Down Left Arrow Right ArrowUp Arrow Down Arrow) rVrWrWrXrYrZr[r\r]r^r_r`)rarbrc)rdrerf)rgrhrirjrkrlrmrn) functionKeystuplestringascii_lowercasedigitsZ alphanumKeysZpunctuationKeysZwhitespaceKeysZeditKeysmoveKeysr=insertrU)rkeysr!r!r"rs    ,zGetKeysDialog.LoadFinalKeyListcFCs#ddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdEi#}||kr||}dF|kr|tjkr|j}dG|}|S)Hz2Translate from keycap symbol to the Tkinter keysymrbZspace~Z asciitilde!Zexclam@Zat#Z numbersign%percent^Z asciicircum&Z ampersandrZasterisk(Z parenleft)Z parenright_Z underscorerKZminus+Zplus=Zequal{Z braceleft}Z braceright[Z bracketleft]Z bracketright|Zbar;Z semicolon:Zcolon,Zcomma.ZperiodrJZlessrLZgreater/Zslash?ZquestionzPage UpZPriorz Page DownZNextz Left ArrowZLeftz Right ArrowZRightzUp ArrowZUpz Down ArrowZDownrarFzKey-)rqrrupper)rkeyrZ translateDictr!r!r"rOs     zGetKeysDialog.TranslateKeyNcCs5|js|jr1|jj|_|jdS)N)rKeysOKrr;rdestroy)rrIr!r!r"r&szGetKeysDialog.OKcCsd|_|jdS)Nr)rr)rrIr!r!r"rs zGetKeysDialog.CancelcCsj|jj}|j|jjt}|j}|j}d}d}|sttjd|d|ddn|j dstjd|d|ddn| r||j |j krtjd|d|dd n|d gkr,||j |j dkr,d }tjd|d|d|n:||j kr`d}tjd|d|d|nd}|S)zValidity check on user's 'basic' keybinding selection. Doesn't check the string produced by the advanced dialog because 'modifiers' isn't set. FzKey Sequence ErrorrrmessagezNo keys specified.rLzMissing the final KeyzNo modifier key(s) specified.rFrarbzBThe shift modifier by itself may not be used with this key symbol.z'This key combination is already in use.T)rarb) rr;stripr=rNrMsplit tkMessageBoxZ showerrorendswithrortr)rrvrQrZ keySequenceZkeysOKrmsgr!r!r"rs6      zGetKeysDialog.KeysOK)__name__ __module__ __qualname__r rrr6r?r<rMrBrrOr&rrr!r!r!r"r s + O        r__main__)run) __doc__tkinterZtkinter.messageboxZ messageboxrrqrGr rrZidlelib.idle_test.htestrr!r!r!r"s