
    FQ	f&                        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 d dlZd dlmZ d dlm	Z	m
Z
  G d	 d
ej                        Z ej                  e       edk(  rn e       Zej!                   ej"                  d      g        ej$                         Zej)                  e       ej+                           ej,                          yy)    )GLib)GObject)Gtk)IBus)PangoN)	load_icon)_N_c                   ,    e Zd Zd Zeddej                  j                  feddej                  j                  ej                  j                  z  fdZ	 f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d Z xZS )EngineTreeViewzselected engineengines)active-enginer   c                    t         t        |           g | _        d| _        | j                  d       t        j                  t        j                  t        j                        | _        | j                  | j                         | j                  j                  d| j                  d       | j                  j                  d| j                  d       | j                  j                  d| j                  d       | j                  j                  d| j                  d       | j                  j                  | j                   d        | j                  j#                  dt        j$                  j&                         t        j(                  t+        d            }|j-                  d	       t        j.                         }|j1                  d
d       |j3                  |d       |j5                  || j6                         t        j8                         }|j1                  d
d       |j1                  dt:        j<                  j>                         |j3                  |d       |j5                  || j@                         | jC                  |       t        jD                         }t        j                  t        j                        }|jG                  d       |jG                  d       |jG                  d       |j1                  d
d       |j1                  d|       |j1                  dd       |j1                  dd       |j1                  dd       t        j(                  d      }|jI                  d       |jK                  d       |jM                  t        jN                  jP                         |j3                  |d       |j5                  || jR                         | jU                         j                  d| jV                         y )NFTzrow-changedzrow-deletedzrow-insertedzrows-reorderedzInput Method   xalignr   	ellipsize)us)jp)xkbmodelztext-columnz	has-entryeditableKbd    changed),superr   __init___EngineTreeView__engines_EngineTreeView__changedset_reorderabler   	ListStorer   TYPE_PYOBJECTTYPE_STRING_EngineTreeView__model	set_modelconnect&_EngineTreeView__emit_changed_delay_cbset_default_sort_func_EngineTreeView__sort_enginesset_sort_column_idSortType	ASCENDINGTreeViewColumnr	   set_min_widthCellRendererPixbufset_property
pack_startset_cell_data_func"_EngineTreeView__icon_cell_data_cbCellRendererTextr   EllipsizeModeEND"_EngineTreeView__name_cell_data_cbappend_columnCellRendererComboappend
set_expandset_fixed_width
set_sizingTreeViewColumnSizingFIXED$_EngineTreeView__layout_cell_data_cbget_selection%_EngineTreeView__selection_changed_cb)selfcolumnrendererr   	__class__s       '/usr/share/ibus/setup/enginetreeview.pyr   zEngineTreeView.__init__2   s   nd,. 	T"}}W%:%:G<O<OPt||$]D,H,H-X]D,H,H-X^T-I-I>Z-t/K/KM]^**4+>+>E''CLL,B,BC ##An$56S!))+h*(E*!!(D,D,DE'')h*k5+>+>+B+BC(D)!!(D,D,DE6" ((*g112WWXh*gu-mQ/k51j$/##E*% r"#22889(E*!!(D,F,FG 	$$Y0K0KL    c                 4   ||   d   }||   d   }t        j                  |j                               }t        j                  |j                               }t        j                  |      }	t        j                  |      }
|d|	}|d|
}||kD  ||k  z
  S )Nr    - )r   get_language_nameget_languagei18ngettext_engine_longname)rC   r   abdataengine_aengine_b
language_a
language_b
longname_a
longname_blabel_alabel_bs                rG   __sort_engineszEngineTreeView.__sort_enginesj   s    8A;8A;++H,A,A,CD
++H,A,A,CD
11(;
11(;
):6):6'!g&788rH   c                 &    | j                  d       y Nr   )notifyrC   argss     rG   __selection_changed_cbz%EngineTreeView.__selection_changed_cbv   s    O$rH   c                 N    | j                   rd| _         | j                  d       y y )NFr   )r   r]   r^   s     rG   __emit_changedzEngineTreeView.__emit_changedy   s!    >>"DNKK	" rH   c                 j    | j                   s'd| _         t        j                  | j                         y y )NT)r   r   idle_add_EngineTreeView__emit_changedr^   s     rG   __emit_changed_delay_cbz&EngineTreeView.__emit_changed_delay_cb~   s'    ~~!DNMM$--. rH   c                 0   | j                   j                  |d      }|d k(  ry t        j                  t        j                  j
                        d   }t        |j                         t        j                  j
                        }|j                  d|       y )Nr   pixbuf)	r$   	get_valuer   icon_size_lookupIconSizeLARGE_TOOLBARr   get_iconr0   )	rC   
