
    FQ	f5                         d dl mZ d dl mZ d dl mZ d dlZd dlZd dlZd dlZd dlm	Z	 d dlm
Z
mZ  e ed            \  ZZZ G d d	ej"                        Zy)
    )Gtk)GLib)IBusN)	load_icon)_N_   c                       e Zd Zd Z ej
                  d       ej
                  d       ej
                  d       ej
                  d       ej
                  d       ej
                  d       ej
                  d       ej
                  d       ej
                  d	      g	Zd 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 )EngineDialogen_USen_GBde_DEfr_FRes_ESzh_CNja_JPru_RUar_EGc           	         t         t        |   t        d      |d       t        d      t        j
                  j                  t        d      t        j
                  j                  f} | j                  |  | j                  t        j
                  j                  d       i | _
        i | _        i | _        t	        j                  t        j                  j                  t        j                  j                  t        j                   j"                  dddd      | _        | j&                  j)                  | j$                         t	        j*                         }| j$                  j)                  |       t	        j,                  dt        j.                  j0                  t        j.                  j0                  	      | _        |j)                  | j2                         | j$                  j5                         | _        | j2                  j9                  | j6                         | j2                  j;                  | j<                  d        | j2                  j?                  d
| j@                         | j2                  j?                  d| jB                         d| _"        | jG                         | _$        d| _%        d | _&        t	        jN                  ddddd      | _(        | jP                  jS                  d       | jP                  j?                  d| jT                         | j&                  j)                  | jP                         | jW                          y )NzSelect an input methodT)titletransient_for	resizable_Cancel_AddF   )hscrollbar_policyvscrollbar_policyshadow_typemargin_start
margin_end
margin_topmargin_bottom)vexpandhalignvalignzrow-activatedzrow-selectedr   )hexpandr   r    r!   r"   zsearch-changed),superr   __init__r   r   ResponseTypeCANCELAPPLYadd_buttonsset_response_sensitive_EngineDialog__engines_for_lang_EngineDialog__untrans_for_lang_EngineDialog__langsScrolledWindow
PolicyTypeNEVER
ShadowTypeIN_EngineDialog__scrolledvboxaddViewportListBoxAlignFILL_EngineDialog__listget_vadjustment_EngineDialog__adjustmentset_adjustmentset_filter_func_EngineDialog__list_filterconnect_EngineDialog__row_activated_EngineDialog__row_selected_EngineDialog__showing_extra_EngineDialog__more_row_new_EngineDialog__more_row _EngineDialog__filter_timeout_id_EngineDialog__filter_wordSearchEntry_EngineDialog__filter_entryset_no_show_all_EngineDialog__filter_changedshow_all)selfr   buttonsviewport	__class__s       %/usr/share/ibus/setup/enginedialog.pyr(   zEngineDialog.__init__7   sc   lD*23 -  	+ 	" Y<!1!1!8!8V9c..446'"##C$4$4$:$:EB"$"$,,$'NN$8$8$'NN$8$8!nn//  !# 			doo&<<>H%kkD+.99>>+.99>>; 	T[[! OO;;=""4#4#45##D$6$6=OT-A-ABND,?,?@$--/#$ !!oo=>;<;<>?	A
 	++D1##$4d6K6KL		d))*    c                    || j                   k(  r| j                   S | j                  s|j                  ry| j                  d k(  ry|j                  ry| j                  j                         }||j                  j                         v ry||j                  j                         v ry|j                  r|j                  | j                  j                         v rZ| j                  |j                     D ]>  }||j                  j                         v r y||j                  j                         v s> y |j                  s| j                  j                         D ]E  }||j                         v s| j                  |   D ]  }|j                  |j                  k(  s  y G | j                  j                         D ]H  \  }}||j                         v s| j                  |   D ]  }|j                  |j                  k(  s  y J y)NFT)rH   rF   is_extrarJ   backlowernameuntrans	lang_infor.   keysr/   items)rP   rowdatawordrow_lltransr[   s           rT   __list_filterzEngineDialog.__list_filterl   s   $//!++++##%88!!'')388>>##3;;$$&&==xx4227799!44SXX> $Euzz//11#u}}2244#	$ }},,113 (1779$!%!8!8!; (88uzz1#'((
 %)$;$;$A$A$C ( 7==?*!%!8!8!? (88uzz1#'((
 rU   c                     || j                   k(  r,| j                  j                  |       | j                          y |j                  r| j                          y |j                  r| j                  |       y y N)rH   r=   unselect_row_EngineDialog__show_morerX   _EngineDialog__show_lang_rowsr\   $_EngineDialog__show_engines_for_langrP   boxr_   s      rT   __row_activatedzEngineDialog.__row_activated   sb    $//!KK$$S)88!!#==((- rU   c                 ^    | j                  t        j                  j                  |d k7         y rg   )r-   r   r)   r+   rl   s      rT   __row_selectedzEngineDialog.__row_selected   s"    ##C$4$4$:$:C4KHrU   c                    t        j                  t         j                  j                        }|t        k(  rt         j
                  j                         t         j                  j                  k(  }|r9t         j                  j                  dt         j                  j                        }n8t         j                  j                  dt         j                  j                        }|j                  |ddd       |d k7  rNt        |t         j                  j                        }t        j                  |      }	|j                  |	ddd       t        j                   |      }
