³ņ
eymGc           @   s*   d  d k  l Z d e f d     YZ d S(   i’’’’(   t   TreeViewt   CompletionTreeViewc           B   s³   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s  t  i |   |  i | |  |  i   d d k l } | |  i  | i d |  i  |  _	 | i d |  i
  |  _ |  i d |  i  |  _ |  i d |  i  |  _ | i d |  i  |  _ | i i d |  i  |  _ |  i d	 |  i  |  _ | i d
 |  i  |  _ |  i   d  S(   Ni’’’’(   t   idle_addt   destroys   match-founds   row-activateds   button-press-events
   is-visibles   key-press-events   cursor-changeds   no-match-found(   R    t   __init__t$   _CompletionTreeView__init_attributest#   _CompletionTreeView__set_propertiest   gobjectR   t'   _CompletionTreeView__precompile_methodst   connectt   _CompletionTreeView__destroy_cbt    _CompletionTreeView__signal_id_1t#   _CompletionTreeView__match_found_cbt    _CompletionTreeView__signal_id_2t%   _CompletionTreeView__row_activated_cbt    _CompletionTreeView__signal_id_3t'   _CompletionTreeView__button_press_eventt    _CompletionTreeView__signal_id_4t"   _CompletionTreeView__is_visible_cbt    _CompletionTreeView__signal_id_5t   textviewt'   _CompletionTreeView__key_press_event_cbt    _CompletionTreeView__signal_id_7t&   _CompletionTreeView__cursor_changed_cbt    _CompletionTreeView__signal_id_8t&   _CompletionTreeView__no_match_found_cbt    _CompletionTreeView__signal_id_9t#   _CompletionTreeView__block_textview(   t   selft   managert   editorR   (    (    s"   plugins/WordCompletion/TreeView.pyR   '   s    
c         C   st   | |  _  | |  _ |  i   |  _ |  i   |  _ |  i   |  _ t |  _	 t |  _
 d d k l } | g   |  _ d  S(   Ni’’’’(   t   deque(   t   _CompletionTreeView__editort   _CompletionTreeView__managert!   _CompletionTreeView__create_modelt   _CompletionTreeView__modelt$   _CompletionTreeView__create_renderert   _CompletionTreeView__renderert"   _CompletionTreeView__create_columnt   _CompletionTreeView__columnt   Falset   _CompletionTreeView__is_blockedt   _CompletionTreeView__is_visiblet   collectionsR   t   _CompletionTreeView__word_list(   R   R   R   R   (    (    s"   plugins/WordCompletion/TreeView.pyt   __init_attributesF   s    				c         C   s   |  i  |  i  |  i t  |  i d t  |  i d t  |  i d |  i  d d k l } l	 } |  i
 i i   } | i | } |  i | |  d  S(   Ns
   rules-hints   hover-selectiont   modeli’’’’(   t   STATE_SELECTEDt   STATE_ACTIVE(   t   append_columnR'   t   set_headers_visibleR(   t   set_propertyt   TrueR#   t   gtkR/   R0   R    R   t	   get_stylet   baset   modify_base(   R   R/   R0   t   stylet   color(    (    s"   plugins/WordCompletion/TreeView.pyt   __set_propertiesa   s    c         C   s   d d k  l } | | |  i  oK | |  _ |  i i   x$ |  i D] } |  i i | g  qC W|  i   n |  i i d |   |  i	   i
 d  t S(   Ni’’’’(   t   nes   populated-modeli    (   t   operatorR<   R,   R#   t   cleart   appendt   columns_autosizeR!   t   emitt   get_selectiont   select_pathR(   (   R   t   completion_listR<   t   word(    (    s"   plugins/WordCompletion/TreeView.pyt   __populate_modely   s    	
 c         C   s¹   |  i  } | | d d i d  } t |  i i   i d   } | | } |  i i i   |  i i i |  |  i i i   |  i	 i
 d  d d k l } |  i i i | d  d  S(   Ni    t   utf8s   no-match-foundi’’’’(   t   msg0001t   succeed(   R#   t   decodet   lenR    t   get_word_before_cursort
   textbuffert   begin_user_actiont   insert_at_cursort   end_user_actionR!   RA   t   i18nRH   t   feedbackt   update_status_message(   R   t   pathR.   t   completion_stringt   indext   stringRH   (    (    s"   plugins/WordCompletion/TreeView.pyt   __insert_word_completion   s    	
c         C   so   yU d d k  l } | |  i  | |  i  | |  i  | |  i  | |  i  Wn t j
 o n Xt S(   Ni’’’’(   t   bind(	   t   psycoRY   t#   _CompletionTreeView__populate_modelt+   _CompletionTreeView__insert_word_completionR   R   R   t   ImportErrorR(   (   R   RY   (    (    s"   plugins/WordCompletion/TreeView.pyt   __precompile_methods©   s    c         C   s    d d k  l } | t  } | S(   Ni’’’’(   t	   ListStore(   R5   R_   t   str(   R   R_   R.   (    (    s"   plugins/WordCompletion/TreeView.pyt   __create_model»   s    c         C   s   d d k  l } |   } | S(   Ni’’’’(   t   CellRendererText(   R5   Rb   (   R   Rb   t   renderer(    (    s"   plugins/WordCompletion/TreeView.pyt   __create_rendererĘ   s    	c         C   s9   d d k  l } | d |  i d d } | i t  | S(   Ni’’’’(   t   TreeViewColumnt    t   texti    (   R5   Re   R%   t
   set_expandR(   (   R   Re   t   column(    (    s"   plugins/WordCompletion/TreeView.pyt   __create_columnŃ   s    c         C   sŹ   |  i  i |  i |  |  i  i |  i |  |  i  i |  i |   |  i  i |  i |   |  i  i |  i |  |  i  i |  i |  i   |  i  i |  i |   |  i  i |  i	 |  |  i
   ~  d  }  d  S(   N(   R    t   disconnect_signalR   R   R   R   R   R   R   R   R   t   None(   R   R   (    (    s"   plugins/WordCompletion/TreeView.pyt   __destroy_cbć   s    

c      	   C   s`   y' d d k  l } l } | |  i  Wn n Xd d k l } | |  i | |   |  _ d  S(   Ni’’’’(   t   source_removeR   (   R   (   R   Rn   R   t    _CompletionTreeView__populate_idR+   R   R[   (   R   t
   completionRD   Rn   R   R   (    (    s"   plugins/WordCompletion/TreeView.pyt   __match_found_cbś   s    c         G   s/   y! d d k  l } | |  i  Wn n Xd  S(   Ni’’’’(   Rn   (   R   Rn   Ro   (   R   t   argsRn   (    (    s"   plugins/WordCompletion/TreeView.pyt   __no_match_found_cb  s    c         C   sM   y t  |  _ |  i |  Wn t j
 o n X|  i i d  t  |  _ t S(   Ns   hide-window(   R(   R*   R\   t   AttributeErrorR!   RA   R4   (   R   t   treeviewRT   Ri   (    (    s"   plugins/WordCompletion/TreeView.pyt   __row_activated_cb  s    		c         C   sP   | i    } | i   \ } } | i |  } | i d  } | i | |  t S(   Ni    (   RB   t   get_selectedt   get_patht
   get_columnt   row_activatedR4   (   R   Ru   t   eventt	   selectionR.   t   iteratorRT   Ri   (    (    s"   plugins/WordCompletion/TreeView.pyt   __button_press_event4  s    c         C   sš  d d k  l } l } l } | |  i  o t Sn |  i   } | i   \ } } | |  o# | i d  | i   \ } } n | i	 |  }	 d d k
 l }
 | | i |
 i  o- |  i |	 |  i d   |  i i d  n	| | i |
 i  ow | |	 d  o2 t |  } | i | d  |  i | d  qģ| i |	 d d f  |  i |	 d d f  n| | | i |
 i  oa | i |  } | o- | i |  | i	 |  }	 |  i |	  qģ| i d  |  i d  n t St S(   Ni’’’’(   t   not_t   eqt   truthi    (   t   keysymss   no-match-foundi   (   i    (   R=   R   R   R   R*   R(   RB   Rw   RC   Rx   R5   R   t   keyvalt   ReturnRz   Ry   R!   RA   t   UpRK   t   scroll_to_cellt   Downt	   iter_nextt   select_iterR4   (   R   Ru   R{   R   R   R   R|   R.   R}   RT   R   t   number_of_rowst   next_iterator(    (    s"   plugins/WordCompletion/TreeView.pyt   __key_press_event_cbO  s:    c         C   sb   d d k  l } | o4 t |  _ |  i   |  i   |  i   i d  n t |  _ |  i	   d  S(   Ni’’’’(   R   i    (
   R=   R   R4   R*   R@   t%   _CompletionTreeView__unblock_textviewRB   RC   R(   R   (   R   R   t
   is_visibleR   (    (    s"   plugins/WordCompletion/TreeView.pyt   __is_visible_cb  s    	

	
c         C   sK   d d k  l } | |  i  o d  Sn |  i i i |  i  t |  _ d  S(   Ni’’’’(   R   (   R=   R   R)   R    R   t   handler_unblockR   R(   (   R   R   (    (    s"   plugins/WordCompletion/TreeView.pyt   __unblock_textview¦  s
    	c         C   sK   d d k  l } | |  i  o d  Sn |  i i i |  i  t |  _ d  S(   Ni’’’’(   R   (   R=   R   R)   R    R   t   handler_blockR   R4   (   R   R   (    (    s"   plugins/WordCompletion/TreeView.pyt   __block_textview³  s
    
	c         G   s   |  i    i d  t S(   Ni    (   RB   RC   R(   (   R   Rr   (    (    s"   plugins/WordCompletion/TreeView.pyt   __cursor_changed_cbĆ  s    (   t   __name__t
   __module__R   R   R   R[   R\   R   R"   R$   R&   R
   R   R   R   R   R   R   R   R   R   (    (    (    s"   plugins/WordCompletion/TreeView.pyR   "   s&   															?			N(   R5   R    R   (    (    (    s"   plugins/WordCompletion/TreeView.pys   <module>    s   