ó {fc@s°dZddlZddlZddlmZddlZd„Zd„Zda d„Z d„Z d„Z d „Z d „Zd „Zd „Zd „Zd„Zd„ZdS(s5 A number of functions that enhance IDLE on Mac OSX. i˙˙˙˙N(tpathcCstjdtddƒtƒS(Ns/runningAsOSXApp() is deprecated, use isAquaTk()t stackleveli(twarningstwarntDeprecationWarningtisAquaTk(((s-/usr/lib64/python2.7/idlelib/macosxSupport.pytrunningAsOSXApp s  cCstjdtddƒtƒS(Ns4isCarbonAquaTk(root) is deprecated, use isCarbonTk()Ri(RRRt isCarbonTk(troot((s-/usr/lib64/python2.7/idlelib/macosxSupport.pytisCarbonAquaTks  cCsˆtjdkr~|jjddƒ}d|kr9daq„d|krNdaq„d|jjd d d ƒkrud aq„d andadS(sl Initializes OS X Tk variant values for isAquaTk(), isCarbonTk(), isCocoaTk(), and isXQuartz(). tdarwinttktwindowingsystemtx11txquartztaquatothertAppKittwinfotservert.tcocoatcarbonN(tsystplatformR tcallt_tk_type(Rtws((s-/usr/lib64/python2.7/idlelib/macosxSupport.pyt_initializeTkVariantTestss      cCstdkptdkS(sK Returns True if IDLE is using a native OS X Tk (Cocoa or Carbon). RR(R(((s-/usr/lib64/python2.7/idlelib/macosxSupport.pyR*scCs tdkS(sb Returns True if IDLE is using a Carbon Aqua Tk (instead of the newer Cocoa Aqua Tk). R(R(((s-/usr/lib64/python2.7/idlelib/macosxSupport.pyR1scCs tdkS(s8 Returns True if IDLE is using a Cocoa Aqua Tk. R(R(((s-/usr/lib64/python2.7/idlelib/macosxSupport.pyt isCocoaTk9scCs tdkS(s7 Returns True if IDLE is using an OS X X11 Tk. R(R(((s-/usr/lib64/python2.7/idlelib/macosxSupport.pyt isXQuartz@scCsCtƒr;|jjddƒ}|dkr.tSdj|ƒStSdS(s2 Returns a string warning message if the Tk version in use appears to be one known to cause problems with IDLE. 1. Apple Cocoa-based Tk 8.5.7 shipped with Mac OS X 10.6 is unusable. 2. Apple Cocoa-based Tk 8.5.9 in OS X 10.7 and 10.8 is better but can still crash unexpectedly. tinfot patchlevels8.5.7s8.5.9s†WARNING: The version of Tcl/Tk ({0}) in use may be unstable.\nVisit http://www.python.org/download/mac/tcltk/ for current information.N(s8.5.7s8.5.9(RR RtFalsetformat(RR ((s-/usr/lib64/python2.7/idlelib/macosxSupport.pyttkVersionWarningGs  cs#‡fd†}|jd|ƒdS(s˘ This ensures that the application will respond to open AppleEvents, which makes is feasible to use IDLE as the default application for python files. cs"x|D]}ˆj|ƒqWdS(N(topen(targstfn(tflist(s-/usr/lib64/python2.7/idlelib/macosxSupport.pyt doOpenFile`s s::tk::mac::OpenDocumentN(t createcommand(RR'R(((R's-/usr/lib64/python2.7/idlelib/macosxSupport.pytaddOpenEventSupport[scCs2y|jjddƒWntjk r-nXdS(Ntconsolethide(R RtTkintertTclError(R((s-/usr/lib64/python2.7/idlelib/macosxSupport.pyt hideTkConsoleisc s˘ddlm}ddlm}ddlm‰|jddd}|jddd3|jddjd |ƒ|jdddd 5|jddd=|ˆƒ}ˆjd |ƒi}||d d ddƒ|d <}|jddd |ddƒ|‡fd†}ˆj |ƒd'‡fd†} d'‡‡fd†} d'‡fd†} ˆj d| ƒˆj d| ƒˆj d| ƒˆrŽˆj dˆj ƒˆj dˆj ƒntƒr`||d dddƒ|d<}|jddd |ƒ|jjddd(d'gfƒˆjjdƒ} ttt| jd ƒƒƒd)kr`|jddjd*ƒq`ntƒržˆj d%| ƒˆj d&| ƒ|jddd=nd'S(+sf Replace the Tk root menu by something that is more appropriate for IDLE with an Aqua Tk. i˙˙˙˙(tMenu(tBindings(t WindowListiiiţ˙˙˙iý˙˙˙iitmenutnametwindowsttearofftlabeltWindowt underlinecsT|jdƒ}|dkr$d}n|dkrC|jd|ƒnˆj|ƒdS(Ntendi˙˙˙˙i(tindextNonetdeletetadd_windows_to_menu(R3R:(R2(s-/usr/lib64/python2.7/idlelib/macosxSupport.pytpostwindowsmenu™s    cs$ddlm}|jˆdƒdS(sHandle Help 'About IDLE' event.i˙˙˙˙(t aboutDialogs About IDLEN(tidlelibR@t AboutDialog(teventR@(R(s-/usr/lib64/python2.7/idlelib/macosxSupport.pyt about_dialogŁscs0ddlm}ˆjˆ_|jˆdƒdS(s&Handle Options 'Configure IDLE' event.i˙˙˙˙(t configDialogtSettingsN(RAREt inversedictt instance_dictt ConfigDialog(RCRE(R'R(s-/usr/lib64/python2.7/idlelib/macosxSupport.pyt config_dialogŠs cs!ddlm}|jˆƒdS(sHandle Help 'IDLE Help' event.i˙˙˙˙(thelpN(RARKt show_idlehelp(RCRK(R(s-/usr/lib64/python2.7/idlelib/macosxSupport.pyt help_dialog°ss<>s<>s::tk::mac::ShowPreferencess<>texittapplet applicationtIDLEs About IDLEsinfo patchlevelRiiis_Preferences....t tkAboutDialogs::tk::mac::ShowHelpN(s About IDLEs<>(iii(s_Preferences....s<>(R-R0RAR1R2tmenudefstinsertt configuret add_cascadetregister_callbackR<tbindR)tclose_all_callbackRR tevalttupletmaptinttsplittappendR( RR'R0R1t closeItemtmenubartmenudictR3R?RDRJRMt tkversion((R2R'Rs-/usr/lib64/python2.7/idlelib/macosxSupport.pytoverrideRootMenupsP      $  cCs>t|ƒtƒr:t|ƒt||ƒt||ƒndS(sě 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(RRR/RdR*(RR'((s-/usr/lib64/python2.7/idlelib/macosxSupport.pytsetupAppŮs     (t__doc__RR-tosRRRR R<RRRRRRR#R*R/RdRe(((s-/usr/lib64/python2.7/idlelib/macosxSupport.pyts"              i