eQSrSSKrSSK7 SSKJr SSKJrJr SSKJ r Sr Sr \ S 4r S r S rS rS rSrSrSr"SS5r\S:XaSSKJr \"SSSS9 gg)zH An auto-completion window for IDLE, used by the autocomplete extension N)*) Scrollbar)FILESATTRS)MC_SHIFTz<>z z z<>) zzz z zz z z z z z z!<>z zz zct\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrg)AutoCompleteWindowc4XlX lS=Ul=UlUlS=UlUlSUlSUlSUl SUl SUl SUl SUl S=Ul=Ul=Ul=Ul=UlUlSUlSUlg)NF)widgettagsautocompletewindowlistbox scrollbarorigselforegroundorigselbackground completionsmorecompletionsmodestart startindexlasttypedstartuserwantswindowhideid keypressid listupdateid winconfigid keyreleaseid doubleclickidlastkey_was_tabis_configuring)selfr r s !7#  # $IM M  Mdo M(9 M   M#043E$#c4[[UR5[U55nSnX2:a6URUX:Xa!US- nX2:aURUX:XaM!U[UR5:aMURR SUR U4-SUR [UR54-5 U[U5:a8URR SUR U4-XSUR5 Xlg)Nr%s+%dc)minlenrr deleterinsertr )r"newstartmin_lenis r# _change_start AutoCompleteWindow._change_start@sc$**os8}5 kdjjmx{: FAkdjjmx{: s4::  KK  x4??A*>>'4??C O*LL N s8}  KK  x4??A*>>'|#yy * r&cSn[UR5nX2:a)X#-S-nURUU:aUnOUS-nX2:aM)[U[UR5S- 5$)zFind the first index in self.completions where completions[i] is greater or equal to s, or the last index if there is no such. rr()r+rr*)r"sr0jms r#_binary_search!AutoCompleteWindow._binary_searchNso 3t''(qe1 A"a'E e 1c$**+A-..r&c"URU5nURUS[U5U:waU$US-n[UR5nXC:a5X4-S-nURUS[U5U:waUnOUS-nXC:aM5US- nX&:XaURU$URUnURUn[[U5[U55n [U5nX9:a XsX:XaUS- nX9:a XsX:XaMUSU$)zAssuming that s is the prefix of a string in self.completions, return the longest string which is a prefix of all the strings which s is a prefix of them. If s is not a prefix of a string, return s. Nr(r4)r8rr+r*) r"r5firstr0r6r7last first_comp last_compr/s r#_complete_string#AutoCompleteWindow._complete_string[s* ##A&   E "7CF +q 0H AI   !e1 A"7CF+q0E e s =##E* *%%e, $$T* c*os9~6 Fkjmy|; FAkjmy|;"1~r&c[URR5S5nURRU5 URnUR UnUR U5U:XaUnOJ[[U5[U55nSnXe:a X&X6:XaUS- nXe:a X&X6:XaMUSUnURU5 UR US[UR5UR:Xa/URRURURS9 gURRURRS5URRS5S9 UR(aURUlSUlURR!S["5 UR H#nURR%["U5 M% URR'UR UR55 UR)5 gg)zjCall when the selection of the Listbox has changed. Updates the Listbox display and calls _change_start. rr(N)selectbackgroundselectforegroundbgfg)intr curselectionseerrr8r*r+r1r configurerrcgetrr,ENDr- select_set_selection_changed)r"curselltsselstartr.r/r0items r#rM%AutoCompleteWindow._selection_changed{s T\\..034  !!##F+   s #v -H#c(CM2GA+#&HK"7Q+#&HK"7|H 8$   F #$4S_ 5 C LL " "D4J4J484J4J # L LL " "DLL4E4Ed4K48LL4E4Ed4K # M###'#7#7 '+$ ##As+ ,,DLL''T2- ''(;(;DJJ(GH'')$r&cUuUlUlX@lURR U5UlURR UR S5UlU(aURUR5nURnURU5 URU5nURUU:XaBU[UR5S- :Xd"URUS-S[U5U:waXg:H$XPl URUl [UR5=Uln U R!5 U R#S5 U R$R'SSU R(SS5 [-U [.S9=Uln [3XR4S S 9=Uln URHn U R9[:U 5 M U R=S 5UlU R=S 5Ul U RCU RDS 9 U RG[H[JS9 U RG[L[NSS9 U RQ5 UR6RSURUR55 URU5 U RW[XURZ5Ul.URRW[XURZ5Ul/U Ra[X[b5 [dH#n URRa[XU 5 M% URRW[fURh5Ul5[lH#n URRa[fU 5 M% URRW[nURp5Ul9URRa[n[t5 U RW[vURx5Ul=S Ul>U RW[~UR5UlAU RW[UR5UlDg![*a GNf=f)zShow the autocomplete list, bind events. If complete is True, complete the text, and if there is exactly one matching completion, don't open a list. r-r(Nz!::tk::unsupported::MacWindowStylestylehelp noActivates)orientF)yscrollcommandexportselectionrCrB)command)sidefillT)r[r\expand)Errrr indexrgetrr?r1r8r+rrToplevelrwithdrawwm_overrideredirecttkcall_wTclErrorrVERTICALrListboxsetrr-rKrJrrconfigyviewpackRIGHTYLEFTBOTHliftrLrMbindHIDE_VIRTUAL_EVENT_NAME hide_eventhideaidhidewid event_addHIDE_FOCUS_OUT_SEQUENCEHIDE_SEQUENCESKEYPRESS_VIRTUAL_EVENT_NAMEkeypress_eventrKEYPRESS_SEQUENCESKEYRELEASE_VIRTUAL_EVENT_NAMEkeyrelease_eventrKEYRELEASE_SEQUENCELISTUPDATE_SEQUENCElistselect_eventrr!WINCONFIG_SEQUENCEwinconfig_eventrDOUBLECLICK_SEQUENCEdoubleclick_eventr)r" comp_listsr^completer userWantsWin completedrr0acwrrrQseqs r# show_windowAutoCompleteWindow.show_windows~2<.$. ++++E2[[__T__h? --djj9IJJE   y )##I.A"i/S))*1,,  1%os9~6)C ))+"jj(0(==#  "  FFKK;Wcff  /&/s8%DD!(]]9>"@ @ w$$D NN3 %%!(.@!A!(.@!A/E* $T$ 7    3 3DJJ ?@ !xx 7I {{''(?Q  -/FG!C KK ! !"93 ?"++**+F+/+>+>@%C KK ! !"=s C& KK,,-J-1-B-BD ;)>@#88$68L8LM$\\*>*.*@*@BO   s)Q(( Q65Q6c UR(agSUlUR5(dgURnURUR5 UR UR5up4pVUR n[R"5RS5(aUR5 UR5UR5pUR5UR5pUR5[U[SX- 55-n UR!5U-n XU-- U :dXI:aX- n OX-n UR#SX4-5 UR%5 UR'5 [R"5RS5(a(WR+[,UR.5 SUlSUlg![(a Nef=f![(a N+f=f)NTWindowsrz+%d+%dF)r! is_activer rHrbboxrplatformsystem startswithupdate winfo_width winfo_height winfo_rootxr*max winfo_rooty wm_geometry deiconifyupdate_idletasksrfunbindrr)r"eventtextxycxcyr acw_width acw_height text_width text_heightnew_xnew_ys r#r"AutoCompleteWindow.winconfig_events    "~~  ;;D HHT__ %99T__5LA"))C ++I66  $'OO$5s7G7G7Iz&*&6&6&8$:K:K:M $$&QAz7M0N)OOE$$&*E2v&*4> # OOH~5 6 MMO  " ??  ' ' 2 2  -t/?/?@ $D #     s$EG- G, G)(G), G98G9cUR(dgURR5(dUR5 gg![a UR5 gf=fN)r focus_get hide_windowKeyErrorr"s r#_hide_event_check$AutoCompleteWindow._hide_event_checksV&&  **4466  "7      s/AA"!A"cUR5(auUR[R:Xa'URR SUR 5 gUR[R:XaUR5 ggg)Nr() rtype EventTypeFocusOutr afterr ButtonPressrr"rs r#rtAutoCompleteWindow.hide_event*sg >>  zzY/// !!!T%;%;<y444  "5 r&cUR5(aLSUl[URR 5S5nUR UR U5 gg)NTr)rrrFrrGr1rr"rrNs r#r#AutoCompleteWindow.listselect_event7sQ >>  #'D 224Q78F   t//7 8 r&c[URR5S5nURURU5 UR 5 g)Nr)rFrrGr1rrrs r#r$AutoCompleteWindow.doubleclick_event=sCT\\..034 4++F34 r&c ^UR5(dgURm[US5(a URnOSnTS:waSUl[ T5S:Xd"TS;dUR [:XGaTS;GaU[)-(Gd{[ T5S:XaURURT-5 OTS:XaURURS -5 OTS :XaURURS -5 OmTS :XaURURS -5 OH[ UR5S:XaUR5 gURURSS5 URUl URRS[URR!5S55 URR#UR%UR55 UR'5 gTS:Xa!UR)5 UR5 gUR [*:XaTS;d)UR [:XaTS;aU[)-(d[URR!5S5nUR,US[ UR5UR:XaCUR [*:XdUR(aURUR,U5 UR5 gTS;GaU(GdSUl[URR!5S5nTS:XaSnOTS:Xa[ UR,5S- nOTS;aURR1URR355URR1S5- nTS:Xa[5SX5- 5nOpTS:Xde[7[ UR,5S- X5-5nOCTS:Xa[5SUS- 5nO-TS:Xde[7[ UR,5S- US-5nURRU5 URR#U5 UR'5 URUR,U5 gTS:Xa|U(duUR(aU[URR!5S5nURUR,U5 UR5 gSUlSUlg[9U4SjS55(agUR:(aUR:S:aURURUR:-5 URUl URRS[URR!5S55 URR#UR%UR55 UR'5 gUR5 g)Nmc_staterTabFr() underscore BackSpace)periodminusr_r.r-breakReturn)rspace parenleft parenright bracketleft bracketright)slash backslashquotedbl apostrophe)HomeEndPriorNextUpDownTrr)rrrrrrc3,># UH oT;v M g7fr).0r5keysyms r# 4AutoCompleteWindow.keypress_event..sE'Df'Ds)ShiftControlAltMetaCommandOption )rrhasattrrr r+rrrr1rrrr select_clearrFrGrLr8rMrrrrnearestrrr*anychar)r"rstaterNnewseljumprs @r#r{!AutoCompleteWindow.keypress_eventCs~~ 5* % %NNEE U?#(D K1 *E E U"v#($XI%%6{a""4::#67<'""4::#348#""4::#347"""4::#34tzz?a'$$&""4::cr?3"&**D  LL % %aT\\-F-F-H-K)L M LL # #D$7$7 $C D  # # % x  MMO    ii5 V&ii5 V>&?xi'224Q78F'(8TZZ9TZZGII&$**""4#3#3F#;<     E E#'D 224Q78F5T--.q0,,||++DLL,E,E,GH||++A./W$ FK0F!V+++ T%5%5!6q!8&+FF4Qq)'''S!1!1214fQh? LL % %f - LL # #F +  # # %   t//7 8oe##T\\668;<""4#3#3F#;<  "(,$'+$ E'DEEE ZZEJJ#-   tzzEJJ6 7"&**D  LL % %aT\\-F-F-H-K)L M LL # #D$7$7 $C D  # # %    r&cUR5(dgURRS5URRSUR[ UR 54-5:waUR 5 gg)Nr-r))rr r^rr+rrrs r#r~#AutoCompleteWindow.keyrelease_eventsf~~  ;;  X & ;;  X#djj/(JJ K L     Lr&cURSL$r)rrs r#rAutoCompleteWindow.is_actives&&d22r&cXURURUR55 gr)r1r?rrs r#rAutoCompleteWindow.completes 400<=r&cUR5(dgURR[[5 [ H#nUR R[U5 M% URR[UR5 UR R[UR5 SUlSUl [H#nUR R[U5 M% UR R[UR5 SUl UR R[[5 UR R[UR5 SUlUR R["UR$5 SUlUR&(a1URR[(UR&5 SUlUR R+5 UR,R/5 SUlUR R/5 SUlURR/5 SUlgr)rr event_deletersrxryr rrurvr|rzrr}rrrrrrr focus_setrdestroy)r"rs r#rAutoCompleteWindow.hide_windows~~  ,,-D-D F!C KK $ $% M 2DLLA  %C KK $ $%@# F& 6H   !>!4 6 8$:K:KL  /1B1BC      # # * *+=t?O?O P#D       '')"&r&)rrrrurrvr!rrr rrrrrrrrrrr rr rN)__name__ __module__ __qualname____firstlineno__r$r1r8r?rMrrrrtrrr{r~rrr__static_attributes__rr&r#r r sZ!$F  /@$*LFP3$j  #9  rh3>%'r&r __main__)mainz%idlelib.idle_test.test_autocomplete_wr4F) verbosityexit)__doc__rtkinter tkinter.ttkridlelib.autocompleterridlelib.multicallrrsrxryrzr|r}rrrrr runittestrrr&r#r s!-&7&)?;?C!D$*"2P'P'f z 0AEJr&