mò &U²Ic@s‹dZdkTdkZdkZdkZdefd„ƒYZedjo<eƒZ d„Z e e ddd e ƒi ƒe i ƒndS( s6 Dialog for building Tkinter accelerator key bindings (t*Nt GetKeysDialogcBsƒtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z dd „Z dd „Zd „ZRS(NcCs›ti||ƒ|iddƒ|idtdtƒ|i|ƒ|i|ƒ|i ƒ|i d|i ƒ||_||_ ||_ d|_t|ƒ|_|iidƒ|iƒg|_x:|iD]/}t|ƒ}|idƒ|ii|ƒqÍW|iƒ|iƒ|iƒ|iƒ|id|iƒ|iƒd|iƒd|i ƒ|i!ƒd|i"ƒdfƒ|i#ƒ|i$ƒd S( sõ 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 t borderwidthitheighttwidthtWM_DELETE_WINDOWts+%d+%diN(%tToplevelt__init__tselftparentt configuret resizabletFALSEttitlet transienttgrab_settprotocoltCanceltactiontcurrentKeySequencestresultt StringVart keyStringtsettSetModifiersForPlatformt modifier_varst modifierstmodifiertvariabletappendt CreateWidgetstLoadFinalKeyListtwithdrawtupdate_idletaskstgeometryt winfo_rootxt winfo_widthtwinfo_reqwidtht winfo_rootyt winfo_heighttwinfo_reqheightt deiconifyt wait_window(R R RRRRR((t5/data/zmath/lib/python2.4/idlelib/keybindingDialog.pyR s8                [ c CsZt|dddtƒ}|idtdtdtƒt|ƒ} | idt dt ƒt | ddd d d |i ƒ|_ |i id d dd ddddƒt | ddd d d |iƒ|_|iid d ddddddƒt|ƒ|_t|ƒ|_t|ƒ|_t|ƒ|_|iid d dd dtddddƒ|iid d dd dtddddƒ|iiƒ|iid ddd dtddƒ|iid ddd dtddƒ|iiƒt |d |iddƒ|_|iid ddd dtddddƒt|idd|idƒ} | idtƒt|idtd|idt ddƒ}|idddddt ƒh|_"d } x¡t$|i%|i&ƒD]Š\} }|i)i*| | ƒ}t,|id |i-d|d|d| d d!ƒ}|id d d| dddtƒ||i"| <| d7} qÂWt|idtdd"d#d$d%d&d'ƒ}|id ddd d(d)dddtƒt0|id d*d+d,d-t1ƒ|_2|i2i3d.|i4ƒ|i2id d dd)d/d)dt5ƒt6|id0t7d |i2i8ƒ}|i2i:d1|i;ƒ|id d ddd/d)dt5ƒt |idd2d |i<ƒ|_=|i=id ddd d(d)ƒt|idtdd3|id4d5ƒ}|idtƒt?|id|iƒ|_@|i@idt ƒt|idtdd6d7d8d9d:d;d<ƒ} | id d dd dtƒdS(=NRitrelieftsidetexpandtfillttexttOKRitcommandtrowitcolumntpadxitpadyRitstickysAdvanced Key Binding Entry >>tsticksNew keys for 's' :tanchortjustifyt textvariabletipadxtipadyRtonvaluetoffvalueRs!Select the desired modifier keys s"above, and the final key from the slist on the right. s"Use upper case Symbols when using s&the Shift modifier. (Letters will be sconverted automatically.)t columnspaniiRi t selectmodestrowspantorienttyscrollcommands Clear KeyssEnter new binding(s) for 's' : s2(These bindings will not be checked for validity!)s4Key bindings are specified using Tkinter keysyms as sŸin these samples: , , , , , . Upper case is used when the Shift modifier is present! s8'Emacs style' multi-keystroke bindings are specified as s5follows: , where the first key s!is the 'do-nothing' keybinding. s4Multiple separate bindings for one action should be s,separated by a space, eg., .(BtFrameR tSUNKENt frameMaintpacktTOPtTRUEtBOTHt frameButtonstBOTTOMtXtButtonR2tbuttonOKtgridRt buttonCanceltframeKeySeqBasictframeKeySeqAdvancedtframeControlsBasictframeHelpAdvancedtNSEWtliftt ToggleLevelt buttonLeveltEWtLabelRtlabelTitleBasictWtLEFTRtGROOVEtlabelKeysBasictmodifier_checkbuttonsR5tzipRRRRtmodifier_labeltgettlabelt CheckbuttontBuildKeyStringtcheckt labelFnAdvicetListboxtSINGLEt listKeysFinaltbindtFinalKeySelectedtNSt ScrollbartVERTICALtyviewtscrollKeysFinaltconfigRt ClearKeySeqt buttonCleartlabelTitleAdvancedtEntrytentryKeysAdvancedtlabelHelpAdvanced(R RbRHRjRuRyRgRRkR^R5R|RMR((R,R/s~  % %++ %% +     "  (%"  $ cCsmdk}|idjo,|iidƒoddddg|_ndddg|_hdd <|_dS( sUDetermine 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. Ntdarwins.apptShifttControltOptiontCommandtAlttCtrl(tsystplatformt executabletcountR RRe(R R„((R,R~s  #cCs |iidƒd djoH|iƒ|iiddƒ|iiƒ|iiƒ|ii ƒn8|iƒ|iiddƒ|i iƒ|i iƒdS(NR1itAdvanceds<< Basic Key Binding EntrysAdvanced Key Binding Entry >>( R R[tcgetRwRvRURYRWR{t focus_setRTRV(R ((R,RZs     cCs|iƒdS(N(R Ri(R tevent((R,RpšscCst|iƒ}}|iitƒ}|o#|i||ƒ}|i |ƒn|i i dt i |dƒdƒdS(Nt(R t GetModifierstkeyListRRnRftANCHORtfinalKeyt TranslateKeyRRRtstringtjoin(R RR’R((R,Ris cCs7g}|iD]}||iƒq~}td|ƒS(N(t_[1]R RRRftmodListtfiltertNone(R R—R–R((R,R¥s*cCs[|iidtƒ|iitdƒx|iD]}|idƒq0W|i idƒdS(Nis0.0R( R Rnt select_cleartENDRttMOVETORRRR(R R((R,Rw©s  c Csd|_ttitiƒ|_td ƒ|_d|_d|_ d|_ |i|i|i|i|i |i }|i i t|ŒdS(NtF1tF2tF4tF5tF6tF7tF8tF9tF10tF11tF12s~!@#%^&*()_-+={}[]|;:,.<>/?tTabtSpacetReturnt BackSpacetDeletetInserttHometEndsPage Ups Page Downs Left Arrows Right ArrowsUp Arrows Down Arrow( RRžRžRŸR R¡R¢R£R¤R¥R¦R§(R¨R©Rª(R«R¬R­(R®R¯sPage Ups Page Downs Left Arrows Right ArrowsUp Arrows Down Arrow(R t functionKeysttupleR”tascii_lowercasetdigitst alphanumKeystpunctuationKeystwhitespaceKeysteditKeystmoveKeystkeysRntinsertR›(R R¹((R,R °s    ,cCs¡hdd<dd<dd<dd<d d <d d <d d<dd<dd<dd<dd<dd<dd<dd<dd<dd <d!d"<d#d$<d%d&<d'd(<d)d*<d+d,<d-d.<d/d0<d1d2<d3d4<d5d6<d7d8<d9d:<d;d<<d=d><d?d@<dAdB<dCdD<dEdF<}||iƒjo||}ndG|jo |tijo|iƒ}ndH|}|SdIS(Js2Translate from keycap symbol to the Tkinter keysymR©tspacet~t asciitildet!texclamt@tatt#t numbersignt%tpercentt^t asciicircumt&t ampersandRtasteriskt(t parenleftt)t parenrightt_t underscoreRtminust+tplust=tequalt{t braceleftt}t bracerightt[t bracketleftt]t bracketrightt|tbart;t semicolont:tcolont,tcommat.tperiodRŒtlessRŽtgreatert/tslasht?tquestionsPage UptPriors Page DowntNexts Left ArrowtLefts Right ArrowtRightsUp ArrowtUps Down ArrowtDownR¨ttabR~sKey-N(t translateDicttkeyR¹RR”R²tupper(R RöRRõ((R,R“¿sÿB  cCs1|iƒo |iiƒ|_|iƒndS(N(R tKeysOKRRfRtdestroy(R R‹((R,R2Òs cCsd|_|iƒdS(NR(R RRù(R R‹((R,R×s cCsh|iiƒ}|iƒ|iitƒ}|iƒ}|i ƒ}t }d}|p tid|d|ddƒnï|idƒp tid|d|ddƒn¿| o0||ijo tid|d|ddƒn‡|d gjo:||idjo&d }tid|d|d|ƒn=||ijo&d }tid|d|d|ƒnt}|S(s-Validity check on user's keybinding selectionsKey Sequence ErrorRR tmessagesNo keys specified.RŽsMissing the final KeysNo modifier key(s) specified.R~R¨R©sbThe shift modifier by itself may not be used with this key symbol; only with F1-F12, Tab, or Spaces'This key combination is already in use.N(sTabsSpace(R RRfR¹tstripRnR‘R’RRtsplitt keySequencetFalsetkeysOKRt tkMessageBoxt showerrortendswithR°tmsgRtTrue(R RRR¹RÿR’RRý((R,RøÛs6   $(t__name__t __module__RRRRZRpRiRRwR R“R™R2RRø(((R,Rs & O         t__main__cCs'd}ttddgƒ}|iGHdS(NRsGet Keyss find-again(tkeySeqRtroottdlgR(R R((R,trunsR1tDialogR3(t__doc__tTkinterRR”tosRRRtTkR R RPRItmainloop(R R”R RRR((R,Rìs õ