ó
ÉÝ{Tc           @   sÇ   d  Z  d d l Z d d l Z d d l Z d d l Z d d l Td d l Z d d l Z d f  d „  ƒ  YZ d e e j	 f d „  ƒ  YZ
 d d	 d
 „ Z d „  Z d „  Z d „  Z d d d d „ Z d S(   s–  
     python/ui/HBonds.py: CCP4MG Molecular Graphics Program
     Copyright (C) 2001-2008 University of York, CCLRC
     Copyright (C) 2009-2011 University of York
     Copyright (C) 2012 STFC

     This library is free software: you can redistribute it and/or
     modify it under the terms of the GNU Lesser General Public License
     version 3, modified in accordance with the provisions of the 
     license to address the requirements of UK law.
 
     You should have received a copy of the modified GNU Lesser General 
     Public License along with this library.  If not, copies may be 
     downloaded from http://www.ccp4.ac.uk/ccp4license.php
 
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU Lesser General Public License for more details.
iÿÿÿÿN(   t   *t   HB_Contactsc           B   s#  e  Z i d  d 6i  i  i  d d „ Z d „  Z d d „ Z d „  Z d d	 „ Z d d
 „ Z d d „ Z d d „ Z	 d „  Z
 d „  Z d d d „ Z d d d „ Z d i  d „ Z d d d i  d „ Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d d d d „ Z d g  d „ Z RS(   t   allt   commandt    c   
      K   së  | s d | d <n  | rZ | d d k rZ | d d k  rZ t  j | ƒ } t  j | ƒ } n  t  j |  j j d | d |  j ƒ|  _ | s¡ i d d 6|  j d 6} n  t  j |  j j d | d |  j ƒ|  _ d  |  _ d	 |  _	 d
 |  _
 | j d ƒ r| d |  _
 n  i  } | j d ƒ ro| d d k  r>d	 | d <d | d <n | d | d <d | d <| j d d ƒ | d <n  |  j d | j d d ƒ d | ƒ } | j |  j ƒ d d  l }	 |	 j ƒ  |  _ t ƒ  j |  j ƒ |  j j j |  j ƒ d  S(   NR   t   selecti    i   il   t	   selparamst   dispobj_namet   same_asi   t
   complementt   colourt
   line_widtht	   cylinderst
   line_stylet   linest
   label_modeR   t   namet   drawing_stylet   paramsiÿÿÿÿ(   t   model_selectiont   fix_v108t	   SelHandlet   parentR   t
   SelHandle1t
   SelHandle2t   Nonet   Connectivity2t	   do_redrawR
   t   has_keyt   gett   getDrawingStylePMt   add_dependentt   handleDrawingStylePMt   VectorsDispobjt   Vectorsgraphicsmodelt   label_graphmodt   BUILDt   appendt   objt   SetAlphat   opacity(
   t   selfR   t   styleparamst	   colparamsR   t   restore_from_versiont   kwt   parst   pmR!   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   __init__'   s8     &' '			 

$c         C   s   |  j  d d ƒ d  S(   Nt   reseti    (   t   closeDrawingStylePM(   R)   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   deleteJ   s    i   c         C   s   | |  _  d  S(   N(   R   (   R)   t   mode(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   set_reapply_selectionM   s    c         C   sË   t  j j t  j j t  j d d d d |  j d ƒ ƒ rb t  j j t  j d d d d |  j d ƒ St  j j t  j j t  j d d d d |  j d ƒ ƒ rÄ t  j j t  j d d d d |  j d ƒ S|  j S(   Nt   CCP4MGt   qticonst   disptabR
   s   .svgs   .png(   t   ost   patht   existst   joint   environR
   (   R)   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   get_colour_iconQ   s
    8*8*i   c         C   s>   t  j j |  d | ƒ} t |  d ƒ r: |  j j | d <n  | S(   NR   t   drawingStylePMR   (   t   dataobjt   DispObjR   t   hasattrR?   R   (   R)   R   R.   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR   Y   s    c         C   s   |  j  j d | ƒ } | S(   NR   (   R   t   getSaveParams(   R)   R   R.   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR*   a   s    c         C   s   |  j  j d | ƒ } | S(   NR   (   R   RC   (   R)   R   R.   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR   h   s    c         C   s   i  } |  j  | d <| S(   NR
   (   R
   (   R)   R   R.   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR+   o   s    c         C   s  d d  l  } d } | j |  j ƒ  | j ƒ d } | rY d } d |  _ |  j j | ƒ n  |  j | j d k rŒ d } |  j | j d ƒ n  | j |  j	 ƒ  | j	 ƒ d } | rÓ d } d |  _ |  j
 j | ƒ n  | j |  j ƒ  | j ƒ \ } } } | j d ƒ r€|  j d | d d d ƒ } | j |  j ƒ |  j rQ|  j j d	 | ƒ n  d |  _ t ƒ  j j d
 | d g ƒ d } n  | j d ƒ rÈt ƒ  j j d | d g ƒ |  j ƒ  d |  _ d } n  t | t j j |  | ƒ ƒ } | r|  j j d g ƒ n  | S(   Niÿÿÿÿi    i   i   R
   R   R   t   customt
   parameterst   add_PMt	   delete_PMt   update(   t   utilst
   dict_diffsR   R   R   t   setSaveParamsR
   R+   t
   set_colourR*   R   R   R   R   R   R    R#   t	   setparamst   HISTORYt
   update_guiR%   R2   t   maxR@   RA   t   update_data_status0(   R)   t
   shadowdispRI   t   rvt   diffst   undiffsR/   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   update_data_statusv   sB    		$	 		
		 c         C   s   d S(   Ni   (    (   R)   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   canBeTransparent¤   s    c         K   sM   | d k r@ t  |  d ƒ rI |  j rI |  j j ƒ  d |  _ qI n	 d |  _ d  S(   Nt	   transformR   i   i   (   RB   R   t   UpdateCoordinatesR   (   R)   t	   attributet   mastert   keywords(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   handle_moving_dataª   s
    c         O   sg   t  j j |  d | d | ƒ|  j rE |  j rE |  j rE d |  _ n  |  j rc |  j |  j j _ n  d  S(   Nt   toggle_visibilityt
   visibilityi   (   R@   RA   t   set_visibilityt   visibleR   R   R#   R&   (   R)   R^   R_   t   argsR\   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR`   ¶   s    	 c         K   s"   | r t  d |  j ƒ |  _ n  d  S(   Ni   (   RP   R   (   R)   t   ParamsManagert   updatedR\   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR    Â   s    i    c         C   s\  | r> d |  j  } t d | ƒ |  _ |  j j | d d ƒn  | r¬ t | ƒ sb t ƒ  j | ƒ r¬ t | ƒ r€ t | ƒ |  _ n t d | ƒ |  _ |  j j |  j ƒ |  j S| r8t	 |  d ƒ r8| sØ d |  j  } n  t d ƒ j
 |  j ƒ t d | d t d ƒ ƒ |  _ |  j j |  j ƒ | r8t ƒ  j ƒ  q8n  t	 |  d ƒ rN|  j St d ƒ Sd  S(   Nt   HBond_drawing_styleR   t
   do_rebuildi    R?   t	   copy_from(   R   t   createDrawingStylePMR?   RM   t   PMt
   PM_MANAGERR   R   R    RB   t   remove_dependentRN   t   autoSave(   R)   RD   R   t	   auto_saveR   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR   É   s*    $  c         C   s€   t  |  d ƒ r| |  j j |  j ƒ |  j j ƒ  |  ` | r| |  j r` |  j j d t d ƒ ƒ n  t d ƒ j |  j ƒ q| n  d  S(   NR?   RE   Re   (	   RB   R?   Rk   R    R3   R#   RM   Ri   R   (   R)   R1   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR2   ç   s    	 c         K   s   d |  _  d  S(   Ni   (   R   (   R)   R\   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   set_do_redrawô   s    c         C   s   d S(   Ni    (    (   R)   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   drawù   s    c         C   sw   |  j  ƒ  } | j d ƒ d k r- t j } n	 t j } t | j d ƒ ƒ } t | j d ƒ ƒ } |  j | | | ƒ d  S(   NR   R   R   R   (   R   R   t   cprimt   DASHCYLINDERt   DASHLINEt   intt   unthreadedDraw_main(   R)   R/   R   R   R   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   unthreadedDrawþ   s    	c         C   s|  |  j  r* |  j s d |  _ n  d |  _  n  |  j s> |  j r� |  j rz |  j j j |  j ƒ |  j j	 d ƒ d |  _ d Sd Sn  |  j d k r© |  j
 ƒ  } | r© d Sn  |  j s¶ d S|  j j j ƒ  |  j j j ƒ  t ƒ  j |  j ƒ } t j | ƒ } t j |  j j |  j j | | | | |  j ƒ t ƒ  j d ƒ } |  j j j t | d ƒ t | d ƒ t | d ƒ | d	 | d
 ƒ |  j j ƒ  |  j j j |  j ƒ d |  _ |  j j	 d ƒ d d  l } | j ƒ  }	 | j d ƒ }
 |
 j d ƒ } | rxt |	 d ƒ rxt |	 j  d ƒ rxt! |	 j  j" ƒ rxt |	 j  j" ƒ  d ƒ rxt! |	 j  j" ƒ  j# ƒ rxt$ } t% j& d k rÕt% j' j( d ƒ rÕd d  l) } | j* | j+ ƒ } |
 j d ƒ } | sÕd | k rÒd GHt, } qÒqÕn  |	 j  j" ƒ  j# ƒ  t$ k ru| t j- k s| t j. k r@|  j j j/ t$ ƒ | ro|  j j j0 t$ ƒ qoqr|  j j j/ t, ƒ | rr|  j j j0 t, ƒ qrquqxn  d S(   Ni   i    R#   i   t
   atom_labelt   familyt   weightt   slantt   sizet	   underlineiÿÿÿÿt   render_qualityt   use_vbot   glWidgett   formatt   directRenderingt   win32s   -quitt   force_use_vat   IntelsL   Disabling use of VA on Windows with Intel GMA because of probable CCP4MG bug(1   t   do_recolourR   Ra   t   do_update_opacityR#   R&   R'   R(   t   do_rebuildGLR%   t	   calculateR   t   clear_primst
   DeleteTextt   MGCOLOURt   RGBR
   t
   pygl_coordt   DoubleVectorRp   t   DrawSimpleConnectiont	   connectedt   FONTMANAGERt   getFontt   SetTextFontt   strt   rebuildt   global_definitionst
   MAINWINDOWRi   R   RB   R~   t   callableR   R€   t   Truet   syst   platformt   argvt   countt   openglt   glGetStringt   GL_RENDERERt   Falset   LINERr   t   SetAnchoredt	   SetUseVBO(   R)   R   R   R   RS   t   colt   colvt   fontR•   t   mainwint   rpmt	   useVBOoptt   useVAR�   t   gl_renderert   useVAopt(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyRt   
  sn    		 		 	 &	90"  c         C   sN   |  j  j | | ƒ |  j j d | | g ƒ d |  _ |  j  j | | ƒ } d  S(   Ni   (   R   t   AddConnectiont   saved_editsR%   R   t   FindConnections(   R)   t   selection_atomt
   style_atomt   ind(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   add_contactP  s    	c         C   sÀ   | r |  j  j | ƒ n |  j  j | | ƒ |  j j d | | g ƒ rc |  j j d | | g ƒ nP |  j j d | | g ƒ rš |  j j d | | g ƒ n |  j j d | | g ƒ d |  _ d  S(   Ni   iÿÿÿÿ(   R   t   DeleteConnectiont   RemoveConnectionR®   Rœ   t   removeR%   R   (   R)   R°   R±   t   index(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   delete_contact\  s    c         C   s@  d d  l  } |  j s5 |  j ƒ  |  j s5 d d g Sn  |  j j ƒ  } d } |  j j } |  j j } x› t d | ƒ D]Š } |  j j | d ƒ }	 |  j j | d ƒ }
 | d | d |	 j ƒ  d d	 d | d |
 j ƒ  d d
 d |  j j	 | ƒ d } qr Wd d d | j
 | j | j  ƒ  ƒ ƒ d } | d } x  | D] } | d | d } q?W| d } | d d |  j j d |  j j d d } |  j ƒ  } | j d ƒ t j k rÀd } n d } | d |  j d t | j d ƒ ƒ | d |  j d } | r2d d  l } | j d | d | | ƒ } n  | | | g S(   Niÿÿÿÿi   s   Can not calculate bondssd   loop_
_vector.start_model_id
_vector.start_atom
_vector.end_model_id
_vector.end_atom
_vector.label
i    i   t   "s   "  "s   " s   "  s   " 
s/   #Definition of vectors for display with CCP4mg
s   # Hydrogen bonds
s   #Created on s   
s   
data_VECTORS
s   # s   

s    loop_
_model.id
_model.filename
s   "   "s   "
R   s    "label centre" s    "no label" s˜   

loop_
_display_objects.line_colour
_display_objects.line_style
_display_objects.line_width
_display_objects.label_mode
_display_objects.label_colour
"s   " "dashed"  R   s   "

t   filenamet   text(   t   timeR   R‡   t   GetNofConnectionsR   R   t   ranget   GetAtomt	   GetAtomIDt   GetLabelt   asctimet	   localtimeRº   R   R   Rp   t   LABELLEDCENTRER
   R“   RI   t   saveFile(   R)   Rº   t   commentsR¼   t   nVR»   t   start_model_idt   end_model_idt   iVt   atom1t   atom2t   headt   itemR/   t   labmoRI   RS   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   export_datam  s8    	
	
^.

.	;(   t   __name__t
   __module__R0   R3   R5   R>   R   R*   R   R+   RV   RW   R]   R`   R    R   R2   Rn   Ro   Ru   Rt   R³   R¸   RÐ   (    (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR       s,   #			.					F	t   HBondsc           B   sr   e  Z d Z d  Z i  Z d „  Z d d d d d d i  i d d 6i  i  d „
 Z d d d „ Z d	 „  Z	 d
 „  Z
 RS(   i    c         C   s   t  j j |  ƒ d |  _ d  S(   Ni   (   R@   RA   t   updateCrystalR   (   R)   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyRÔ   É  s    R   i   R   R   c      
   K   sÇ   i d d 6d d 6d d 6} | j  | ƒ t j j |  d | d | d | d	 | ƒt j |  d
 | d |	 d |
 d	 | ƒd  |  _ d  |  _ |  j d |  j	 d d ƒ t
 d ƒ j |  j ƒ |  j d ƒ d  S(   NR   t	   selectionR	   R
   t   styleRÓ   R   Ra   R   R   R*   R+   t   forcei   t   HBond_paramt   create(   RH   R@   RA   R0   R   R   t   CHBondR   RL   R
   Ri   R   Rn   t   update_dependents(   R)   R   Ra   R   RÕ   R
   RÖ   R   R   R*   R+   R\   R.   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR0   Í  s    

%		t   queryc         K   sâ   |  j  s |  j ƒ  r d  Sn  d |  j j d d |  j j ƒ  d } |  j j ƒ  |  j j ƒ  k r“ | d |  j j d d |  j j ƒ  d } n  | d |  j  j ƒ  } | rÞ d d  l	 } | j
 | d | d d	 d
 | ƒn  | S(   Ns   Hydrogen bonds between
Set 1:i   s     ::  s   
s   Set 2:iÿÿÿÿR»   t   warningi   t	   overwrite(   RÚ   R‡   R   Rº   R   t   getLabelt
   getCommandR   t   PrintRI   RÅ   (   R)   Rº   RÞ   R\   R»   RI   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt	   list_dataæ  s    	 )0"c         K   sO   d d  l  } | j j |  ƒ t j |  ƒ d d  l  } t d ƒ j |  j ƒ d  S(   NiÿÿÿÿRØ   (   R@   RA   R3   R   Ri   Rk   Rn   (   R)   R\   R@   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR3   ü  s
    c         C   sà   |  j  r |  `  d  |  _  n  |  j j ƒ  } |  j j ƒ  } d d  l } | j  |  j j | |  j j | ƒ |  _  |  j  j |  _	 t
 d ƒ j |  j  j ƒ |  j j rÌ t |  d ƒ rÌ |  j rÌ |  j  j t ƒ n |  j  j t ƒ d S(   NiÿÿÿÿRØ   t   inter_modeli    (   RÚ   R   R   t	   getSelHndR   t   mmutR   t   molHndt   hbondsR   Ri   RH   t	   SetParamst
   nmr_modelsRB   Rã   t	   CalculateR˜   R    (   R)   t   selHnd1t   selHnd2Rå   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR‡     s    	'%N(   RÑ   RÒ   R   t   edit_make_vectort   edit_test_atomtypet   class_dependentsRÔ   R0   Râ   R3   R‡   (    (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyRÓ   ¿  s   				
Re   R   c         C   sr  d d  l  } d d  l } | j d |  d d d d d d d	 | d
 d d d d d d g d i d d 6d d 6d d 6d d 6d d 6d d 6d i t d t d d d d d d d g ƒ d 6t d t d d d d d d  d! d d" d ƒ d 6t d d# d d$ d d% ƒ d 6t d t d d& d d d d d g ƒ d 6t d t d d' d d d d  d! d d" d ƒ d 6t d d# d d( d d% ƒ d 6ƒ S()   NiÿÿÿÿR   t   titles   Hbond/contact drawing stylet   helpt   _has_no_help_t   picture_definitioni   Rg   t   guiR   R   R   t   contacts_line_stylet   contacts_line_widtht   contacts_label_modet   defaultR   i   i    t
   definitiont   typet   labels   HBond line styleRÖ   t   comboboxt   menuR   s   HBond line widtht   spinboxRP   i
   t   mint   stept   bools   HBond label with bond lengtht   checkboxs   Contacts line styles   Contacts line widths   Contacts label with bond length(   t   servicest   mgPreferencesRc   t   dictR“   Rs   (   R   Rg   R  R  (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyRh   >  s6    

c          C   sú  d d  l  }  |  j d d d d d d d d d	 d
 d d d d d d d g d i d d
 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d i t d t d d d d ƒ d
 6t d t d d d d d d  d! d" d# d$ ƒ d 6t d t d d% d d d d  d! d" d# d$ ƒ d 6t d t d d& d d d d  d! d" d# d$ ƒ d 6t d t d d' d d d d( d! d" d# d) ƒ d 6t d t d d* d d d d( d! d" d# d) ƒ d 6t d t d d+ d d d d( d! d" d# d) ƒ d 6t d t d d, d d d d( d! d" d# d) ƒ d 6d- d. ƒ } | S(/   NiÿÿÿÿR   RØ   Rð   s$   Hydrogen bond calculation parametersRó   i   t   c_accessRô   t   min_D_At   max_D_At	   max_D_A_St   max_H_At
   min_DD_D_At
   min_D_A_AAt
   min_H_A_AAt	   min_D_H_ARø   g       @gÍÌÌÌÌÌ@g333333@g      @g     €V@Rù   Rú   Rû   s   Min donor-acceptor distanceRÖ   Rþ   s   Max donor-acceptor distanceRP   g      $@Rÿ   g        R   gš™™™™™¹?s   Max donor-acceptor dist. with Ss   Max Hatom-acceptor distances"   Min neighbour-donor-acceptor angleg     €f@g      ð?s"   Min donor-acceptor-neighbour angles"   Min Hatom-acceptor-neighbour angles   Min donor-Hatom-acceptor angleRñ   s   analysis#hbonds(   R  Rc   R  t   float(   R  R/   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   HBondsParamsManager_  s4    
......1	c          K   s…   d d d d g d d g d d g d	 d
 g g d d d d g d d g d d g d	 d g g g } d d g d d g g } d | | g S(   Nt   PARAMt
   info_hbondt   TYPEt   _logicalt   INITIALR   t   RETURNt   handle_hbond_popup_menut   LABELs
   Hbond infot	   del_hbonds   Delete Hbondt   com(    (   R\   R   t   display(    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   define_hbond_popup_menu~  s    							c          K   sZ  t  ƒ  j d ƒ } | s d  S| \ } } } t j rO d } | j j | ƒ } n  t d d ƒ } t | ƒ d k r} d d d g S| t j	 k r™ d d d g St j
 rt j
 j \ } } }	 t |	 ƒ t | ƒ k rè d | j j |	 ƒ }
 qd | j j |	 ƒ }
 n d }
 d	 d
 d d g d d g d d g d |
 g g g } d d
 g g } d | | g Sd  S(   Nt   atomR   t   object_typeRÓ   i    s   Undo Hbond from s   Add Hbond from s   Add hydrogen bondR  t	   add_hbondR  R  R  R  R  R  R  (   t   ATOMPICKINGt   get_last_pickedRÓ   Rî   Ræ   t   GetAtomHBondTypet   get_dispobjt   lenR)   R   Rí   t
   first_atomR“   t   AtomLabel_atom(   R\   t   lastt   molobjt   dispobjt   atomptrt
   atomhbtypet   hbobjst   molobj1t   dispobj1t   atomptr1Rû   R   R  (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   define_atom_popup_menu‘  s2     	 				t   0c         K   s‡  t  |  ƒ }  t  | ƒ } t  | ƒ } | r- n  |  r;t ƒ  j d ƒ } | sO d  S| \ } } } t d d ƒ } t | ƒ d k rŒ d d d g S| t j k rÎ t ƒ  j d | j	 j
 | ƒ d | j d ƒ d Sd	 d  l }	 t j s|	 j d
 | | | g ƒ t _ qƒt j j \ }
 } } t | ƒ t | ƒ k r4nî d } xŽ t D]† } | d d k r‡| | d j k r‡| d j | | ƒ d } qA| d d k rA| | d j k rA| d j | | ƒ d } qAqAW| s"t ƒ  j d | j	 j
 | ƒ d | j d |
 j	 j
 | ƒ d | j d ƒ n  t j j ƒ  d  t _ nH | rƒt t j ƒ d k rZd  St j d \ } } } | j d | ƒ n  d S(   NR  R  RÓ   i    R   s   Picked atom s    is in display object s    which is not hydrogen bondediÿÿÿÿR%  i   RÕ   RÖ   s    in display object s   
 and atom s+    are not in hydrogen bonded display objectsR·   (   Rs   R   R!  R#  R$  R)   R   t   MGGUIt   WarningMessageRæ   R&  t   selection_labelR  RÓ   Rí   t
   MakeVectorR%  R“   t   possible_hbobjst	   style_objR³   t   selection_objR3   R   t   last_picked_edgeR¸   (   R  R  t
   list_hbondR\   R'  R(  R)  R*  R,  R  R-  R.  R/  t   donet   hbobjR·   (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyR  ¿  sZ      			#	#	= (   t   __doc__R™   R9   R@   R   R•   Rp   RŒ   R   RA   RÓ   Rh   R  R  R0  R  (    (    (    s=   /opt/xtal/ccp4-6.5-linux32/lib/py2/ccp4mg/python/ui/HBonds.pyt   <module>   s   
ÿ  !			.