
йiKc        1   @   s4  e  d  j o#d d k Z d d k Z d d k Z d d k Z d d k l Z l Z l Z l Z l	 Z	 l
 Z
 l Z l Z l Z l Z l Z l Z h
 d d 6d d 6d d	 6d
 d 6d d 6d d 6d d 6d d 6d d 6d d 6Z e e i    Z h d d 6d d 6d d 6d
 d 6d d 6d d 6d d 6d d 6Z e e i    Z h4 d d  6d d! 6d d" 6d
 d# 6d d$ 6d d% 6d d& 6d d' 6d d( 6d d) 6d* d+ 6d, d- 6d. d/ 6d0 d1 6d2 d3 6d4 d5 6d6 d7 6d8 d9 6d: d; 6d< d= 6d> d? 6d@ dA 6dB d 6dC dD 6dE dF 6dG dH 6dI dJ 6dK dL 6dM dN 6dO dP 6dQ dR 6dS dT 6dU dV 6dW dX 6dY dZ 6d[ d\ 6d] d^ 6d_ d` 6da db 6dc dd 6de df 6dg dh 6di dj 6dk dl 6dm dn 6do dp 6dq dr 6ds dt 6du dv 6dw dx 6dy dz 6d{ d| 6Z e e i    Z h
 d} g d~ 6d d g d 6d d g d 6d d g d 6d d g d 6d d g d 6d d d g d 6d d g d 6d d d g d 6d g d 6Z e e i    Z d d e d  Z e d a h d d} 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6Z d d d d} d d d d g Z h d d d d d d d d d d d d d d d d d d d d d d d d d d d g d} 6d d d d d d d d d d d d d d d d d d d d d d d d d d g d 6d d d d d d d d d d d d d d d d d d d d d d d d d d g d 6d d d d d d d d d d d d d d ddddddddd	d
dddg d 6ddddddddddddddddddd d!d"d#d$d%d&d'g d 6d(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAg d 6dBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[g d 6d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddg) d 6Z d d e d  Z d d e d  Z! d d e d  Z" dh  e d  Z# e d  Z$ d d e d  Z% d d e d  Z& n d S(  s   pymol.controllingiN(   t   _cmdt   Shortcutt   QuietExceptiont	   is_stringt   boolean_dictt
   boolean_sct   DEFAULT_ERRORt   DEFAULT_SUCCESSt   is_okt   is_errort   location_codet   location_sci    t   lefti   t   middlei   t   righti   t   wheeli   t   double_lefti   t   double_middlei   t   double_righti   t   single_lefti   t   single_middlei	   t   single_rightt   nonet   shftt   ctrlt   ctsht   altt   alsht   ctalt   ctast   rotat   movet   movzt   clipt   rotzt   clpnt   clpft   lbt   mbt   rbi
   s   +lbi   s   +mbi   s   +rbi   t   pkati   t   pkbdi   t   rotfi   t   torfi   t   movfi   t   origi   s   +lbxi   s   -lbxi   t   lbbxi   i   t   centi   t   pktbi   t   slabi   t   movsi   t   pk1i   t   movai   t   menui   t   selei   s   +/-i    s   +boxi!   s   -boxi"   t   mvszi$   t   dgrti%   t   dgmvi&   t   dgmzi'   t   rotoi(   t   movoi)   t   mvozi*   t   mvfzi+   t   mvazi,   t   drgmi-   t   rotvi.   t   movvi/   t   mvvzi1   t   drgoi2   t   imszi3   t   imvzi4   t   boxi5   t   irtzt   three_button_maestrot   maestrot   three_button_viewingt   three_button_editingt   three_buttont   two_button_viewingt   two_button_selectingt
   two_buttont   two_button_editingt   three_button_motionst   three_button_all_modest   one_button_viewingt
   one_buttonc         C   sw   t  i |  d  }  t i |   oH | i d d  t |  a | p d |  GHn | i d d d |  n
 d |  GHd	 S(
   s)  
DESCRIPTION

    "config_mouse" sets the current mouse configuration ring.

USAGE

    config_mouse ring

EXAMPLES

    config_mouse three_button
    config_mouse two_button
    config_mouse one_button
    
PYMOL API

    cmd.config_mouse(string ring, int quiet)

