Ë 9±7§…ÀÁ;ãó¨—dZddlmZddlZddlmZddlZdad„Zd„Z d„Z d„Z d „Z d „Z d „Zd „Zd „Zd„Zd„Zd„Zedk(rddlmZedd¬«yy)z3 A number of functions that enhance IDLE on macOS. é)Ú expanduserN)ÚplatformcóL—tdk(rŒddlm}|rddlm}m} |d«tj«}|jjdd «}d |vrd an+d |vrd an$d|jjddd«vrdanda|j«yd ay#|$rdaYywxYw)zu Initialize _tk_type for isXyzTk functions. This function is only called once, when _tk_type is still None. Údarwinr)Útesting)ÚrequiresÚResourceDeniedÚguiÚcocoaNÚtkÚwindowingsystemÚx11ÚxquartzÚaquaÚotherÚAppKitÚwinfoÚserverÚ.Úcarbon) rÚidlelib.__init__rÚ test.supportrr Ú_tk_typeÚtkinterÚTkr ÚcallÚdestroy)rrr ÚrootÚwss ú%/usr/lib/python3.12/idlelib/macosx.pyÚ _init_tk_typer!s²€ô �8Òõ -Ù ß =ð Ù˜”ô �z‰z‹|ˆØ �W‰W�\‰\˜$Ð 1Ó 2ˆØ �B‰;Ø ‰HØ ˜2Ñ Ø‰HØ ˜Ÿ™Ÿ™ g¨x¸Ó=Ñ =؉HàˆHØ � ‰ Œð ðˆØ øð#"ò Ø"�Ùð ús›BÂB#Â"B#cóJ—ts t«tdk(xs tdk(S)zK Returns True if IDLE is using a native OS X Tk (Cocoa or Carbon). r r©rr!©ór ÚisAquaTkr&3s!€õ ÜŒÜ �wÑ Ò 6¤(¨hÑ"6Ð6r%có4—ts t«tdk(S)zb Returns True if IDLE is using a Carbon Aqua Tk (instead of the newer Cocoa Aqua Tk). rr#r$r%r Ú isCarbonTkr(;s€õ ÜŒÜ �xÑ Ðr%có4—ts t«tdk(S)z8 Returns True if IDLE is using a Cocoa Aqua Tk. r r#r$r%r Ú isCocoaTkr*Ds€õ ÜŒÜ �wÑ Ðr%có4—ts t«tdk(S)z7 Returns True if IDLE is using an OS X X11 Tk. rr#r$r%r Ú isXQuartzr,Ls€õ ÜŒÜ �yÑ Ð r%cóº—tdk7rytd«} t|d«5}tj|«cddd«S#1swYyxYw#t $rYywxYw)z- Fetch the macOS system preferences. rNz.~/Library/Preferences/.GlobalPreferences.plistÚrb)rrÚopenÚplistlibÚloadÚOSError)Ú plist_pathÚ plist_files r ÚreadSystemPreferencesr5UsT€ô�8ÒØäÐLÓM€JðÜ �*˜dÔ # zÜ—=‘= Ó,÷$× #Ò #ûä òÙðús-— A£A¸ AÁA ÁAÁ AÁ AÁAcó\—tdk7ryt«}|r|jd«dk(r yy)zJ Warn if "Prefer tabs when opening documents" is set to "Always". rNÚAppleWindowTabbingModeÚalwayszäWARNING: The system preference "Prefer tabs when opening documents" is set to "Always". This will cause various problems with IDLE. For the best experience, change this setting when running IDLE (via System Preferences -> Dock).)rr5Úget)Úprefss r ÚpreferTabsPreferenceWarningr;ds:€ô�8ÒØä !Ó #€EÙ �—‘Ð3Ó4¸Ò@ð >ð ð r%có4‡—ˆfd„}|jd|«y)z¢ This ensures that the application will respond to open AppleEvents, which makes is feasible to use IDLE as the default application for python files. có6•—|D]}‰j|«Œy©N)r/)ÚargsÚfnÚflists €r Ú doOpenFilez'addOpenEventSupport..doOpenFile}sø€ÛˆBØ �J‰J�r�Nñr%z::tk::mac::OpenDocumentN)Ú createcommand)rrArBs ` r ÚaddOpenEventSupportrDxsø€ô ð ×ÑÐ0°*Õ=r%cóp— |jjdd«y#tj$rYywxYw)NÚconsoleÚhide)r rrÚTclError©rs r Ú hideTkConsolerJ†s1€ð Ø �‰� ‰ �Y Õ'øÜ × Ñ ò á ð ús ‚Ÿ5´5cóÖ‡‡‡ —ddlm}ddlm}ddlmŠ |j ddd}|j dddd…=|j ddj d |«|j d ddd …=|j dddd …=|‰«}‰j|¬ «||d d¬«}|jd|d¬«|fˆ fd„ }‰ j|«d!ˆfd„ }d!ˆˆfd„ } d!ˆfd„ } ‰jd|«‰jd| «‰jd| «‰r8‰jd‰j«‰jd‰j«t«r>||dd¬«}|jd|¬«|j j ddddgf«t«r8‰jd|«‰jd | «|j d dd=yy)"zf Replace the Tk root menu by something that is more appropriate for IDLE with an Aqua Tk. r)ÚMenu)Úmainmenu)ÚwindowééþÿÿÿéýÿÿÿNééÿÿÿÿé)ÚmenurN)ÚnameÚtearoffÚWindow)ÚlabelrUÚ underlinec󀕗|jd«}|€d}|dkDr|jd|«‰j|«y)NÚendrSr)ÚindexÚdeleteÚadd_windows_to_menu)rUr\rNs €r Úpostwindowsmenuz)overrideRootMenu..postwindowsmenuµs>ø€Ø�j‰j˜ÓˆØ ˆ;؈Cà �Š7Ø �K‰K˜˜3Ô Ø×"Ñ" 4Õ(r%có4•—ddlm}|j‰«y)zHandle Help 'About IDLE' event.r)Ú help_aboutN)ÚidlelibrbÚ AboutDialog)Úeventrbrs €r Ú about_dialogz&overrideRootMenu..about_dialog¿sø€õ 'Ø×јtÕ$r%cóX•—ddlm}‰j‰_|j ‰d«y)z&Handle Options 'Configure IDLE' event.r)Ú configdialogÚSettingsN)rcrhÚ inversedictÚ instance_dictÚ ConfigDialog)rerhrArs €€r Ú config_dialogz'overrideRootMenu..config_dialogÅs(ø€õ )ð #×.Ñ.ˆÔØ×!Ñ! $¨ Õ3r%có4•—ddlm}|j‰«y)zHandle Help 'IDLE Help' event.r)ÚhelpN)rcroÚ show_idlehelp)rerors €r Ú help_dialogz%overrideRootMenu..help_dialogÑsø€õ !Ø ×ј4Õ r%ú<>z<>z::tk::mac::ShowPreferencesz<>z::tk::mac::QuitÚappleÚIDLE)rYrUÚ application)z About IDLErrÚ tkAboutDialogz::tk::mac::ShowHelpr>)rrLrcrMrNÚmenudefsÚinsertÚ configureÚ add_cascadeÚregister_callbackÚbindrCÚclose_all_callbackr(r*) rrArLrMÚ closeItemÚmenubarrUr`rfrmrqrNs `` @r ÚoverrideRootMenur€�s÷ú€õ Ý Ýà×!Ñ! !Ñ$ QÑ'¨Ñ+€Ið ×ј!јQÑ ¡Ð$Ø ×Ñ�aјÑ×"Ñ" 1 iÔ0ð ×ј"јaÑ   1 Ð%ð ×ј"јaÑ   1 Ð%Ù�4‹j€G؇N�N˜€NÔ á �˜h°Ô 2€DØ ×јh¨T¸QÐÔ?à!õ)ð ×ј_Ô-õ%ö 4õ!ð  ‡I�IР Ô-؇I�IÐ&¨ Ô6Ø×ÑÐ3°]ÔCÙ Ø � ‰ Ð)¨5×+CÑ+CÔDð ×ÑÐ,¨e×.FÑ.FÔGä„|á�G '°1Ô5ˆØ×Ñ &¨tÐÔ4Ø×Ñ× Ñ  Ø Ø0Øðð ô ô „{à ×ј?¨LÔ9à ×ÑÐ0°+Ô>à × Ñ ˜bÑ ! !Ñ $ QÑ 'ð r%cóp—|jdd«|jdd«|jdd«y)zšRemoved bad AquaTk Button-2 (right) and Paste bindings. They prevent context menu access and seem to be gone in AquaTk8.6. See issue #24801. ÚTextzz z<>N)Ú unbind_classrIs r Ú fixb2contextr„ós5€ð  ×Ñ�f˜fÔ%Ø×Ñ�f˜mÔ,Ø×Ñ�fÐ2Õ3r%cóv—t«r/t|«t||«t||«t |«yy)aì Perform initial OS X customizations if needed. Called from pyshell.main() after initial calls to Tk() There are currently three major versions of Tk in use on OS X: 1. Aqua Cocoa Tk (native default since OS X 10.6) 2. Aqua Carbon Tk (original native, 32-bit only, deprecated) 3. X11 (supported by some third-party distributors, deprecated) There are various differences among the three that affect IDLE behavior, primarily with menus, mouse key events, and accelerators. Some one-time customizations are performed here. Others are dynamically tested throughout idlelib by calls to the isAquaTk(), isCarbonTk(), isCocoaTk(), isXQuartz() functions which are initialized here as well. N)r&rJr€rDr„)rrAs r ÚsetupAppr†ýs2€ô „zÜ�dÔܘ˜uÔ%ܘD %Ô(Ü�TÕð r%Ú__main__)Úmainzidlelib.idle_test.test_macosxrT)Ú verbosity)Ú__doc__Úos.pathrr0Úsysrrrr!r&r(r*r,r5r;rDrJr€r„r†Ú__name__Úunittestrˆr$r%r Úr�s{ðñõÛÝãð €ò! òF7ò òò!ò òò( >ò òd(òL4òð. ˆzÒÝÙÐ (°AÖ6ðr%