ó
±éRc           @  s¹  d  d l  m Z m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m	 Z	 d  d l
 m Z m Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z d  d l m Z d  d l m Z d  d l m Z d  d	 l m Z d  d
 l m Z y d  d l j  j! j" Z" Wn e# k
 r@d Z" n Xd  d l% m& Z& m' Z' m( Z( m) Z) e) Z* d „  Z+ e, Z- i e& j. j/ e j0 6e& j. j1 e j2 6e& j. j3 e j4 6e& j. j5 e j6 6Z7 d „  Z8 d „  Z9 d e f d „  ƒ  YZ: e: ƒ  Z; d „  Z< d „  Z= d e f d „  ƒ  YZ> d e' j? e f d „  ƒ  YZ@ d e' jA f d „  ƒ  YZB d e f d „  ƒ  YZC d e e' jD f d „  ƒ  YZE d e e' j? f d „  ƒ  YZF d d „ ZG d  „  ZH eC ZI d S(!   iÿÿÿÿ(   t   divisiont   print_functionN(   t   verbose(   t   is_string_liket   onetrue(   t   RendererBaset   GraphicsContextBaset   FigureManagerBaset   FigureCanvasBaset   NavigationToolbar2t	   IdleEventt   cursorst	   TimerBase(   t   ShowBase(   t   Gcf(   t   Figure(   t   MathTextParser(   t   SubplotTool(   t   QtCoret   QtGuit   _getSaveFileNamet   __version__c           C  s   t  j d ƒ j j S(   Ni   (   t   syst	   _getframet   f_codet   co_name(    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   fn_name   s    c          C  s;   t  j ƒ  r7 t j ƒ  }  |  d k r7 |  j j ƒ  q7 n  d S(   s5   
    Is called after every pylab drawing command
    N(   t
   matplotlibt   is_interactiveR   t
   get_activet   Nonet   canvast	   draw_idle(   t
   figManager(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   draw_if_interactive'   s    c          C  sÜ   t  j j ƒ  rØ t r" t d ƒ n  t  j j ƒ  }  |  d	 k rÏ t t  d ƒ r� t j	 j
 d ƒ } | d	 k s} t j d | ƒ r� t d ƒ ‚ q� n  t  j d g ƒ a t j j t t j d ƒ t t j d ƒ ƒ qØ |  a n  d	 S(
   sJ   
    Only one qApp can exist at a time, so check before creating one.
    s   Starting up QApplicationt   QX11Infot   DISPLAYs   :\ds   Invalid DISPLAY variablet    s   lastWindowClosed()s   quit()N(   R   t   QApplicationt
   startingUpt   DEBUGt   printt   instanceR   t   hasattrt   ost   environt   gett   ret   searcht   RuntimeErrort   qAppR   t   QObjectt   connectt   SIGNALt   SLOT(   t   appt   display(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   _create_qApp0   s     t   Showc           B  s   e  Z d  „  Z RS(   c         C  s'   t  j  t  j t  j ƒ t j j ƒ  d  S(   N(   t   signalt   SIGINTt   SIG_DFLR   R2   t   exec_(   t   self(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   mainloopG   s    (   t   __name__t
   __module__R@   (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR:   F   s   c         O  s   t  | | Ž  } t |  | ƒ S(   s.   
    Create a new figure manager instance
    (   R   t   new_figure_manager_given_figure(   t   numt   argst   kwargst   thisFig(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   new_figure_managerO   s    c         C  s   t  | ƒ } t | |  ƒ } | S(   sD   
    Create a new figure manager instance for the given figure.
    (   t   FigureCanvasQTt   FigureManagerQT(   RD   t   figureR   t   manager(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRC   W   s    t   TimerQTc           B  sD   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s   
    Subclass of :class:`backend_bases.TimerBase` that uses Qt4 timer events.

    Attributes:
    * interval: The time between timer events in milliseconds. Default
        is 1000 ms.
    * single_shot: Boolean flag indicating whether this timer should
        operate as single shot (run once and then stop). Defaults to False.
    * callbacks: Stores list of (func, args) tuples that will be called
        upon timer events. This list can be manipulated directly, or the
        functions add_callback and remove_callback can be used.
    c         O  sU   t  j |  | | Ž t j ƒ  |  _ t j j |  j t j d ƒ |  j ƒ |  j	 ƒ  d  S(   Ns	   timeout()(
   R   t   __init__R   t   QTimert   _timerR3   R4   R5   t	   _on_timert   _timer_set_interval(   R?   RE   RF   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRN   m   s
    
c         C  sN   y6 t  j |  ƒ t j j |  j t j d ƒ |  j ƒ Wn t k
 rI n Xd  S(   Ns	   timeout()(	   R   t   __del__R   R3   t
   disconnectRP   R5   RQ   R1   (   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRS   w   s    c         C  s   |  j  j |  j ƒ d  S(   N(   RP   t   setSingleShott   _single(   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   _timer_set_single_shot�   s    c         C  s   |  j  j |  j ƒ d  S(   N(   RP   t   setIntervalt	   _interval(   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRR   „   s    c         C  s   |  j  j ƒ  d  S(   N(   RP   t   start(   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   _timer_start‡   s    c         C  s   |  j  j ƒ  d  S(   N(   RP   t   stop(   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   _timer_stopŠ   s    (	   RA   RB   t   __doc__RN   RS   RW   RR   R[   R]   (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRM   `   s   	
	
			RI   c           B  sL  e  Z i d  e j j 6d e j j 6d e j j 6d e j j 6d e j j 6d e j j	 6d e j j
 6d e j j 6d e j j 6d	 e j j 6d
 e j j 6d e j j 6d e j j 6d e j j 6d e j j 6d e j j 6d e j j 6d e j j 6d e j j 6d e j j 6d e j j 6d e j j 6d e j j 6d e j j 6d e j j 6d e j j 6Z e j j d e j j f e j j  d e j j f e j j! d e j j f g Z" e j j! Z# e$ j% d k rKe j& i d e j j 6d  e j j 6ƒ e j j! d e j j f e j j  d e j j f e j j d e j j f g Z" e j j Z# n  i d e j j' 6d e j j( 6d e j j) 6Z* d „  Z+ d  „  Z, d! „  Z- d" „  Z. d# „  Z/ d$ „  Z0 d% „  Z1 d& „  Z2 d' „  Z3 d( „  Z4 d) „  Z5 d* „  Z6 d+ „  Z7 d, „  Z8 d- „  Z9 d. „  Z: d/ „  Z; d0 „  Z< e= j> j? e< _? d1 „  Z@ e= jA j? e@ _? d2 „  ZB RS(3   t   controlt   shiftt   altt   supert   entert   leftt   upt   rightt   downt   escapet   f1t   f2t   f3t   f4t   f5t   f6t   f7t   f8t   f9t   f10t   f11t   f12t   homet   endt   pageupt   pagedownt   ctrlt   darwini   i   i   c         C  s‚   t  r t d | ƒ n  t ƒ  t j j |  ƒ t j |  | ƒ | |  _ |  j t	 ƒ t	 |  _
 |  j ƒ  \ } } |  j | | ƒ d  S(   Ns   FigureCanvasQt: (   R(   R)   R9   R   t   QWidgetRN   R   RK   t   setMouseTrackingt   Truet   _idlet   get_width_heightt   resize(   R?   RK   t   wt   h(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRN   Í   s     		c         C  s   |  j  | ƒ d  S(   N(   t   mpl_idle_event(   R?   t   event(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   __timerEventÛ   s    c         C  s   t  j |  | ƒ d  S(   N(   R   t   enter_notify_event(   R?   R„   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt
   enterEventß   s    c         C  s!   t  j j ƒ  t j |  | ƒ d  S(   N(   R   R&   t   restoreOverrideCursorR   t   leave_notify_event(   R?   R„   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt
   leaveEventâ   s    c         C  sŽ   | j  ƒ  j ƒ  } |  j j j | j  ƒ  j ƒ  } |  j j | j ƒ  ƒ } | d  k	 rn t
 j |  | | | ƒ n  t rŠ t d | j ƒ  ƒ n  d  S(   Ns   button pressed:(   t   post   xRK   t   bboxt   heightt   yt   buttondR.   t   buttonR   R   t   button_press_eventR(   R)   (   R?   R„   RŒ   R�   R‘   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   mousePressEventæ   s     c         C  s”   | j  ƒ  j ƒ  } |  j j j | j  ƒ  j ƒ  } |  j j | j ƒ  ƒ } | d  k	 rt t
 j |  | | | d t ƒn  t r� t d | j ƒ  ƒ n  d  S(   Nt   dblclicks   button doubleclicked:(   R‹   RŒ   RK   R�   RŽ   R�   R�   R.   R‘   R   R   R’   R}   R(   R)   (   R?   R„   RŒ   R�   R‘   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   mouseDoubleClickEventï   s     c         C  s<   | j  ƒ  } |  j j j | j ƒ  } t j |  | | ƒ d  S(   N(   RŒ   RK   R�   RŽ   R�   R   t   motion_notify_event(   R?   R„   RŒ   R�   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   mouseMoveEventø   s    c         C  sy   | j  ƒ  } |  j j j | j ƒ  } |  j j | j ƒ  ƒ } | d  k	 rb t	 j
 |  | | | ƒ n  t ru t d ƒ n  d  S(   Ns   button released(   RŒ   RK   R�   RŽ   R�   R�   R.   R‘   R   R   t   button_release_eventR(   R)   (   R?   R„   RŒ   R�   R‘   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   mouseReleaseEventÿ   s     c         C  s�   | j  ƒ  } |  j j j | j ƒ  } | j ƒ  d } | j ƒ  t j j	 k r‰ t
 j |  | | | ƒ t r‰ t d | j ƒ  | f ƒ q‰ n  d  S(   Nix   s&   scroll event : delta = %i, steps = %i (   RŒ   RK   R�   RŽ   R�   t   deltat   orientationR   t   Qtt   VerticalR   t   scroll_eventR(   R)   (   R?   R„   RŒ   R�   t   steps(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt
   wheelEvent  s     c         C  sI   |  j  | ƒ } | d  k r d  St j |  | ƒ t rE t d | ƒ n  d  S(   Ns	   key press(   t   _get_keyR   R   t   key_press_eventR(   R)   (   R?   R„   t   key(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   keyPressEvent  s     c         C  sI   |  j  | ƒ } | d  k r d  St j |  | ƒ t rE t d | ƒ n  d  S(   Ns   key release(   R¡   R   R   t   key_release_eventR(   R)   (   R?   R„   R£   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   keyReleaseEvent  s     c         C  sÀ   | j  ƒ  j ƒ  } | j  ƒ  j ƒ  } t rU t d | | f ƒ t d | | f ƒ n  |  j j } | | } | | } |  j j | | ƒ t j	 |  ƒ |  j
 ƒ  |  j ƒ  t j j |  | ƒ d  S(   Ns   resize (%d x %d)s"   FigureCanvasQt.resizeEvent(%d, %d)(   t   sizet   widthRŽ   R(   R)   RK   t   dpit   set_size_inchesR   t   resize_eventt   drawt   updateR   R{   t   resizeEvent(   R?   R„   R�   R‚   t   dpivalt   wincht   hinch(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR®      s    



c         C  s"   |  j  ƒ  \ } } t j | | ƒ S(   N(   R   R   t   QSize(   R?   R�   R‚   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   sizeHint/  s    c         C  s   t  j d d ƒ S(   Ni
   (   R   R²   (   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   minumumSizeHint3  s    c         C  s  | j  ƒ  r d  S| j ƒ  d k  r� t | j ƒ  ƒ } t | j ƒ  ƒ |  j @r¨ t | j ƒ  ƒ } t | j ƒ  ƒ t	 j
 j @s� | j ƒ  } q� q¨ n |  j j | j ƒ  ƒ } | d  k	 rx` |  j D]R \ } } } | j ƒ  | k r¾ t | j ƒ  ƒ | @| k r¾ d j | | ƒ } q¾ q¾ Wn  | S(   Ni   u   {0}+{1}(   t   isAutoRepeatR   R£   t   unicodet   textt   intt	   modifierst   _ctrl_modifiert   chrR   Rœ   t   ShiftModifiert   lowert   keyvaldR.   t   _modifier_keyst   format(   R?   R„   R£   t   modifiert   prefixt   Qt_key(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR¡   6  s    .c         O  s   t  | | Ž  S(   sÖ  
        Creates a new backend-specific subclass of :class:`backend_bases.Timer`.
        This is useful for getting periodic events through the backend's native
        event loop. Implemented only for backends with GUIs.

        optional arguments:

        *interval*
          Timer interval in milliseconds
        *callbacks*
          Sequence of (func, args, kwargs) where func(*args, **kwargs) will
          be executed by the timer every *interval*.
        (   RM   (   R?   RE   RF   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt	   new_timerV  s    c         C  s   t  j j ƒ  d  S(   N(   R   R2   t   processEvents(   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   flush_eventsf  s    c         C  s   t  j |  | ƒ d  S(   N(   R   t   start_event_loop_default(   R?   t   timeout(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   start_event_loopi  s    c         C  s   t  j |  ƒ d  S(   N(   R   t   stop_event_loop_default(   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   stop_event_loopm  s    c           sA   ˆ  j  } t ˆ  _  ‡  f d †  } | r= t j j d | ƒ n  d S(   s    update drawing area only if idlec            s   ˆ  j  ƒ  t ˆ  _ d  S(   N(   R¬   R}   R~   (   RE   (   R?   (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt	   idle_drawu  s    
i    N(   R~   t   FalseR   RO   t
   singleShot(   R?   t   dRÌ   (    (   R?   sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR    q  s
    		 (C   RA   RB   R   Rœ   t   Key_Controlt	   Key_Shiftt   Key_Altt   Key_Metat
   Key_Returnt   Key_Leftt   Key_Upt	   Key_Rightt   Key_Downt
   Key_Escapet   Key_F1t   Key_F2t   Key_F3t   Key_F4t   Key_F5t   Key_F6t   Key_F7t   Key_F8t   Key_F9t   Key_F10t   Key_F11t   Key_F12t   Key_Homet   Key_Endt
   Key_PageUpt   Key_PageDownR¾   t   MetaModifiert   AltModifiert   ControlModifierR¿   Rº   R   t   platformR­   t
   LeftButtont	   MidButtont   RightButtonR�   RN   t   _FigureCanvasQT__timerEventR‡   RŠ   R“   R•   R—   R™   R    R¤   R¦   R®   R³   R´   R¡   RÄ   RÆ   RÉ   R   RÇ   R^   RË   RÊ   R    (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRI   Ž   s~   													
						 				t
   MainWindowc           B  s   e  Z d  „  Z RS(   c         C  s-   |  j  t j d ƒ ƒ t j j |  | ƒ d  S(   Ns	   closing()(   t   emitR   R5   R   t   QMainWindowt
   closeEvent(   R?   R„   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRõ   |  s    (   RA   RB   Rõ   (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRò   {  s   RJ   c           B  st   e  Z d  Z d „  Z e j ƒ  d „  ƒ Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z d
 „  Z RS(   s³   
    Public attributes

    canvas      : The FigureCanvas instance
    num         : The Figure number
    toolbar     : The qt.QToolBar
    window      : The qt.QMainWindow
    c   	        s<  t  r t d t ƒ  ƒ n  t j ˆ  | | ƒ | ˆ  _ t ƒ  ˆ  _ ˆ  j j ˆ  j t	 j
 d ƒ | j ƒ ˆ  j j ˆ  j t	 j
 d ƒ ˆ  j ƒ ˆ  j j d | ƒ t j j t j d d d ƒ } ˆ  j j t j | ƒ ƒ ˆ  j j t	 j j ƒ ˆ  j j ƒ  t ˆ  j _ ˆ  j ˆ  j ˆ  j ƒ ˆ  _ ˆ  j d  k	 r�ˆ  j j ˆ  j ƒ t	 j  j ˆ  j t	 j
 d ƒ ˆ  j! ƒ ˆ  j j" ƒ  j# ƒ  } n d } | j" ƒ  } ˆ  j j$ ƒ  j" ƒ  } | | j# ƒ  ˆ  _% | j# ƒ  ˆ  j% } ˆ  j j& | j' ƒ  | ƒ ˆ  j j( ˆ  j ƒ t j) ƒ  rˆ  j j* ƒ  n  ‡  f d	 †  } ˆ  j j+ j, | ƒ d  S(
   Ns   FigureManagerQT.%ss	   closing()s	   Figure %dt   datapatht   imagess   matplotlib.pngt   messagei    c           s#   ˆ  j  d  k	 r ˆ  j  j ƒ  n  d  S(   N(   t   toolbarR   R­   (   t   fig(   R?   (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   notify_axes_change¼  s    (-   R(   R)   R   R   RN   R   Rò   t   windowR4   R   R5   t   close_eventt   _widgetclosedt   setWindowTitleR,   t   patht   joinR   t   rcParamst   setWindowIconR   t   QIcont   setFocusPolicyRœ   t   StrongFocust   setFocusRÍ   t   _destroyingt   _get_toolbarRù   R   t
   addToolBarR3   t   _show_messageR³   RŽ   t	   statusBart   _status_and_tool_heightR€   R¨   t   setCentralWidgetR   t   showRK   t   add_axobserver(	   R?   R   RD   t   imaget
   tbs_heightt   cst   sbsRŽ   Rû   (    (   R?   sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRN   ‹  s@    	

	
c         C  s   |  j  j ƒ  j | ƒ d  S(   N(   Rü   R  t   showMessage(   R?   t   s(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR  Â  s    c         C  s0   |  j  j ƒ  r |  j  j ƒ  n |  j  j ƒ  d  S(   N(   Rü   t   isFullScreent
   showNormalt   showFullScreen(   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   full_screen_toggleÇ  s    c         C  sH   |  j  j r d  St |  j  _ y t j |  j ƒ Wn t k
 rC n Xd  S(   N(   Rü   R  R}   R   t   destroyRD   t   AttributeError(   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRþ   Í  s    c         C  sR   t  j d d k r  t d ƒ n. t  j d d k rH t | | t ƒ } n d  } | S(   NRù   t   classics    Classic toolbar is not supportedt   toolbar2(   R   R  R)   t   NavigationToolbar2QTRÍ   R   (   R?   R   t   parentRù   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR	  Ù  s    c         C  s   |  j  j | | |  j ƒ d S(   s   set the canvas size in pixelsN(   Rü   R€   R  (   R?   R¨   RŽ   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR€   ä  s    c         C  s   |  j  j ƒ  d  S(   N(   Rü   R  (   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR  è  s    c         G  s—   t  j j ƒ  d  k r d  S|  j j r) d  St |  j _ t j j	 |  j t j
 d ƒ |  j ƒ |  j rs |  j j ƒ  n  t r† t d ƒ n  |  j j ƒ  d  S(   Ns   destroyed()s   destroy figure manager(   R   R&   R*   R   Rü   R  R}   R   R3   RT   R5   Rþ   Rù   R  R(   R)   t   close(   R?   RE   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR  ë  s    
	c         C  s   t  |  j j ƒ  ƒ S(   N(   t   strRü   t   windowTitle(   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   get_window_titleú  s    c         C  s   |  j  j | ƒ d  S(   N(   Rü   Rÿ   (   R?   t   title(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   set_window_titleý  s    (   RA   RB   R^   RN   R   t   SlotR  R  Rþ   R	  R€   R  R  R$  R&  (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRJ   �  s   	7							R  c           B  s˜   e  Z e d  „ Z d „  Z d „  Z e d k	 r< d „  Z n  d „  Z	 d „  Z
 d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z RS(   c         C  sB   | |  _  | |  _ i  |  _ t j j |  | ƒ t j |  | ƒ d S(   s;    coordinates: should we show the coordinates on the right? N(   R   t   coordinatest   _actionsR   t   QToolBarRN   R	   (   R?   R   R   R(  (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRN     s
    			c         C  s   t  j t j j |  j | ƒ ƒ S(   N(   R   R  R,   R   R  t   basedir(   R?   t   name(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   _icon  s    c         C  s£  t  j j t j d d ƒ |  _ x¦ |  j D]› \ } } } } | d  k rT |  j ƒ  q) |  j	 |  j
 | d ƒ | t |  | ƒ ƒ } | |  j | <| d
 k r¨ | j t ƒ n  | d  k	 r) | j | ƒ q) q) Wt d  k	 r|  j	 |  j
 d ƒ d |  j ƒ } | j d ƒ n  i  |  _ |  j r–t j d	 |  ƒ |  _ |  j j t j j t j j Bƒ |  j j t j t j j t j j ƒ ƒ |  j  |  j ƒ } | j! t ƒ n  d  |  _" d  S(   NRö   R÷   s   .pngt   zoomt   pans   qt4_editor_options.pngt	   Customizes$   Edit curves line and axes parameterst    (   s   zooms   pan(#   R,   R   R  R   R  R+  t	   toolitemsR   t   addSeparatort	   addActionR-  t   getattrR)  t   setCheckableR}   t
   setToolTipt   figureoptionst   edit_parameterst   buttonsR(  R   t   QLabelt   locLabelt   setAlignmentR   Rœ   t
   AlignRightt   AlignTopt   setSizePolicyt   QSizePolicyt	   Expandingt   Ignoredt	   addWidgett
   setVisiblet
   adj_window(   R?   R·   t   tooltip_textt
   image_filet   callbackt   at   labelAction(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   _init_toolbar  s4    				c   	      C  s.  |  j  j j ƒ  } t | ƒ d k r1 | d } né g  } x“ | D]‹ } | j ƒ  } | j ƒ  } | rˆ d } | r{ | d 7} n  | d 7} n | r— d } n d } | j | t d | d	 | d
 t | ƒ ƒ ƒ q> Wt	 j
 j |  d d | d t ƒ \ } } | r| | j t | ƒ ƒ } n d  St j | |  ƒ d  S(   Ni   i    s	   %(title)ss   : %(ylabel)ss    (%(axes_repr)s)s   %(axes_repr)s (%(ylabel)s)s   %(axes_repr)sR%  t   ylabelt	   axes_reprR0  s   Select axes:(   R   RK   t   get_axest   lent	   get_titlet
   get_ylabelt   appendt   dictt   reprR   t   QInputDialogt   getItemRÍ   t   indexR¶   R8  t   figure_edit(	   R?   t   allaxest   axest   titlesR%  RM  t   fmtt   itemt   ok(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR9  5  s2    	c         C  s>   |  j  d j |  j d k ƒ |  j  d j |  j d k ƒ d  S(   NR/  t   PANR.  t   ZOOM(   R)  t
   setCheckedt   _active(   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   _update_buttons_checkedT  s    c         G  s$   t  t |  ƒ j | Œ  |  j ƒ  d  S(   N(   Rb   R  R/  Rd  (   R?   RE   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR/  Y  s    c         G  s$   t  t |  ƒ j | Œ  |  j ƒ  d  S(   N(   Rb   R  R.  Rd  (   R?   RE   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR.  ]  s    c         C  s   |  j  j ƒ  d  S(   N(   R   R¬   (   R?   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   dynamic_updatea  s    c         C  sE   |  j  t j d ƒ | ƒ |  j rA |  j j | j d d ƒ ƒ n  d  S(   NRø   s   , s   
(   Ró   R   R5   R(  R<  t   setTextt   replace(   R?   R  (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   set_messaged  s    	c         C  s.   t  r t d | ƒ n  |  j j t | ƒ d  S(   Ns
   Set cursor(   R(   R)   R   t	   setCursort   cursord(   R?   t   cursor(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt
   set_cursori  s     c         C  s—   |  j  j j j } | | } | | } t | | ƒ } t | | ƒ } g  t | | ƒ t | | ƒ | | f D] }	 t |	 ƒ ^ qk }
 |  j  j |
 ƒ d  S(   N(   R   RK   R�   RŽ   t   abst   minR¸   t   drawRectangle(   R?   R„   t   x0t   y0t   x1t   y1RŽ   R�   R‚   t   valt   rect(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   draw_rubberbandm  s    

=c         C  s¦   t  j ƒ  |  _ |  j } | j d ƒ t j j t j d d d ƒ } | j	 t  j
 | ƒ ƒ t |  j j | ƒ } | j | ƒ | j t  j j t  j j ƒ | j ƒ  d  S(   Ns   Subplot Configuration ToolRö   R÷   s   matplotlib.png(   R   Rô   RF  Rÿ   R,   R   R  R   R  R  R  t   SubplotToolQtR   RK   R  R@  RA  t	   PreferredR  (   R?   t   winR  t   tool(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   configure_subplotsx  s    	c         C  s
   t  | ƒ S(   N(   RI   (   R?   Rú   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   _get_canvas†  s    c         G  sÁ  |  j  j ƒ  } | j ƒ  } | j ƒ  |  j  j ƒ  } t j j d d ƒ } t j	 j
 | ƒ } t j	 j | |  j  j ƒ  ƒ } g  } d  } xl | D]d \ }	 }
 d j g  |
 D] } d | ^ q¥ ƒ } d |	 | f } | |
 k rã | } n  | j | ƒ qŒ Wd j | ƒ } t |  d | | | ƒ } | r½| d k r=| t j d <n t j	 j t | ƒ ƒ t j d <y |  j  j t | ƒ ƒ Wq½t k
 r¹} t j j |  d t | ƒ t j j t j j ƒ q½Xn  d  S(	   Ns   savefig.directoryR1  R%   s   *.%ss   %s (%s)s   ;;s   Choose a filename to save tos   Error saving file(   R   t   get_supported_filetypes_groupedt   itemst   sortt   get_default_filetypeR   R  R.   R,   R   t
   expanduserR  t   get_default_filenameR   RS  R   t   dirnameR¶   t   print_figuret	   ExceptionR   t   QMessageBoxt   criticalR"  t   Okt   NoButton(   R?   RE   t	   filetypest   sorted_filetypest   default_filetypet	   startpathRZ   t   filterst   selectedFilterR,  t   extst   extt	   exts_listt   filtert   fnamet   e(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   save_figure‰  s8    
&			N(   RA   RB   R}   RN   R-  RL  R8  R   R9  Rd  R/  R.  Re  Rh  Rl  Rv  R{  R|  R–  (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR     s   
		&									Rw  c           B  sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C  sÀ  t  j j |  d  ƒ | |  _ | |  _ t  j t j j	 ƒ |  _
 t  j t j j ƒ |  _ t  j t j j	 ƒ |  _ t  j t j j ƒ |  _ t  j t j j	 ƒ |  _ t  j t j j ƒ |  _ t j j |  j
 t j d ƒ |  j j ƒ t j j |  j t j d ƒ |  j
 j ƒ t j j |  j t j d ƒ |  j j ƒ t j j |  j t j d ƒ |  j j ƒ |  j
 |  j |  j |  j |  j |  j f } d } xD t | | ƒ D]3 \ } } | j d ƒ | j d	 ƒ | j d
 ƒ q•Wt  j ƒ  } t  j d ƒ } | j | d d ƒ | j |  j
 d d ƒ t  j d ƒ }	 | j |	 d d ƒ | j |  j d d ƒ | j |  j t j j ƒ t  j d ƒ }
 | j t  j d ƒ d d ƒ | j |  j d d ƒ | j |  j t j j ƒ t  j d ƒ } | j | d d ƒ | j |  j d d ƒ t  j d ƒ } | j | d d ƒ | j | t j j ƒ | j |  j d d ƒ | j |  j t j j ƒ t  j d ƒ } | j | d d ƒ | j | t j j ƒ | j |  j d d ƒ | j |  j t j j ƒ | j d d ƒ | j d d ƒ | j d d ƒ | j d d ƒ | j d d ƒ |  j  | ƒ |  j
 j! t" | j# j$ d	 ƒ ƒ |  j j! t" | j# j% d	 ƒ ƒ |  j j! t" | j# j& d	 ƒ ƒ |  j j! t" | j# j' d	 ƒ ƒ |  j j! t" | j# j( d	 ƒ ƒ |  j j! t" | j# j) d	 ƒ ƒ t j j |  j
 t j d ƒ |  j* ƒ t j j |  j t j d ƒ |  j+ ƒ t j j |  j t j d ƒ |  j, ƒ t j j |  j t j d ƒ |  j- ƒ t j j |  j t j d ƒ |  j. ƒ t j j |  j t j d ƒ |  j/ ƒ d  S(   Ns   valueChanged(int)s   left:s   bottom:s   right:s   top:s   wspace:s   hspace:i    iè  i   Rd   i   i   t   topt   bottomi   i   Rf   t   hspacei   t   wspace(   s   left:s   bottom:s   right:s   top:s   wspace:s   hspace:(0   R   R{   RN   R   t	   targetfigR   t   QSliderR   Rœ   t
   Horizontalt
   sliderleftR�   t   sliderbottomt   sliderrightt	   slidertopt   sliderwspacet   sliderhspaceR3   R4   R5   t
   setMinimumt
   setMaximumt   zipt   setSingleStept   QGridLayoutR;  RD  R=  t   AlignHCentert   AlignBottomt   setRowStretcht   setColumnStretcht	   setLayoutt   setSliderPositionR¸   t   subplotparsRd   R˜  Rf   R—  Rš  R™  t   funcleftt
   funcbottomt	   funcrightt   functopt
   funcwspacet
   funchspace(   R?   R›  R   t   sliderst   adjustmentst   slidert
   adjustmentt   layoutt	   leftlabelt   toplabelt   bottomlabelt
   rightlabelt   hspacelabelt   wspacelabel(    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRN   ®  s®    		 		 		




c         C  sY   | |  j  j ƒ  k r" | d 8} n  |  j j d | d ƒ |  j rU |  j j j ƒ  n  d  S(   Ni   Rd   g     @�@(   R   t   valueR›  t   subplots_adjustt   drawonR   R¬   (   R?   Rt  (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR°    s
    	 c         C  sY   | |  j  j ƒ  k r" | d 7} n  |  j j d | d ƒ |  j rU |  j j j ƒ  n  d  S(   Ni   Rf   g     @�@(   Rž  RÁ  R›  RÂ  RÃ  R   R¬   (   R?   Rt  (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR²    s
    	 c         C  sY   | |  j  j ƒ  k r" | d 8} n  |  j j d | d ƒ |  j rU |  j j j ƒ  n  d  S(   Ni   R˜  g     @�@(   R¡  RÁ  R›  RÂ  RÃ  R   R¬   (   R?   Rt  (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR±  $  s
    	 c         C  sY   | |  j  j ƒ  k r" | d 7} n  |  j j d | d ƒ |  j rU |  j j j ƒ  n  d  S(   Ni   R—  g     @�@(   RŸ  RÁ  R›  RÂ  RÃ  R   R¬   (   R?   Rt  (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR³  *  s
    	 c         C  s7   |  j  j d | d ƒ |  j r3 |  j  j j ƒ  n  d  S(   NRš  g     @�@(   R›  RÂ  RÃ  R   R¬   (   R?   Rt  (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyR´  0  s    	 c         C  s7   |  j  j d | d ƒ |  j r3 |  j  j j ƒ  n  d  S(   NR™  g     @�@(   R›  RÂ  RÃ  R   R¬   (   R?   Rt  (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRµ  4  s    	 (	   RA   RB   RN   R°  R²  R±  R³  R´  Rµ  (    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyRw  ­  s   	j					c         C  sJ   t  |  ƒ s' d j t t |  ƒ ƒ }  n  t j j d  d |  t j j ƒ d  S(   Nt   ,t
   Matplotlib(	   R   R  t   mapR"  R   R†  t   warningR   Rˆ  (   t   msgR   (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   error_msg_qt9  s    c         C  s�   d } t  | d ƒ r4 | j d k r4 | j d } n  t  | d ƒ rb | j d k rb | | j 7} n | t | ƒ 7} t | ƒ r‹ t | ƒ n  d S(   s@   Handle uncaught exceptions
    It does not catch SystemExit
    R1  t   filenames   : t   strerrorN(   R+   RÊ  R   RË  R"  RP  RÉ  (   t   typeRÁ  t   tbRÈ  (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   exception_handler?  s     (J   t
   __future__R    R   t   mathR,   R/   R;   R   R   R   t   matplotlib.cbookR   R   t   matplotlib.backend_basesR   R   R   R   R	   R
   R   R   R   t   matplotlib._pylab_helpersR   t   matplotlib.figureR   t   matplotlib.mathtextR   t   matplotlib.widgetsR   t,   matplotlib.backends.qt4_editor.figureoptionst   backendst
   qt4_editorR8  t   ImportErrorR   t
   qt4_compatR   R   R   R   t   backend_versionR   RÍ   R(   Rœ   t   SizeAllCursort   MOVEt   PointingHandCursort   HANDt   ArrowCursort   POINTERt   CrossCursort   SELECT_REGIONRj  R"   R9   R:   R  RH   RC   RM   R{   RI   Rô   Rò   RJ   R*  R  Rw  RÉ  RÎ  t   FigureManager(    (    (    sY   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.pyt   <module>   sT   :
"								.í­Œ	