eH ^SrSSKrSSKrSSKrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrSrSrSrSrSrS rSrSrSr \RBS:Xa Sr"\\\\ 4r#OSr"\\\\4r#\$"\%"\"55VVs0sHn\"UHnX_M M snnr&Sr'"S S!5r(\$"S\%"\"5-5r)\)V^s/sH$mS"RUU4S#j\+"\"555PM& snr,S$r-\-"\)5r./r/\)HBr0Sr1\$"\%"\"55Hr2S\2-\0-(dM\1\#\2-r1M \/Rg\15 MD "S%S&5r4S'r5\44S-\(4\%"\55S- --r6\$"\%"\555VVs0sHn\5UHnX_M M snnr7\Rp"S(5r9\Rp"S)5r:S*r;S+r<0r=S,r>S-r?\@S.:XaSS/KAJBrB \B"S0SS1S29 SS3KCJDrD \D"\?5 ggs snnfs snfs snnf)4a MultiCall - a class which inherits its methods from a Tkinter widget (Text, for example), but enables multiple calls of functions per virtual event - all matching events will be called, not only the most specific one. This is done by wrapping the event functions - event_add, event_delete and event_info. MultiCall recognizes only a subset of legal event sequences. Sequences which are not recognized are treated by the original Tk handling mechanism. A more-specific event will be called before a less-specific event. The recognized sequences are complete one-event sequences (no emacs-style Ctrl-X Ctrl-C, no shortcuts like <3>), for all types of events. Key/Button Press/Release events can have modifiers. The recognized modifiers are Shift, Control, Option and Command for Mac, and Control, Alt, Shift, Meta/M for other platforms. For all events which were handled by MultiCall, a new member is added to the event instance passed to the binded functions - mc_type. This is one of the event type constants defined in this module (such as MC_KEYPRESS). For Key/Button events (which are handled by MultiCall and may receive modifiers), another member is added - mc_state. This member gives the state of the recognized modifiers, as a combination of the modifier constants also defined in this module (for example, MC_SHIFT). Using these members is absolutely portable. The order by which events are called is defined by these rules: 1. A more-specific event will be called before a less-specific event. 2. A recently-binded event will be called before a previously-binded event, unless this conflicts with the first rule. Each function will be called at most once for each event. N  @darwin)ShiftControl)Option)Command)r)Altr)MetaMzapplication has been destroyedc,\rSrSrSrSrSrSrSrg) _SimpleBinderIcrXlS[US-S-UlX lX0l/UlSUlg)N)type_typessequencewidget widgetinst bindedfuncs handlerid)selfr,r/r0s 7/opt/imh/python3.13/lib/python3.13/idlelib/multicall.py__init___SimpleBinder.__init__Js9 F4LO+C/  $cUR(dQURUR4SjnURR UR UR U5UlURRU5 g)NcX l0n[[U5S- SS5H%nXnXS;dMSX5'U"U5nU(dM#Us $ g)NrT)mc_typerangelen)eventlr; wascalledifuncrs r4handler#_SimpleBinder.bind..handlerTsN '  s1vaxR0A4D,*.  K1#$H 1r7)r2r1r,r/bindr0r.append)r3tripletrBrDs r4rF_SimpleBinder.bindRsY~~#'#3#3tyy %"[[--doo.2mmWFDN %r7cURRU5 UR(dCURRURUR UR 5 SUlggN)r1remover/unbindr0r.r2)r3rHrBs r4rM_SimpleBinder.unbindbsM % KK  t t~~ N!DN r7cUR(a=URRURURUR5 gg![ R a"n[URS;aeSnAgSnAff=fNr) r2r/rMr0r.tkinterTclErrorAPPLICATION_GONEargs)r3es r4__del___SimpleBinder.__del__hsh >>  ""4??DMM( ## '166!945 s;AB$BB)r1r2r.r,r/r0N) __name__ __module__ __qualname____firstlineno__r5rFrMrV__static_attributes__r7r4r'r'Is& " r7r'c3V># UHupSU-T-(dMUSS-v M g7f)rr-Nr]).0rAmss r4 rdws/)$9DAFa<!!S$9s))cSn/nUHBn[UVs1sHoCU-iM sn5nURUSS9 URU5 MD U$s snf)zFor each item of states return a list containing all combinations of that item with individual bits reset, sorted by the number of set bits. cNSnU(a[US5upX- nU(aMU$)znumber of bits set in n base 2rr)divmod)nnbrems r4nbitsexpand_substates..nbitss, Aq\FA IBa r7T)keyreverse)listsortrG)statesrk stateliststatex substatess r4expand_substatesrv|s^IV4V!)V45 5$/# 5sA c2\rSrSrSrSrSrSrSrSr g) _ComplexBinderc@UX#URUR4SjnU$)NcS/USS&X lX0l0nSnUHNn[[U5S- SS5H%n Xn X;dMSXj'X"U5nU(dM% O U(dMN O /USS&UH n U "5 M /USS&U(aU$g)NTrr:)r;mc_stater<r=) r>listsr;r|ishandlerrunningdoafterhandlerr@rCr?rArBfs r4rD0_ComplexBinder.__create_handler..handlers$(& Q #M%NIAs1vaxR0A4D,*. DK1! 11#% Q #$ "N1 r7)r~r)r3r}r;r|rDs r4__create_handler_ComplexBinder.__create_handlers&#(%'+'<'<%)%8%8 4r7c Xl[USUlX lX0lS[ Vs/sHn/PM sn0Ul/Ul/Ul/Ul [ Hn[UVs/sHoPR SUPM nnURXa[U5nS[U-UR-S-nURRXRRURX545 M gs snfs snf)Nrr*r+)r,r-typenamer/r0_statesr1 handleridsr~r_state_subsets_ComplexBinder__create_handler _state_codes _state_namesrGrF) r3r,r/r0rcrAr}rDseqs r4r5_ComplexBinder.__init__s t Q  $ w"7w!2w"78!# A8Fq8IJ8I1%%d+A.8IEJ++EaIGl1o%dmm3C7C OO " "C)9)9$//:=*H$I J #8Ks D+Dc ^^^TSTR;a[Vs/sHn/PM snTRTS'[HnTSS4VVs/sH&n[UHnTRUUPM M( nnnTRUTR[ U5nS[ U<TR<STS<S3nTRRUTRRTRX545 M UUU4Sjn TR(dU "5 gTRRU 5 gs snfs snnf)Nrr*r`r+cR>TRTSTSRT5$Nrr)r1rGrBr3rHsr4%_ComplexBinder.bind..(t'' 3GAJ?FFtLr7)r1rrrr,rrrrrGr/rFr0r~r) r3rHrBrcdetailrAr}rDrdoits ``` r4rF_ComplexBinder.binds2 1:T-- -8?+@1B+@D  WQZ ()0T(:=(:f#1!#4a**6215#46(:=//tyy0A.L(MNM$$ F    & &t ,,A=s E -Ec^^^UUU4SjnTR(dU"5 gTRRU5 g)NcR>TRTSTSRT5$r)r1rLrsr4r'_ComplexBinder.unbind..rr7)r~rrG)r3rHrBrs``` r4rM_ComplexBinder.unbinds*L$$ F    & &t ,r7cURH,upURRURX5 M. g![R a#n[ URS;aeSnAMcSnAff=frP)rr/rMr0rQrRrSrT)r3ridrUs r4rV_ComplexBinder.__del__s_GC  ""4??C<'## '166!945 s&>A5A00A5)r1rrr~r,rr/r0N) rXrYrZr[rr5rFrMrVr\r]r7r4rxrxs:J.-$-r7rx))KeyPressKey) KeyRelease) ButtonPressButton) ButtonRelease)Activate) Circulate)Colormap) Configure) Deactivate)Destroy)Enter)Expose)FocusIn)FocusOut)Gravity)Leave)Map)Motion) MouseWheel)Property)Reparent)Unmap) Visibilityz^\w+$z^[1-5]$cHU(aUSS:wd USS:wagUSSRS5nSnU(a8US[;a+US[US--nUS U(aUS[;aM+U(aUS[;a[USnUS Og[U[LaU(dU(agSnOdUSVs/sH n[UPM sn;a[ nO[ nU(dSnO/[U5S:XaURUS5(aUSnOgX#U4$s snf) aGet a string which should describe an event sequence. If it is successfully parsed as one, return a tuple containing the state (as an int), the event type (as an index of _types), and the detail - None if none, or a string if there is one. If the parsing is unsuccessful, return None. rr*r:r+Nrr`)rr) split_modifier_names _type_names_binder_classesr' _keysym_re _button_rer=match)r.words modifiersr,rrctype_res r4_parse_sequencer s& x{c)Xb\S-@ QrN  %EI E!H/Q/%(333 !H E!H/ q[(58$ !Ht - F ,FG,FqKN,FG G G GF Z1_uQx!8!81XF F ""Hs<DcUS(a+S[US-[USS-S-US-S-$S[US-[USS-S-$)Nrr*rrr`r+)rr-)rHs r4_triplet_to_sequencer2syqz< ++F71:,>q,AA#Eqz < ++F71:,>q,AA#EEr7c\^T[;a [T$"U4SjST5nU[T'U$)zReturn a MultiCall class which inherits its methods from the given widget class (for example, Tkinter.Text). This is used instead of a templating mechanism. c>\rSrSr\"Y\R 5(deU4SjrS U4SjjrS U4Sjjr U4Sjr U4Sjr S U4Sjjr S r S rg) #MultiCallCreator..MultiCalliBc>TR"U/UQ70UD6 0Ul[[[55Vs/sHn[ U"UTU5PM snUlgs snfrK)r5_MultiCall__eventinfor<r=r-r_MultiCall__binders)r3rTkwargsrAr/s r4r5,MultiCallCreator..MultiCall.__init__Es^ OOD 24 26 2 "D ',S['9;'9!.a0FDA'9;DN;sANc>[U5[La[U5S:aUSSS:XaUSSS:XaXR;a}URUnUSb0USH'nURUSR XTS5 M) X$S'USb-USH$nURUSR XR5 M& OU//URU'TR XX#5$)Nr<<>>rr)r,strr=rrrMrF)r3r.rBaddeirHr/s r4rF(MultiCallCreator..MultiCall.bindNsH~$X):|t# (=///))(3B!u(')!uG NN71:6==g!uM(- qE!u(')!uG NN71:6;;GJ(-37D$$X.;;tt9 9r7cL>[U5[La[U5S:aqUSSS:XahUSSS:Xa_XR;aPURUup4Ub<UH$nURUSR XS5 M& SURUS'TR XU5$)Nrrrrrr)r,rr=rrrM)r3r.funcidrBtripletsrHr/s r4rM*MultiCallCreator..MultiCall.unbind`sH~$X):|t# (=+++!%!1!1(!;##+wqz299'H$,48D$$X.q1==8 8r7c(>XR;aS//URU'URUup4UHZn[U5nUcTRXU5 M%Ub!URUSR Xc5 UR U5 M\ gNr)rr event_addrrFrGr3virtual sequencesrBrrrHr/s r4r-MultiCallCreator..MultiCall.event_addks...-12J  )!--g6ND )#.?$$TC8'wqz277FOOG,!r7c>XR;agURUup4UHZn[U5nUcTRXU5 M%Ub!URUSR Xc5 UR U5 M\ gr)rr event_deleterrMrLrs r4r0MultiCallCreator..MultiCall.event_delete|sz...!--g6ND )#.?''s;'wqz299'HOOG,!r7c>UbXR;aTRX5$[[[URUS55TRX5-$r)r event_infotuplemapr)r3rr/s r4r.MultiCallCreator..MultiCall.event_infosb'1A1A"A((77S!5!%!1!1'!:1!=?@((788r7c(URHHnURUup#U(dMUH%nURUSRXB5 M' MJ g![Ra#n[ UR S;aeSnAM`SnAff=f)Nrr)rrrMrQrRrSrT)r3rrBrrHrUs r4rV+MultiCallCreator..MultiCall.__del__s++!%!1!1'!:4#+& NN71:6==gL$,, '//qvvay#@ %$A&s!AB.B  B) __binders __eventinfo)NNNrK)rXrYrZr[ issubclassrQMiscr5rFrMrrrrVr\)r/sr4 MultiCallrBs=&',,//// ; :$ 9 -" - 8 &r7r)_multicall_dict)r/rs` r4MultiCallCreatorr:s9  v&&Y&VY&v(OF r7c:^[R"U5nURS5 [[UR 5R S5SS5up#UR SX#S-4-5 [[R5"U5mTR5 TR5 S/4U4SjjnU"S5 U"S 5 U"S 5 U"S 5 U"S 5 U"S 5 U"S5 U"S5 U"S5 U"S5 U"S5 U"S5 g)NzTest MultiCall+rz+%d+%drc>^U4SjnTRSUS-U5 TRSUS-T5 US==S- ss'g)Nc>[T5 grK)print)r>rs r4rD-_multi_call..bindseq..handlers #Jr7z <>rr)rFr)rrhrDtexts` r4bindseq_multi_call..bindseqsC  /!A$&0 qt+S1 ! r7zz z zzzzz zz zz) rQTopleveltitlerintgeometryrrTextpack focus_set)parenttoprtyrrs @r4 _multi_callrs   6 "CII sFOO%++C04 5DALLQCL() GLL )# .DIIKNNs  G O M  !" I ! L  L I Ir7__main__)mainzidlelib.idle_test.test_mainmenuF) verbosityexit)run)E__doc__resysrQ MC_KEYPRESS MC_KEYRELEASEMC_BUTTONPRESSMC_BUTTONRELEASE MC_ACTIVATE MC_CIRCULATE MC_COLORMAP MC_CONFIGURE MC_DEACTIVATE MC_DESTROYMC_ENTER MC_EXPOSE MC_FOCUSIN MC_FOCUSOUT MC_GRAVITYMC_LEAVEMC_MAP MC_MOTION MC_MOUSEWHEEL MC_PROPERTY MC_REPARENTMC_UNMAP MC_VISIBILITYMC_SHIFT MC_CONTROLMC_ALTMC_META MC_OPTION MC_COMMANDplatform _modifiers_modifier_masksr<r=rrSr'rjoin enumeraterrvrrrcrCrArGrxr-rrcompilerrrrrrrrXunittestridlelib.idle_test.htestr )numbernamercs00pr4r6s<   Q}q12B A|1{1l AxbIR*  2 x2Fy b+b+2(R} dTFT7  t*<<8FJY CODJ!68W=O(-S_'=9'=V%/%7T<%7'=94&&Z S_$ %!"!A)$-j$9))!" $"'* A A 3z? # Fa<< # #A$ [[~ "#a'=*:c&k!m*LL$)V#51#5!'|!/#51 ZZ ! ZZ # %#NFdN: z *aeD+  O 9@"\1s<G$;+G*1G/