ó
|Nc           @   s}   d  Z  d d l Z d d l Z d d l m Z d a d „  Z d a d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z d
 „  Z d S(   s   
A number of function that enhance IDLE on MacOSX when it used as a normal
GUI application (as opposed to an X11 application).
iÿÿÿÿN(   t   pathc           C   s1   t  d k r- t j d k o' d t j k a  n  t  S(   s›   
    Returns True if Python is running from within an app on OSX.
    If so, assume that Python was built with Aqua Tcl/Tk rather than
    X11 Tcl/Tk.
    t   darwins   .appN(   t
   _appbundlet   Nonet   syst   platformt
   executable(    (    (    s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt   runningAsOSXApp   s    !c         C   sU   t  d k rQ t ƒ  oK d |  j j d d ƒ k oK d |  j j d d d ƒ k a  n  t  S(	   sb   
    Returns True if IDLE is using a Carbon Aqua Tk (instead of the
    newer Cocoa Aqua Tk).
    t   aquat   tkt   windowingsystemt   AppKitt   winfot   servert   .N(   t   _carbonaquatkR   R   R	   t   call(   t   root(    (    s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt   isCarbonAquaTk   s
    	!c         C   sN   t  ƒ  rF d |  j j d d d ƒ k rF |  j j d d ƒ d k rF d St Sd	 S(
   sÃ   
    Returns a string warning message if the Tk version in use appears to
    be one known to cause problems with IDLE.  The Apple Cocoa-based Tk 8.5
    that was shipped with Mac OS X 10.6.
    R   R   R   R   t   infot
   patchlevels   8.5.7sˆ   WARNING: The version of Tcl/Tk (8.5.7) in use may be unstable.\nVisit http://www.python.org/download/mac/tcltk/ for current information.N(   R   R	   R   t   False(   R   (    (    s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt   tkVersionWarning%   s
    	c            s#   ‡  f d †  } |  j  d | ƒ d S(   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.
    c             s"   x |  D] } ˆ  j  | ƒ q Wd  S(   N(   t   open(   t   argst   fn(   t   flist(    s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt
   doOpenFile;   s    s   ::tk::mac::OpenDocumentN(   t   createcommand(   R   R   R   (    (   R   s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt   addOpenEventSupport6   s    c         C   s2   y |  j  j d d ƒ Wn t j k
 r- n Xd  S(   Nt   consolet   hide(   R	   R   t   Tkintert   TclError(   R   (    (    s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt   hideTkConsoleD   s    c            sV  d d l  m } m } m } d d l m } m } d d l m } d d l m ‰  d d l	 m
 } | ˆ ƒ } ˆ j d | ƒ i  }	 | | d d	 ƒ|	 d	 <}
 | j d
 d d |
 d d ƒ |
 ‡  f d † } ˆ  j | ƒ d$ ‡ f d † } d$ ‡ ‡ f d † } d$ ‡ f d † } ˆ j d | ƒ ˆ j d | ƒ ˆ j d | ƒ ˆ rqˆ j d ˆ j ƒ ˆ j d ˆ j ƒ n  t ˆ ƒ r | | d d ƒ|	 d <}
 | j d
 d d |
 ƒ | j j d d d% d$ g f ƒ ˆ j j d ƒ } t t t | j d ƒ ƒ ƒ d& k  rR| j d d  j d' ƒ qRn2 ˆ j d" | ƒ ˆ j d# | ƒ | j d d  d =d$ S((   sU   
    Replace the Tk root menu by something that's more appropriate for
    IDLE.
    iÿÿÿÿ(   t   Menut   TextR$   (   t   prepstrt   get_accelerator(   t   Bindings(   t
   WindowList(   t   MultiCallCreatort   menut   namet   windowst   labelt   Windowt	   underlinei    c            sT   |  j  d ƒ } | d  k r$ d } n  | d k rC |  j d | ƒ n  ˆ  j |  ƒ d  S(   Nt   endiÿÿÿÿi    (   t   indexR   t   deletet   add_windows_to_menu(   R*   R0   (   R(   (    s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt   postwindowsmenuh   s    	c            s$   d d l  m } | j ˆ  d ƒ d  S(   Niÿÿÿÿ(   t   aboutDialogs
   About IDLE(   t   idlelibR5   t   AboutDialog(   t   eventR5   (   R   (    s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt   about_dialogr   s    c            s0   d d l  m } ˆ j ˆ  _ | j ˆ  d ƒ d  S(   Niÿÿÿÿ(   t   configDialogt   Settings(   R6   R:   t   inversedictt   instance_dictt   ConfigDialog(   R8   R:   (   R   R   (    s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt   config_dialogv   s    c            sK   d d l  m } t j t j t j t ƒ ƒ d ƒ } | j ˆ  d | ƒ d  S(   Niÿÿÿÿ(   t   textViews   help.txtt   Help(   R6   R@   R    t   joint   abspatht   dirnamet   __file__t	   view_file(   R8   R@   R   (   R   (    s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt   help_dialog{   s    $s   <<about-idle>>s   <<open-config-dialog>>s   ::tk::mac::ShowPreferencess   <<close-all-windows>>t   exitt   applet   applicationt   IDLEs
   About IDLEs   info patchlevelR   i   i   i   i   s   _Preferences....t   tkAboutDialogs   ::tk::mac::ShowHelpN(   s
   About IDLEs   <<about-idle>>(   i   i   i   (   s   _Preferences....s   <<open-config-dialog>>(   R    R#   R$   t   idlelib.EditorWindowR%   R&   R6   R'   R(   t   idlelib.MultiCallR)   t	   configuret   add_cascadet   register_callbackR   t   bindR   t   close_all_callbackR   t   menudefst   insertR	   t   evalt   tuplet   mapt   intt   splitt   append(   R   R   R#   R$   R%   R&   R'   R)   t   menubart   menudictR*   R4   R9   R?   RG   t	   tkversion(    (   R(   R   R   s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt   overrideRootMenuK   sF    $c         C   s5   t  ƒ  s d St |  ƒ t |  | ƒ t |  | ƒ d S(   s7   
    Perform setup for the OSX application bundle.
    N(   R   R"   R_   R   (   R   R   (    (    s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt   setupApp£   s
    	 
(   t   __doc__R   R    t   osR    R   R   R   R   R   R   R   R"   R_   R`   (    (    (    s*   C:\RCS\Python\lib\idlelib\macosxSupport.pyt   <module>   s   						X