SEE ALSO

    mouse, button
    s   mouse cyclet   button_modei    s    config_mouse: %st   quieti   t   _selfs%    Error: unrecognized mouse ring: '%s'N(   t   ring_dict_sct   auto_errt	   ring_dictt   has_keyt   sett
   mouse_ringt   mouse(   t   ringRW   RX   (    (    sA   P:\graphics\Tools\Python26\lib\site-packages\pymol\controlling.pyt   config_mouse   s    
s   3-Button Maestros   3-Button Viewings   3-Button Editings   3-Button Motionss   2-Button Viewings   2-Btn. Selectings   2-Button Editings   1-Button Viewingt   lt   mt   rs   +Boxs   -Boxt   Selet   wt   movZt   currentc      	   C   s   t  } t t i | d  } t |  o t t i | d  } n z> | i |  t i	 | i
 t |   t |  t |   } Wd | i | |  X| i | |  o t i  n | S(   s  
DESCRIPTION

    "order" changes the ordering of names in the control panel.

USAGE

    order names, sort, location

ARGUMENTS

    names = string: a space-separated list of names

    sort = yes or no {default: no}

    location = top, current, or bottom {default: current}

EXAMPLES

    order 1dn2 1fgh 1rnd       # sets the order of these three objects
    order *,yes                # sorts all names
    order 1dn2_*, yes          # sorts all names beginning with 1dn2_
    order 1frg, location=top   # puts 1frg at the top of the list

PYMOL API

    cmd.order(string names, string sort, string location)

NOTES

    "order" can also be used to reorder objects within a group.
    
SEE ALSO

    set_name, group
        t   locations   sort optionN(   R   R
   R   RZ   R   R   R   t   lockR    t   ordert   _CObt   strt   intt   unlockt   _raisingt   pymolt   CmdException(   t   namest   sortRi   RX   Rd   (    (    sA   P:\graphics\Tools\Python26\lib\site-packages\pymol\controlling.pyRk     s    &1 c   
      C   s  t  } z| i |  |  d j oU t i | i d  } t |  d t t  } | i d t	 |  d d d }  n|  d j oU t i | i d  } t |  d t t  } | i d t	 |  d d d }  n |  d j oP t i | i d  } | d } | d j o
 d	 } n | i d | d d n^ |  d
 j oP t i | i d  } | d } | d	 j  o
 d } n | i d | d d n d } |  d j o t t i | i d   } | d	 j oD | t t  } t | } | i d t i | |   t | } qd | t t  } t | } | i d t i | |   t | } n |  t j oO |  } | i d t i | |   t i |  } | i d |  t | } nd t i |   oS |  } | i d t i | |   d t i |   } | i d |  t | } n | d j o h | d 6} x | D] }	 t t |	 |  q;W| p d | GHn | d d j o | i   n | d d j o | i   qn t } Wd | i | |  X| i | |  o t i  n | S(   s   
DESCRIPTION

    "mouse" cycles through the mouse modes defined in the current
    mouse configuration ring.

USAGE

    mouse 

t   forwardRV   i   RW   t   backwardt   select_forwardt   mouse_selection_modei   i    t   select_backwardt   button_mode_nameiRX   s
    mouse: %sit   editingN(   R   Rj   R    t   get_settingRl   Rn   t   lenR^   R]   Rm   t   Nonet   mode_name_dictt   gett	   mode_dictt   mode_name_listt   indexR\   t   applyt   buttont   unpickt   deselectR   Ro   Rp   Rq   Rr   (
   t   actionRW   RX   Rd   t   bmt   smt	   mode_listt   modet   kw_dictt   a(    (    sA   P:\graphics\Tools\Python26\lib\site-packages\pymol\controlling.pyR_     s    


 

 


   
 c      	   C   s  t  |   o t t i |  d  }  n t |   }  t t  o<t t i | i	 d   } t | } |  o | d d !d j o. | d j o t
 d d d | d	 |  q qx| d d
 !d j o. | d j o t
 d d d | d	 |  q qxq|| d d !d j o. | d j o t
 d d d | d	 |  qxq|| d d
 !d j o. | d j o t
 d d d | d	 |  qxq|n t S(   s   
DESCRIPTION

    "edit_mode" switches the mouse into editing mode, if such a mode
    is available in the current mouse ring.
    
    t   activeRV   i    i
   RP   RQ   R   RW   RX   i   RM   RL   RN   RK   (   R   R   R   RZ   Rn   R}   R^   R    R|   Rl   R_   R   (   R   RW   RX   R   t
   mouse_mode(    (    sA   P:\graphics\Tools\Python26\lib\site-packages\pymol\controlling.pyt	   edit_modeM  s(    	
!%!%c      	   C   s  t  } |  d d !d j o|  d } t |  d j o | d d j o t i |  } n x | i i   D][ } | i | d | j o= | | i | d <| | i | d <| | i | d <t } qk qk Wqx	| i i   D]P } | | j o= | | i | d <| | i | d <| | i | d <t } q q Wn|  d d !d	 j o+|  d } t |  d j o | d d j o t i |  } n x | i i   D][ } | i | d | j o= | | i | d <| | i | d <| | i | d <t } qqWqt i |  } x| i	 i   D]P } | | j o= | | i	 | d <| | i	 | d <| | i	 | d <t } qqWnf|  d d !d
 j o |  d } t |  d j o | d d j o t i |  } n xp | i
 i   D][ } | i
 | d | j o= | | i
 | d <| | i
 | d <| | i
 | d <t } qqWqn |  d d j o t i |   } n |  } xl | i i   D][ } | i | d | j o= | | i | d <| | i | d <| | i | d <t } q{q{Wt |  o d |  GHn | i | |  o t i  n | S(   s  
DESCRIPTION

    "set_key" binds a specific python function to a key press.

PYMOL API (ONLY)

    cmd.set_key( string key, function fn, tuple arg=(), dict kw={})

PYTHON EXAMPLE

    from pymol import cmd

    def color_blue(object): cmd.color("blue",object)

    cmd.set_key( 'F1' , color_blue, ( "object1" ) )
    // would turn object1 blue when the F1 key is pressed and

    cmd.set_key( 'F2' , color_blue, ( "object2" ) )
    // would turn object2 blue when the F2 key is pressed.

    cmd.set_key( 'CTRL-C' , cmd.zoom )   
    cmd.set_key( 'ALT-A' , cmd.turn, ('x',90) )

KEYS WHICH CAN BE REDEFINED

    F1 to F12
    left, right, pgup, pgdn, home, insert
    CTRL-A to CTRL-Z 
    ALT-0 to ALT-9, ALT-A to ALT-Z

SEE ALSO

    button
        i    i   s   CTRL-i   t   Fi   i   i   s   ALT-s   SHFT-s"   Error: special '%s' key not found.(   R   R}   t   stringt   lowert   ctrl_specialt   keysR   R   t   alt_specialR   t   shft_specialt   specialR	   Rp   Rq   Rr   (   t   keyt   fnt   argt   kwRX   Rd   t   patR   (    (    sA   P:\graphics\Tools\Python26\lib\site-packages\pymol\controlling.pyt   set_keyl  s    $
  
  
   c   	      C   s~  t  } z@| i |  t i |   }  t i |  d  }  t i |  } t i | d  } t i |  } t i | d  } t |  } t	 | } | d j  o9 | d j  o | d | } q#| d d | d } nQ | d j  o- | d j  o d | } q#d | d } n d	 | d | d
 } t
 | } t i | i | |  } Wd | i | |  X| i | |  o t i  n | S(   s  
DESCRIPTION

    "button" can be used to redefine what the mouse buttons do.

USAGE

    button button, modifier, action

ARGUMENTS

    button = left, middle, right, wheel, double_left, double_middle,
        double_right, single_left, single_middle, or single_right
       
    modifiers = None, Shft, Ctrl, CtSh, CtAl, CtAl, CtAS, 

    actions = None, Rota, Move, MovZ, Slab, +Box, -Box, Clip, MovS,
        +/-, PkAt, Pk1, MvSZ, Sele, Orig, Menu, PkAt, Pk1 RotO, MovO,
        MvOZ, MovA, PkAt, PkTB, MvSZ MvAZ, DrgM, RotZ, PkBd, ClpN,
        ClpF

NOTES

   Changes made using the button command are easily overridden when
   the user iterates through the mouse modes.  This behavior needs to
   be changed.

   Obsolete actions: lb, mb, rb, +lb, +mb, +rb, +lbX, -lbX,
      
   Unsupported, Internal, or Future Actions: RotD, MovD, MvDZ, RotF,
    MovF, MvFZ, TorF, RotV, MovV, MvVZ, DgMZ, DgRT

PYMOL API

    cmd.button(string button, string modifier, string action)

SEE ALSO

    config_mouse
    R   t   modifierR   i   i   iD   i   i@   i   i   N(   R   Rj   R   R   t	   button_scRZ   t
   but_mod_sct
   but_act_sct   button_codet   but_mod_codet   but_act_codeR    R   Rl   Ro   Rp   Rq   Rr   (	   R   R   R   RX   Rd   t
   button_numt   but_mod_numt   but_codet   act_code(    (    sA   P:\graphics\Tools\Python26\lib\site-packages\pymol\controlling.pyR     s4    )


 s   (all)c      	   C   s   t  } t i |   }  z@ | i |  t i | i d t |   d d t |   } Wd | i	 | |  X| i
 | |  o t i  n | S(   s|  
DESCRIPTION

    "mask" makes it impossible to select the indicated atoms using the
    mouse.  This is useful when you are working with one molecule in
    front of another and wish to avoid accidentally selecting atoms in
    the background.

USAGE

    mask (selection)

PYMOL API

    cmd.mask( string selection="(all)" )

SEE ALSO

    unmask, protect, deprotect, mouse
    t   (t   )i   N(   R   t   selectort   processRj   R    t   maskRl   Rm   Rn   Ro   Rp   Rq   Rr   (   t	   selectionRW   RX   Rd   (    (    sA   P:\graphics\Tools\Python26\lib\site-packages\pymol\controlling.pyR     s    3 c      	   C   s   t  } t i |   }  z@ | i |  t i | i d t |   d d t |   } Wd | i	 | |  X| i
 | |  o t i  n | S(   s   
DESCRIPTION

    "unmask" reverses the effect of "mask" on the indicated atoms.

PYMOL API

    cmd.unmask( string selection="(all)" )

USAGE

    unmask (selection)

SEE ALSO

    mask, protect, deprotect, mouse
    R   R   i    N(   R   R   R   Rj   R    R   Rl   Rm   Rn   Ro   Rp   Rq   Rr   (   R   RW   RX   Rd   (    (    sA   P:\graphics\Tools\Python26\lib\site-packages\pymol\controlling.pyt   unmask:  s    3 (   Rb   s   nones   box(   Rc   s   noneR   (   Rd   s   nones   move(   Rb   s   shfts   +Box(   Rc   s   shfts   -Box(   Rd   s   shfts   clip(   Rb   s   ctrls   +/-(   Rc   s   ctrlRH   (   Rd   s   ctrls   pk1(   Rb   R   Re   (   Rc   R   R-   (   Rd   R   s   clip(   Rb   s   alts   move(   Rc   s   alts   none(   Rd   s   alts   none(   Rf   s   noneRF   (   Rf   s   shftR2   (   Rf   s   ctrls   none(   Rf   R   s   slab(   R   s   noneR5   (   R   s   nones   none(   R   s   noneR(   (   R   s   nones   sele(   R   s   noneR/   (   R   s   noneR5   (   R   s   shfts   +/-(   R   s   altR/   (   Rb   s   noneR   (   Rc   s   nones   move(   Rd   s   noneR    (   Rb   s   shfts   +Box(   Rc   s   shfts   -Box(   Rd   s   shfts   clip(   Rb   s   ctrls   +/-(   Rc   s   ctrlR(   (   Rd   s   ctrls   pk1(   Rb   R   Re   (   Rc   R   R-   (   Rd   R   s   clip(   Rb   s   alts   move(   Rc   s   alts   none(   Rd   s   alts   none(   Rf   s   nones   slab(   Rf   s   shftR2   (   Rf   s   ctrlR7   (   Rf   R   R    (   R   s   noneR5   (   R   s   nones   none(   R   s   noneR(   (   R   s   nones   +/-(   R   s   noneR/   (   R   s   noneR5   (   R   s   altR/   (   Rb   s   noneR   (   Rc   s   nones   move(   Rd   s   noneR    (   Rb   s   shftR;   (   Rc   s   shftR<   (   Rd   s   shftR=   (   Rb   s   ctrlR+   (   Rc   s   ctrls   +/-(   Rd   s   ctrlR0   (   Rb   R   R4   (   Rc   R   R-   (   Rd   R   s   clip(   Rb   s   alts   move(   Rc   s   alts   none(   Rd   s   alts   none(   Rf   s   nones   slab(   Rf   s   shftR2   (   Rf   s   ctrlR7   (   Rf   R   R    (   R   s   noneR+   (   R   s   noneR@   (   R   s   noneR0   (   R   s   noneR(   (   R   s   noneR/   (   R   s   noneR5   (   R   s   altR/   (   Rb   s   noneR   (   Rc   s   nones   move(   Rd   s   noneR    (   Rb   s   shftRA   (   Rc   s   shftRB   (   Rd   s   shftRC   (   Rb   s   ctrlR+   (   Rc   s   ctrlR(   (   Rd   s   ctrlR0   (   Rb   R   R4   (   Rc   R   R-   (   Rd   R   s   clip(   Rb   s   alts   move(   Rc   s   alts   none(   Rd   s   alts   none(   Rf   s   nones   slab(   Rf   s   shftR2   (   Rf   s   ctrlR7   (   Rf   R   R    (   R   s   noneR5   (   R   s   noneR+   (   R   s   noneR@   (   R   s   noneR0   (   R   s   noneR(   (   R   s   noneR/   (   R   s   noneR5   (   R   s   altR/   (   Rb   s   noneR   (   Rc   s   nones   none(   Rd   s   noneR    (   Rb   s   shfts   pk1(   Rc   s   shfts   none(   Rd   s   shfts   clip(   Rb   s   ctrls   move(   Rc   s   ctrls   none(   Rd   s   ctrlR(   (   Rb   R   s   sele(   Rc   R   s   none(   Rd   R   R/   (   Rb   s   alts   move(   Rc   s   alts   none(   Rd   s   alts   none(   Rf   s   nones   none(   Rf   s   shfts   none(   Rf   s   ctrls   none(   Rf   R   s   none(   R   s   noneR5   (   R   s   nones   none(   R   s   noneR/   (   R   s   noneR(   (   R   s   nones   none(   R   s   noneR5   (   R   s   altR/   (   Rb   s   noneR   (   Rc   s   nones   none(   Rd   s   noneR    (   Rb   s   shfts   +Box(   Rc   s   shfts   none(   Rd   s   shfts   -Box(   Rb   s   ctrls   +/-(   Rc   s   ctrls   none(   Rd   s   ctrlR(   (   Rb   R   s   sele(   Rc   R   s   none(   Rd   R   R/   (   Rb   s   alts   move(   Rc   s   alts   none(   Rd   s   alts   none(   Rf   s   nones   none(   Rf   s   shfts   none(   Rf   s   ctrls   none(   Rf   R   s   none(   R   s   noneR5   (   R   s   noneR5   (   R   s   nones   none(   R   s   noneR/   (   R   s   nones   +/-(   R   s   noneR5   (   R   s   altR/   (   Rb   s   noneR   (   Rc   s   nones   none(   Rd   s   noneR    (   Rb   s   shftR(   (   Rc   s   shfts   none(   Rd   s   shfts   clip(   Rb   s   ctrlR+   (   Rc   s   ctrls   none(   Rd   s   ctrlR0   (   Rb   R   R*   (   Rc   R   s   none(   Rd   R   R,   (   Rb   s   alts   move(   Rc   s   alts   none(   Rd   s   alts   none(   Rf   s   nones   none(   Rf   s   shfts   none(   Rf   s   ctrls   none(   Rf   R   s   none(   R   s   noneR5   (   R   s   nones   none(   R   s   noneR/   (   R   s   noneR(   (   R   s   nones   none(   R   s   noneR5   (   R   s   altR/   (   Rb   s   noneR   (   Rc   s   nones   none(   Rd   s   nones   none(   Rb   s   shfts   +Box(   Rc   s   shfts   none(   Rd   s   shfts   none(   Rb   s   ctrlRg   (   Rc   s   ctrls   none(   Rd   s   ctrls   none(   Rb   R   s   clip(   Rc   R   s   none(   Rd   R   s   none(   Rb   s   alts   move(   Rc   s   alts   none(   Rd   s   alts   none(   Rb   R   s   -Box(   Rc   R   s   none(   Rd   R   s   none(   Rb   R   s   none(   Rc   R   s   none(   Rd   R   s   none(   Rb   R   s   none(   Rc   R   s   none(   Rd   R   s   none(   Rf   s   nones   slab(   Rf   s   shftR2   (   Rf   s   ctrlR7   (   Rf   R   R    (   R   s   noneR5   (   R   s   nones   none(   R   s   nones   none(   R   s   nones   +/-(   R   s   nones   none(   R   s   nones   none(   R   s   shfts   none(   R   s   ctrlR5   (   R   R   R(   (   R   s   altR/   (   R   R   s   none(   R   R   s   none(   R   R   s   none(    ('   t   __name__R   R   t   cmdRq   R    R   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R[   RY   Ra   R^   R   R   R   Rk   R~   R_   R   R   R   R   R   (    (    (    sA   P:\graphics\Tools\Python26\lib\site-packages\pymol\controlling.pyt   <module>   s  R











$

	






2OeH!