celllayoutrE   r   itrQ   engine	icon_sizerh   s	            rG   __icon_cell_data_cbz"EngineTreeView.__icon_cell_data_cb   sp    ''A.
 T>(()C)CDQG	6??,cll.H.HIh/rH   c                 ^   | j                   j                  |d      }|d k(  ry |j                  dd       t        j                  |j                               }t        j                  |      }|j                  d|d|       |j                  dt        j                  j                         y )Nr   	sensitiveTtextrJ   weight)r$   ri   r0   r   rK   rL   rM   rN   r   WeightNORMAL)	rC   rn   rE   r   ro   rQ   rp   languagelongnames	            rG   __name_cell_data_cbz"EngineTreeView.__name_cell_data_cb   s    ''A.
 T>k40))&*=*=*?@//7f%x0	2h(;(;<rH   c                 ,   | j                   j                  |d      }| j                   j                  |d      }|j                  dd       |s|j                  }|j                  d|       |j                  dt        j
                  j                         y )Nr      rt   Tru   rv   )r$   ri   r0   layoutr   rw   rx   )rC   rn   rE   r   ro   rQ   rp   r~   s           rG   __layout_cell_data_cbz$EngineTreeView.__layout_cell_data_cb   st    ''A.''A.k40]]Fff-h(;(;<rH   c                 4   |j                   dk(  r7| j                         }|d k(  ry | j                  j                  |d      }|d   S |j                   dk(  r'| j                  D cg c]  }|d   d k7  s|d    }}|S t	        d|j                   z        c c}w )Nr   r   r   unknown property %s)nameget_selected_iterr$   getAttributeError)rC   propro   rowrr   s         rG   do_get_propertyzEngineTreeView.do_get_property   s    99''')BTz,,""2q)Cq6MYY)#&*llCaddl!CGCN !6!BCC Ds   $B2Bc                     |j                   dk(  rt        d      |j                   dk(  rt        |       y t        d|j                   z        )Nr   zactive-engine is readonlyr   r   )r   r   set_engines)rC   r   values      rG   do_set_propertyzEngineTreeView.do_set_property   sC    99' !<==YY)# !6!BCCrH   c                 ~   | j                   j                          g | _        |D ]  }|| j                  v r| j                   j                  d       }t	        j
                  |j                                | j                   j                  |d|       | j                  j                  |        | j                          y Nr   )	r$   clearr   r:   rM   init_textdomainget_textdomainsetre   )rC   r   ero   s       rG   r   zEngineTreeView.set_engines   s     	%ADNN"$$T*B  !1!1!34LLRA&NN!!!$	% 	rH   c                 N    | j                         }|r|j                         d   S y )Nr}   )rA   get_selected)rC   	selections     rG   r   z EngineTreeView.get_selected_iter   s,    &&(	))+A.. rH   c                     | j                   S )N)r   rC   s    rG   get_engineszEngineTreeView.get_engines   s    ~~rH   c                 $    | j                  d      S )Nr   get_propertyr   s    rG   get_sorted_enginesz!EngineTreeView.get_sorted_engines   s      ++rH   c                 $    | j                  d      S r\   r   r   s    rG   get_active_enginez EngineTreeView.get_active_engine   s      11rH   c                     |d k(  s|| j                   v ry | j                  j                  d       }| j                  j                  |d|       |g| j                   z   | _         y r   )r   r$   prependr   rC   rp   ro   s      rG   prepend_enginezEngineTreeView.prepend_engine   sS    T>Vt~~5\\!!$'Q' DNN2rH   c                     |d k(  s|| j                   v ry | j                  j                  d       }| j                  j                  |d|       | j                   j                  |       y r   )r   r$   r:   r   r   s      rG   append_enginezEngineTreeView.append_engine   sS    T>Vt~~5\\  &Q'f%rH   c                    | j                         }|d k(  ry | j                  |   }|d   }| j                  j                  |       |j                  j                         d   }| j                  j                  |       	 | j                  |   }| j                         }|j                  |j                         y #  Y y xY wr   )r   r$   r   removepathget_indicesrA   select_path)rC   ro   r   rp   indexr   s         rG   remove_enginezEngineTreeView.remove_engine   s    ##%:ll2Qf%$$&q)B	,,u%C**,I!!#((+	s   ?:B: :B>c                 8   | j                         }|d k(  ry | j                  |   }|j                  j                         d   }|dk(  ry | j                  j	                  || j                  |dz
     j
                         | j                  |j                  d        y )Nr   r}   r   r$   r   r   swapiterscroll_to_cell)rC   ro   r   r   s       rG   move_up_enginezEngineTreeView.move_up_engine   s    ##%:ll2$$&q)A:"dll5195::;CHHd+rH   c                    | j                         }|d k(  ry | j                  |   }|j                  j                         d   }| j                  d   }|j                  j                         d   }||k(  ry | j                  j	                  || j                  |dz      j
                         | j                  |j                  d        y )Nr   r   r}   r   )rC   ro   r   r   last_row
last_indexs         rG   move_down_enginezEngineTreeView.move_down_engine  s    ##%:ll2$$&q)<<#]]..03
J"dll5195::;CHHd+rH   )__name__
__module____qualname____gtype_name__objectr   
ParamFlagsREADABLEWRITABLE__gproperties__r   r)   rB   re   r'   r3   r7   r@   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__)rF   s   @rG   r   r   #   s    %N ''	) '''*<*<*E*EE	GO6Mp
9&#
/0= =DD
/
,23& 	,,rH   r   __main__zh)ry   )gi.repositoryr   r   r   r   r   rM   iconr   r	   r
   TreeViewr   type_registerr   treer   
EngineDescWindowwaddshow_allmain rH   rG   <module>r      s   0  !      j,S\\ j,X   n %zDodoot456

AEE$KJJLCHHJ rH   