mò
7úCc        
   @   sy   d  k  Z  d  k Z d k l Z d  k i i i Z d k l	 Z	 d Z
 e  i i e ƒ  d ƒ Z d e i f d „  ƒ  YZ d  S(   N(   s
   config_dir(   s	   Validators   [window]s   width = integer(default=750)s   height = integer(default=550)s"   maximized = boolean(default=False)s   x = integer(default=0)s   y = integer(default=0)s$   pane_position = integer(default=325)s   [spans]s%   max_custom_spans = integer(default=4)s   custom_spans = float_list()s   gannotate.conft   GAnnotateConfigc           B   sM   t  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   s  gannotate configuration wrangler.

    Staying as far out of the way as possible, hanging about catching events
    and saving only what's necessary. Writes gannotate.conf when the gannotate
    window is destroyed. Initializes saved properties when instantiated.
    c         C   sn   t  i i |  t d t ƒ| |  _ | i |  _ | i |  _ d g |  _	 |  i
 t ƒ  ƒ |  i ƒ  |  i ƒ  d  S(   Nt
   configspecs   gannotate plugin configuration(   t	   configobjt	   ConfigObjt   __init__t   selft   gannotate_config_filenamet   gannotate_configspect   windowt   panet   span_selectort   initial_commentt   validatet	   Validatort   applyt   _connect_signals(   R   R   (    (    t0   /home/jelmer/.bazaar/plugins/gannotate/config.pyR   2   s    
	
c         C   sÙ   |  i i |  d d ƒ |  i i |  d d |  d d ƒ |  i i |  d d |  d d ƒ |  d d o |  i i ƒ  n |  d d	 |  i _ y- x& |  d d
 D] } |  i i
 | ƒ q¤ WWn t j
 o n Xd S(   sX   Apply properties and such from gannotate.conf, or
        gannotate_configspec defaults.R   t   pane_positiont   widtht   heightt   xt   yt	   maximizedt   spanst   max_custom_spanst   custom_spansN(   R   R	   t   set_positionR   t   set_default_sizet   movet   maximizeR
   R   t   spant   add_custom_spant   KeyError(   R   R   (    (    R   R   ?   s     # c         C   sr   |  i i d |  i ƒ |  i i d |  i ƒ |  i i d |  i ƒ |  i i d |  i ƒ |  i i d |  i ƒ d  S(   Nt   destroys   configure-events   window-state-eventt   notifys   custom-span-added(	   R   R   t   connectt   _writet   _save_window_propsR	   t   _save_pane_propsR
   t   _save_custom_spans(   R   (    (    R   R   U   s    c         G   s€   | i i ƒ  t i i @o
 t } nK | i	 ƒ  \ |  d d <|  d d <| i ƒ  \ |  d d <|  d d <t } | |  d d <t S(   NR   R   R   R   R   R   (   t   eR   t	   get_statet   gtkt   gdkt   WINDOW_STATE_MAXIMIZEDt   TrueR   t   wt   get_sizeR   t   get_positiont   False(   R   R.   R(   t   argsR   (    (    R   R%   ]   s    
""c         C   s,   | i d j o | i ƒ  |  d d <n t S(   Nt   positionR   R   (   t   gparamt   nameR.   R0   R   R1   (   R   R.   R4   (    (    R   R&   i   s    c         G   s   | i |  d d <t S(   NR   R   (   R.   R   R   R1   (   R   R.   R2   (    (    R   R'   o   s    c         G   s   |  i ƒ  t S(   N(   R   t   writeR1   (   R   R2   (    (    R   R$   t   s    
(
   t   __name__t
   __module__t   __doc__R   R   R   R%   R&   R'   R$   (    (    (    R   R    *   s    						(
   s   [window]s   width = integer(default=750)s   height = integer(default=550)s"   maximized = boolean(default=False)s   x = integer(default=0)s   y = integer(default=0)s$   pane_position = integer(default=325)s   [spans]s%   max_custom_spans = integer(default=4)s   custom_spans = float_list()(   t   ost   gtk.gdkR*   t   bzrlib.configt
   config_dirt   bzrlib.util.configobj.configobjt   utilR   t   bzrlib.util.configobj.validateR   R   t   patht   joinR   R   R    (   R   R   R:   R*   R   R    R=   R   (    (    R   t   ?   s   		