|
j#                  |       |
j%                  t         j&                  j(                         |
j+                  d	       |
j-                  d	       |
j/                  d
       |
j1                  d
       |j                  |
ddd       |S )Norientationzgo-previous-rtl-symboliczgo-previous-symbolicFTr   )pixbuf)label   r   )r   BoxOrientation
HORIZONTALROW_TRAVEL_DIRECTION_BACKWARDWidgetget_default_directionTextDirectionRTLImagenew_from_icon_nameIconSizeMENU
pack_startr   LARGE_TOOLBARLabel
set_halign
set_valignr;   CENTERset_margin_startset_margin_endset_margin_topset_margin_bottom)rP   texticon	alignment	directionhboxrtlarrowrt   imageru   s              rT   __padded_label_newzEngineDialog.__padded_label_new   sg   wwS__%?%?@55::335$$(()C		44.0A0AC 		44*CLL,=,=?OOE5$24<tS\\%?%?@FIIv.EOOE5$2		$'#))*r"R Q"tT1-rU   c                     t        j                         }||_        d|_        d|_        d|_        d|_        d |_        |S )NF )r   
ListBoxRowrZ   rW   r\   rX   r[   engine)rP   r   r_   s      rT   __list_box_row_newzEngineDialog.__list_box_row_new   s=    nn

rU   c                 R   | j                  |      }d|_        t        | j                        dk7  r| j                  |   |_        | j
                  s|| j                  vrd|_        | j                  |d t        j                  j                  t              }|j                  |       |S )NTr   )_EngineDialog__list_box_row_newr\   lenr/   r[   rF    _EngineDialog__initial_languagesrW   _EngineDialog__padded_label_newr   r;   r   ROW_TRAVEL_DIRECTION_NONEr8   rP   r   r_   widgets       rT   __lang_row_newzEngineDialog.__lang_row_new   s    %%d+t&&'1,11$7CK##D4L4L(LCL(()-),)9)9)BD 	
rU   c                    t        j                         }t        j                  t         j                  j                        }|j                  |       |j                  t        d             t         j                  j                  dt         j                  j                        }|j                  d       |j                  d       |j                  d       |j                  d       |j!                  t         j"                  j$                         |j'                  t         j"                  j$                         |j)                  |ddd       |S )Nrr   u   More…zview-more-symbolicrv   r   Tr   )r   r   rw   rx   ry   r8   set_tooltip_textr   r   r   r   r   r   r   r   r   r   r;   r   r   r   )rP   r_   r   r   s       rT   __more_row_newzEngineDialog.__more_row_new   s    nnwwS__%?%?@Qy\*		,,-A-0\\->->@r"R Q"))*))*tT1-
rU   c                     | j                  |      }d|_        d|_        | j                  |d t        j
                  j                  t              }|j                  |       |S NT)	r   r\   rX   r   r   r;   r   rz   r8   r   s       rT   __back_row_newzEngineDialog.__back_row_new   sX    %%d+(()-),)9)9)FH 	
rU   c                    t        j                  |      }t        j                  |      }| j                  |      }|j	                         |_        |j                         |_        |j                  |       ||_	        | j                  ||j                         t        j                  j                  t              }|j!                  |       |S rg   )i18ngettext_engine_longnamegettext_engine_descriptionr   get_longnamer[   get_rankrankr   r   r   get_iconr   r;   STARTr   r8   )rP   r   longnamedescriptionr_   r   s         rT   __engine_row_newzEngineDialog.__engine_row_new   s    //755f=%%h/))+??$[)
(()/):),)BD 	
rU   c                 X   | j                   j                         d   t        j                  j                  k(  ry | j                         \  }}| j                  ||       | j                   j                  t        j                  j                  t        j                  j                         y )Nr   )r6   
get_policyr   r2   	AUTOMATICget_sizeset_size_request
set_policy)rP   widthheights      rT   __set_fixed_sizezEngineDialog.__set_fixed_size	  ss    ??%%'*cnn.F.FF--/eV,""3>>#;#;#&>>#;#;	=rU   c                 x    | j                   j                         D ]  }| j                   j                  |        y rg   )r=   get_childrenremove)rP   rc   s     rT   __remove_all_childrenz"EngineDialog.__remove_all_children  s0    ))+ 	"AKKq!	"rU   c                     |j                   }d }| j                  |   j                  t        j                  |             | j                  |   D ]  }| j
                  j                  |        y )Nc                     | j                   |j                   k(  r*t        j                  | j                  |j                        S t	        |j                   | j                   z
        S rg   )r   localestrcollrZ   int)abs     rT   
