ó
±éRc           @  s‡  d  d l  m Z m Z d  d l Z d  d l Z y d  d l Z Wn e k
 r] e d ƒ ‚ n Xd  d l Td  d l Td  d l	 m
 Z
 m Z d  d l m Z e j d d d	 ƒd  d l Z d  d
 l m Z d  d l m Z m Z d  d l m Z d  d l m Z d  d l m Z e j e j j e ƒ ƒ Z d „  Z d „  Z  d e f d „  ƒ  YZ! e! ƒ  Z" d „  Z# d e f d „  ƒ  YZ$ e
 j% d e ƒ d e
 j& f d „  ƒ  YZ' d e
 j& f d „  ƒ  YZ( d e
 j& f d „  ƒ  YZ) d e* f d „  ƒ  YZ+ d e f d  „  ƒ  YZ, e, Z- d! „  Z. e j/ Z0 d" Z1 d# Z2 d$ e. e0 e1 ƒ f d% e. e0 e2 ƒ f d& e. e0 e2 e j3 ƒ f d' e. e0 e2 ƒ f g Z4 d( d) „ Z5 d S(*   iÿÿÿÿ(   t   divisiont   print_functionNs6   The CococaAgg backend required PyObjC to be installed!(   t   *(   t   NibClassBuildert	   AppHelper(   t   cbooks   1.3t   messages]   The CocoaAgg backend is not a fully-functioning backend. It may be removed in matplotlib 1.4.(   t   Figure(   t   FigureManagerBaset   FigureCanvasBase(   t   ShowBase(   t   FigureCanvasAgg(   t   Gcfc         O  s.   | j  d t ƒ } | | | Ž  } t |  | ƒ S(   Nt   FigureClass(   t   popR   t   new_figure_manager_given_figure(   t   numt   argst   kwargsR   t   thisFig(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   new_figure_manager-   s    c         C  s   t  | ƒ } t | |  ƒ S(   sD   
    Create a new figure manager instance for the given figure.
    (   t   FigureCanvasCocoaAggt   FigureManagerCocoaAgg(   R   t   figuret   canvas(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyR   3   s    t   Showc           B  s   e  Z d  „  Z RS(   c         C  s   d  S(   N(    (   t   self(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   mainloopH   s    (   t   __name__t
   __module__R   (    (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyR   G   s   c          C  s8   t  j ƒ  r4 t j ƒ  }  |  d  k	 r4 |  j ƒ  q4 n  d  S(   N(   t
   matplotlibt   is_interactiveR   t
   get_activet   Nonet   show(   t
   figManager(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   draw_if_interactiveM   s    R   c           B  sJ   e  Z d  „  Z d „  Z d „  Z e j j e _ d „  Z e j	 j e _ RS(   c         C  s   t  j |  ƒ d  S(   N(   R   t   draw(   R   (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyR%   T   s    c         C  s   d  S(   N(    (   R   t   bbox(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   blitW   s    c         C  s   t  j |  | ƒ d  S(   N(   R	   t   start_event_loop_default(   R   t   timeout(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   start_event_loopZ   s    c         C  s   t  j |  ƒ d  S(   N(   R	   t   stop_event_loop_default(   R   (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   stop_event_loop^   s    (
   R   R   R%   R'   R*   R	   R(   t   __doc__R,   R+   (    (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyR   S   s   				s   Matplotlib.nibt   MatplotlibControllerc           B  s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C  sä   t  ƒ  j |  ƒ t  ƒ  |  _ t j ƒ  j |  _ |  j |  j _ |  j |  j _ |  j j t	 ƒ |  j j
 |  ƒ |  j j |  ƒ |  j j t ƒ t j ƒ  j d ƒ |  j _ |  j j |  j j ƒ |  j j |  j ƒ |  j j |  ƒ d  S(   Ni    (   i    i    (   t   NSAppt   setDelegate_t   appR   R    R   t   plotViewt
   plotWindowt   setAcceptsMouseMovedEvents_t   Truet   makeKeyAndOrderFront_t   setImageFrameStyle_t   NSImageFrameGroovet   NSImaget   alloct   initWithSize_t   image_t	   setImage_t   makeFirstResponder_t   windowDidResize_(   R   (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   awakeFromNibk   s    c         C  s   |  j  j | ƒ d  S(   N(   R2   R?   (   R   t   sender(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyR?   �   s    c         C  s   |  j  j |  ƒ t j S(   N(   R1   t   stop_t   objct   YES(   R   RA   (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   windowShouldClose_„   s    c         C  s;   t  j ƒ  } | j ƒ  t k r7 |  j j | j ƒ  ƒ n  d  S(   N(   t   NSSavePanelt	   savePanelt   runModalt   NSFileHandlingPanelOKButtonR   t   print_figuret   filename(   R   RA   t   p(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   saveFigure_‰   s    c         C  s    t  j |  j ƒ } | j ƒ  d  S(   N(   t   NSPrintOperationt   printOperationWithView_R2   t   runOperation(   R   RA   t   op(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   printFigure_Ž   s    (   R   R   R@   R?   RE   RM   RR   (    (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyR.   f   s
   				t
   PlotWindowc           B  s   e  Z RS(    (   R   R   (    (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyRS   ’   s   t   PlotViewc           B  sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C  sà   |  j  j ƒ  \ } } xE t |  j j ƒ  j ƒ  ƒ D]( } |  j j |  j j ƒ  j | ƒ ƒ q1 W|  j j | | f ƒ t	 j
 ƒ  j |  j  j ƒ  d d d d f | | d d t t t | d d ƒ
 } |  j j | ƒ |  j t ƒ d  S(   Nt    i   i   i    (   R   t   get_width_heightt   xrangeR<   t   representationst   countt   removeRepresentation_t   objectAtIndex_t   setSize_t   NSBitmapImageRepR:   t‡   initWithBitmapDataPlanes_pixelsWide_pixelsHigh_bitsPerSample_samplesPerPixel_hasAlpha_isPlanar_colorSpaceName_bytesPerRow_bitsPerPixel_t   buffer_rgbaR5   t   Falset   NSCalibratedRGBColorSpacet   addRepresentation_t   setNeedsDisplay_(   R   t   wt   ht   it   brep(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt
   updatePlot–   s"    "&	c         C  s]   |  j  ƒ  j \ } } |  j j j } |  j j j | | | | ƒ |  j j ƒ  |  j ƒ  d  S(   N(   t   boundst   sizeR   R   t   dpit   set_size_inchesR%   Rh   (   R   RA   Rd   Re   Rk   (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyR?   ®   s
    c         C  s—   | j  ƒ  d k } |  j | j ƒ  d  ƒ } | j ƒ  } | t k rK d } n t d | d t j ƒd } |  j	 j
 | j | j | d | ƒ|  j ƒ  d  S(   Ni   i   s   Unknown mouse event type:t   fileiÿÿÿÿt   dblclick(   t
   clickCountt   convertPoint_fromView_t   locationInWindowR!   t   typet   NSLeftMouseDownt   printt   syst   stderrR   t   button_press_eventt   xt   yRh   (   R   t   eventRn   t   locRr   t   button(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt
   mouseDown_µ   s    	"c         C  s?   |  j  | j ƒ  d  ƒ } |  j j | j | j ƒ |  j ƒ  d  S(   N(   Rp   Rq   R!   R   t   motion_notify_eventRx   Ry   Rh   (   R   Rz   R{   (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   mouseDragged_Á   s    c         C  s   |  j  | j ƒ  d  ƒ } | j ƒ  } | t k r9 d } n t d | d t j ƒd } |  j j	 | j
 | j | ƒ |  j ƒ  d  S(   Ni   s   Unknown mouse event type:Rm   iÿÿÿÿ(   Rp   Rq   R!   Rr   t   NSLeftMouseUpRt   Ru   Rv   R   t   button_release_eventRx   Ry   Rh   (   R   Rz   R{   Rr   R|   (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   mouseUp_Æ   s    	c         C  s$   |  j  j | j ƒ  ƒ |  j ƒ  d  S(   N(   R   t   key_press_eventt
   charactersRh   (   R   Rz   (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   keyDown_Ñ   s    c         C  s$   |  j  j | j ƒ  ƒ |  j ƒ  d  S(   N(   R   t   key_release_eventR„   Rh   (   R   Rz   (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   keyUp_Õ   s    (	   R   R   Rh   R?   R}   R   R‚   R…   R‡   (    (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyRT   •   s   						t   MPLBootstrapc           B  s   e  Z d  „  Z RS(   c         C  s9   | j  d i  d  ƒ s5 t d d t j ƒt j ƒ  n  d  S(   Ns   Matplotlib.nibs#   Unable to load Matplotlib Cocoa UI!Rm   (   t'   loadNibFile_externalNameTable_withZone_R!   Rt   Ru   Rv   t   exit(   R   t   bundle(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   startWithBundle_Û   s    (   R   R   RŒ   (    (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyRˆ   Ù   s   R   c           B  s   e  Z d  „  Z d „  Z RS(   c         C  s/   t  j |  | | ƒ y t d ƒ Wn n Xd  S(   Nt
   Matplotlib(   R   t   __init__t   WMEnable(   R   R   R   (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyRŽ   â   s
    c         C  s8   t  j ƒ  j ƒ  j d t t ƒ |  _ t j ƒ  j	 ƒ  d  S(   Ns   startWithBundle:(
   Rˆ   R:   t   initt5   performSelectorOnMainThread_withObject_waitUntilDone_t	   mplBundleR`   t	   bootstrapt   NSApplicationt   sharedApplicationt   run(   R   (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyR"   ï   s
    (   R   R   RŽ   R"   (    (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyR   á   s   	c          G  s   d j  |  ƒ S(   NRU   (   t   join(   R   (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   Sý   s    s   o^{ProcessSerialNumber=LL}s   n^{ProcessSerialNumber=LL}u   GetCurrentProcessu   SetFrontProcessu   CPSSetProcessNameu   CPSEnableForegroundOperationt   Pythonc   	      C  sÓ  t  |  t ƒ r! |  j d ƒ }  n  t j ƒ  } t j j t j j t j j t j	 ƒ d ƒ d ƒ d } | j
 ƒ  | k r| t St j t j d ƒ ƒ } | d  k r· t d d t j ƒt Si  } t j | | t ƒ x: t D]2 \ } } | | k r× t d | d t j ƒt Sq× W| d ƒ  \ } } | rFt d | | f d t j ƒt S| d | |  ƒ } | rt d | | f d t j ƒt S| d	 | ƒ } | r™t S| d
 | ƒ } | rÏt d
 | | f d t j ƒt St S(   Nt   utf8i    s8   /System/Library/Frameworks/ApplicationServices.frameworks   ApplicationServices missingRm   t   Missingt   GetCurrentProcesst   CPSSetProcessNamet   CPSEnableForegroundOperationt   SetFrontProcess(   t
   isinstancet   unicodet   encodet   NSBundlet
   mainBundlet   ost   patht   splitRu   t
   executablet
   bundlePathR5   t   bundleWithPath_RC   t   pathForFrameworkR!   Rt   Rv   R`   t   loadBundleFunctionst	   FUNCTIONS(	   t   nameR¤   t   bPatht   bndlt   dt   fnt   sigt   errt   psn(    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyR�     s@    9(6   t
   __future__R    R   R¥   Ru   RC   t   ImportErrort
   Foundationt   AppKitt   PyObjCToolsR   R   R   R   t   warn_deprecatedt   matplotlib.figureR   t   matplotlib.backend_basesR   R	   R
   t   backend_aggR   t   matplotlib._pylab_helpersR   R£   Rª   R¦   t   dirnamet   __file__R’   R   R   R   R"   R$   R   t   extractClassest   AutoBaseClassR.   RS   RT   t   NSObjectRˆ   R   t   FigureManagerR˜   t   _C_SHTt   OSErrt   OUTPSNt   INPSNt
   _C_CHARPTRR­   R�   (    (    (    s^   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_cocoaagg.pyt   <module>   sR   

				,D		