
    FQ	fu                     x   d dl Z d dlZd dlZ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
mZmZ  G d d	ej                        Zed
k(  rn e       Zej#                   ej$                  d      g        ej&                         Zej+                  e       ej-                           ej.                          yy)    N)GObject)Gtk)IBus)Pango)	load_icon)_N_c                   ~     e Zd Zd Zdeddej                  j                  fiZ fdZ	d Z
d Zd Zd Zd Zd	 Z xZS )
EngineComboBoxactive-enginezselected enginec                    t         t        |           | j                  d| j                         d | _        t        j                         }|j                  dd       |j                  dd       | j                  |d       | j                  || j                  d        t        j                         }|j                  dd       |j                  dd       | j                  |d       | j                  || j                  d        y )Nznotify::activexalignr   xpad   FT)superr   __init__connect!_EngineComboBox__notify_active_cb_EngineComboBox__modelr   CellRendererPixbufset_property
pack_startset_cell_data_func"_EngineComboBox__icon_cell_data_cbCellRendererText"_EngineComboBox__name_cell_data_cb)selfrenderer	__class__s     '/usr/share/ibus/setup/enginecombobox.pyr   zEngineComboBox.__init__-   s    nd,.%t'>'>?))+h*fa(%($*B*BDI'')h*fa($'$*B*BDI    c                    t        j                  t              | _        | j                  j	                  d       }| j                  j                  |dd       i }|D ]I  }t        j                  |j                               }|d k(  rd}||vrg ||<   ||   j	                  |       K t        |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      |v r=|j#                  t        j                  d             |t        j                  d      gz  }|D ]  }| j                  j	                  d       }| j                  j                  |d|       d }	||   j                  t        j                  |	             ||   D ]:  }| j                  j	                  |      }
| j                  j                  |
d|       <  | j'                  | j                         | j)                  d       y )Nr    )keyCen_USOtherc                     | j                         |j                         k(  r2t        j                  | j                         |j                               S t	        |j                         | j                         z
        S )N)get_ranklocalestrcollget_longnameint)abs     r    
cmp_enginez.EngineComboBox.set_engines.<locals>.cmp_engine`   sQ    ::<1::</!>>!..*:ANN<LMM1::<!**,677r!   )r   	TreeStoreobjectr   appendsetr   get_language_nameget_languagelistkeyssort	functools
cmp_to_keyr*   r+   	getlocaleremoveinsert	set_model
set_active)r   enginesiter1langselr8   loccurrent_langr0   iter2s              r    set_engineszEngineComboBox.set_engines?   s   }}V,##D)1% 	A&&q~~'78ADy~a!HOOA	 EJJL!		i**6>>:	; #$;#*C--c24KK%KK<( !!'*d2KK..w78T++G455D 
	.ALL''-ELLUAq)8 !HMMi22:>M?1X .++E2  1-.
	. 	t||$r!   c                 p   | j                   j                  |d      }t        |t              r%|j	                  dd       |j	                  dd       y t
        j                  dk  r5t        |t              r%|j	                  dd       |j	                  dd       y t        |t              r%|j	                  dd       |j	                  dd       y |j	                  dd       |j	                  dd       t        |j                         t        j                  j                        }|j	                  d|       y )Nr   visibleF	sensitive3Tpixbuf)r   	get_value
isinstancestrr   sysversionunicoder-   r   get_iconr   IconSizeLARGE_TOOLBAR)r   
celllayoutr   modeliterdataenginerN   s           r    __icon_cell_data_cbz"EngineComboBox.__icon_cell_data_cbl   s    ''a0fc"!!)U3!!+u5[[3:vw#?!!)U3!!+u5$!!)U3!!+u5!!)T2!!+t4v0#,,2L2LMF!!(F3r!   c                    | j                   j                  |d      }t        |t              rO|j	                  dd       |j	                  d|       |j	                  dt
        j                  j                         y t        j                  dk  r_t        |t              rO|j	                  dd       |j	                  d|       |j	                  dt
        j                  j                         y t        |t              rX|j	                  dd       |j	                  dt        d             |j	                  dt
        j                  j                         y |j	                  dd       |j	                  d|j                                |j	                  d|j                         dkD  rt
        j                  j                  nt
        j                  j                         y )	Nr   rL   FtextweightrM   TzSelect an input method)r   rO   rP   rQ   r   r   WeightNORMALrR   rS   rT   r-   r   r,   r)   BOLD)r   rX   r   rY   rZ   r[   r\   s          r    __name_cell_data_cbz"EngineComboBox.__name_cell_data_cb~   sV   ''a0vs#!!+u5!!&&1!!(ELL,?,?@[[3:vw#?!!+u5!!&&1!!(ELL,?,?@$!!+t4!!&!,D*EF!!(ELL,?,?@!!+t4!!&&*=*=*?@!!()/):Q)>ELL%%ELLDWDWYr!   c                 &    | j                  d       y Nr   )notify)r   comboboxpropertys      r    __notify_active_cbz!EngineComboBox.__notify_active_cb   s    O$r!   c                     |j                   dk(  rA| j                         }|dk(  s|dk(  ry | j                         }| j                         |   d   S t	        d|j                   z        )Nr   r   zunknown property %s)name
get_activeget_active_iter	get_modelAttributeError)r   ri   irZ   s       r    do_get_propertyzEngineComboBox.do_get_property   sd    ==O+!AAvb'')D>>#D)!,, !6!FGGr!   c                 $    | j                  d      S rf   )get_property)r   s    r    get_active_enginez EngineComboBox.get_active_engine   s      11r!   )__name__
__module____qualname____gtype_name__r2   r   
ParamFlagsREADABLE__gproperties__r   rI   r   r   r   rs   rv   __classcell__)r   s   @r    r   r   #   sV    %N''	)OJ$+Z4$Y*%H2r!   r   __main__zh)language)r*   r:   rR   gi.repositoryr   r   r   r   iconr   i18nr   r	   ComboBoxr   rw   comborI   
EngineDescWindowwaddshow_allmain r!   r    <module>r      s   .   
 !     ~2S\\ ~2@ zE	t567

AEE%LJJLCHHJ r!   