cmp_enginez;EngineDialog.__add_engine_rows_for_lang.<locals>.cmp_engine  sB    vv~~affaff55qvv''rU   key)rZ   r.   sort	functools
cmp_to_keyr=   r8   )rP   r_   langr   s       rT   __add_engine_rows_for_langz'EngineDialog.__add_engine_rows_for_lang  sh    xx	(
 	%****:6 	+ 	8**40 	!CKKOOC 	!rU   c                    | j                          | j                  D ].  }| j                  |      }| j                  j	                  |       0 | j                  j	                  | j
                         | j                  j                          | j                  j                  | j                  j                                | j                  j                          | j                  j                  t        j                  j                         y rg   )"_EngineDialog__remove_all_childrenr0   _EngineDialog__lang_row_newr=   r8   rH   rO   r?   	set_value	get_lowerinvalidate_filterset_selection_moder   SelectionModeSINGLE)rP   r   r_   s      rT   __show_lang_rowszEngineDialog.__show_lang_rows%  s    ""$LL 	!D%%d+CKKOOC 	! 	(##D$5$5$?$?$AB%%'&&s'8'8'?'?@rU   c                     | j                          | j                  j                          d| _        | j                  j                          y r   )_EngineDialog__set_fixed_sizerL   showrF   r=   r   )rP   s    rT   __show_morezEngineDialog.__show_more1  s8      "#%%'rU   c                 p   |j                   }| j                          | j                          | j                  |      }| j                  j                  |       | j                  |       | j                  j                          | j                  j                  | j                  j                                y rg   )rZ   r   r   _EngineDialog__back_row_newr=   r8   '_EngineDialog__add_engine_rows_for_langrO   r?   r   r   )rP   r_   r   s      rT   __show_engines_for_langz$EngineDialog.__show_engines_for_lang8  s    xx""$!!$''',##D$5$5$?$?$ABrU   c                     | j                   j                         }|dk(  rd | _        n|| _        | j                  j	                          d| _        y)Nr   r   F)rL   get_textrJ   r=   r   rI   )rP   r   s     rT   __do_filterzEngineDialog.__do_filterC  sH    ""++-2:!%D!%D%%'#$ rU   c                 n    | j                   dk(  r&t        j                  d| j                        | _         y y )Nr      )rI   r   timeout_add_EngineDialog__do_filter)rP   entrys     rT   __filter_changedzEngineDialog.__filter_changedN  s0    ##q('+'7'7T=M=M'ND$ )rU   c                    i | _         i | _        |D ]  }t        j                  |j	                               }|d k(  rd}|| j                   vrg | j                   |<   t        j                  |j                                | j                  |      }| j                   |   j                  |       t        j                  |j	                               }|d k(  rd}|| j                  |<    t        | j                   j                               }|j                  t        j                  t         j"                               t!        j$                         d   }|d k(  s|dk(  rd}t        j                  |      }||v r#|j'                  |       |j)                  d|       t        j                  d      }	|	|k7  r'|	|v r#|j'                  |	       |j)                  d|	       t        j                  d      |v r=|j'                  t        j                  d             |t        j                  d      gz  }|| _        | j-                          y )Nr   r   r   Cr      Other)r.   r/   r   get_language_nameget_languager   init_textdomainget_textdomain_EngineDialog__engine_row_newappendget_untranslated_language_namelistr]   r   r   r   r   r   	getlocaler   insertr0   rj   )
rP   engineserc   r_   r[   r]   loccurrent_langen_langs
             rT   set_engineszEngineDialog.set_enginesS  s   "$"$ 	1A&&q~~'78ADy///-/''*  !1!1!34''*C##A&--c2 99!..:JKG$)0D##A&	1  D++0023		i**6>>:	; #$;#*C--c24KK%KK<( ((1l"w$KK KK7# !!'*d2KK..w78T++G455DrU   c                 Z    | j                   j                         }|d k(  ry |j                  S rg   )r=   get_selected_rowr   )rP   r_   s     rT   get_selected_enginez EngineDialog.get_selected_engine  s(    kk**,$;zzrU   rg   )__name__
__module____qualname____gtype_name__r   r   r   r(   rB   rD   rE   r   r   r   rG   r   r   r   r   r   rj   ri   rk   r   rN   r   r  __classcell__)rS   s   @rT   r   r   *   s   #N2D227;2D227;2D227;2D227;2D227;2D227;2D227;2D227;2D227;>2j#LI<"	 ="
!	A(CO
+ \rU   r   )gi.repositoryr   r   r   r   gettextr   r   r   r   r   r   r   ranger   ROW_TRAVEL_DIRECTION_FORWARDrz   Dialogr    rU   rT   <module>r     sO   4          !%U1X   [3:: [rU   