
    FQ	f,                        d dl mZ d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	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      Z G d dej.                        Z G d dej2                        Z ej6                  e       edk(  rn e       Zej=                         Zeej@                  jB                  k7  r&ejE                          d dl#Z# e#jH                  d         e%dejM                                yy)    )print_function)EmojiLangButton)Gtk)GLib)GObject)IBusN)	load_icon)_N_   c                       e Zd ZddZy)LanguageStringc                      || _         || _        y N)idtrans)selfr   r   s      "/usr/share/ibus/setup/emojilang.py__init__zLanguageString.__init__0   s    
    N) )__name__
__module____qualname__r    r   r   r   r   /   s    r   r   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 xZS )EmojiLangChooseren_USen_GBde_DEfr_FRes_ESzh_CNja_JPru_RUar_EGc           	      H   t         t        |   t        d      |d       t        d      t        j
                  j                  t        d      t        j
                  j                  f} | j                  |  |d k(  rd}|| _	        i | _
        i | _        i | _        g | _        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        j0                  j2                  t        j0                  j2                  	      | _        |j+                  | j4                         | j&                  j7                         | _        | j4                  j;                  | j8                         | j4                  j=                  | j>                  d        | j4                  jA                  d
| jB                         d| _"        | jG                         | _$        | jK                          | jM                          | jO                          y )NzSelect a languageT)titletransient_for	resizable_Cancel_OKen   )hscrollbar_policyvscrollbar_policyshadow_typemargin_start
margin_end
margin_topmargin_bottom)vexpandhalignvalignzrow-activatedF)(superr   r   r
   r   ResponseTypeCANCELAPPLYadd_buttons_EmojiLangChooser__id#_EmojiLangChooser__engines_for_lang#_EmojiLangChooser__untrans_for_lang_EmojiLangChooser__langs_EmojiLangChooser__lang_listScrolledWindow
PolicyTypeNEVER
ShadowTypeIN_EmojiLangChooser__scrolledvboxaddViewportListBoxAlignFILL_EmojiLangChooser__listget_vadjustment_EmojiLangChooser__adjustmentset_adjustmentset_filter_func_EmojiLangChooser__list_filterconnect _EmojiLangChooser__row_activated _EmojiLangChooser__showing_extra_EmojiLangChooser__more_row_new_EmojiLangChooser__more_row!_EmojiLangChooser__load_lang_list!_EmojiLangChooser__show_lang_rowsshow_all)r   r   r)   buttonsviewport	__class__s        r   r   zEmojiLangChooser.__init__A   s   .-. -  	/ 	" Y<!1!1!8!8U8S--335'":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$--/r   c                    t         j                  j                  t              dz   }t        j                  |      D ]  }d}|j                  |      s|dt        |      t        |      z
   }d}|j                  |      sE|t        |      d  }t        |t        j                  |            }| j                  j                  |        t        | j                        dk(  rYt        d|z  t        j                         t        dt        j                  d            }| j                  j                  |       y d }| j                  j!                  t#        j$                  |      	       t'        j(                         d   }|d k(  s|d
k(  rd}d}	| j                  D ]a  }|j*                  t        j                  |      k(  s&| j                  j-                  |       | j                  j/                  |	|       |	dz  }	c | j                  D ]a  }|j*                  t        j                  d      k(  s&| j                  j-                  |       | j                  j/                  |	|       |	dz  }	c y )Nz	/../dictsz.dictr   zemoji-zNot found dicts in %s)filer-   c                 |    | j                   | j                  z   }|j                   |j                  z   }||kD  ||k  z
  S r   )r   r   )ablabel_alabel_bs       r   cmp_langz3EmojiLangChooser.__load_lang_list.<locals>.cmp_lang   s9    ggnGggnGg%'G*;<<r   )keyCr      )ospathdirname__file__listdirendswithlen
startswithr   r   get_language_namerB   appendprintsysstderrsort	functools
cmp_to_keylocale	getlocaler   removeinsert)
r   dictdirfilenamesuffixlang_idprefixlangrg   locindexs
             r   __load_lang_listz!EmojiLangChooser.__load_lang_listn   s   ''//(+k9

7+ 
	*HF$$V,qXV!<=GF%%f-c&kl+G!'4+A+A'+JKD##D)
	* t A%)G3#**E!$(>(>t(DED##D)	=
 	I$8$8$BC #$;#*C$$ 	DzzT33C88  ''-  ''t4
	 $$ 	DzzT33D99  ''-  ''t4
	r   c                     |j                   | j                  k(  r| j                  j                  |       || j                  k(  r| j
                   S | j
                  s|j                  ryy)NFT)r   r>   rO   
select_rowrY   rW   is_extra)r   rowdatas      r   __list_filterzEmojiLangChooser.__list_filter   sT    66TYYKK""3'$//!++++##r   c                 f    || j                   k(  r| j                          y |j                  | _        y r   )rY   _EmojiLangChooser__show_morer   r>   )r   boxr   s      r   __row_activatedz EmojiLangChooser.__row_activated   s(    $//!FF	r   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_valignrM   CENTERset_margin_startset_margin_endset_margin_topset_margin_bottom)r   texticon	alignment	directionhboxrtlarrowr   imager   s              r   __padded_label_newz#EmojiLangChooser.__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-r   c                     t        j                         }|j                  |_        |j                  |_        d|_        |S )NF)r   
ListBoxRowr   r   r   )r   r   r   s      r   __list_box_row_newz#EmojiLangChooser.__list_box_row_new   s0    nnJJ	
r   c                    | j                  |      }|j                  }|j                  | j                  k(  rd|_        nc|d k7  r3||j                  k(  r$|j                  d|j                  d}d|_        n+| j
                  s|j                  | j                  vrd|_        | j                  |d t        j                  j                  t              }|j                  |       |S )NFz ()T)#_EmojiLangChooser__list_box_row_newr   r   r>   r   rW   $_EmojiLangChooser__initial_languages#_EmojiLangChooser__padded_label_newr   rM   r   ROW_TRAVEL_DIRECTION_NONErJ   )r   r   	prev_langr   r   widgets         r   __lang_row_newzEmojiLangChooser.__lang_row_new   s    %%d+

77dii CL$5IOO#;!%TWW5ECL%%::T555CL(()-),)9)9)BD 	
r   c                    t        j                         }d |_        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 )Nr   u   More…zview-more-symbolicr   r.   Tr   )r   r   r   r   r   r   rJ   set_tooltip_textr
   r   r   r   r   r   r   r   r   r   rM   r   r   r   )r   r   r   r   s       r   __more_row_newzEmojiLangChooser.__more_row_new   s    nnwwS__%?%?@Qy\*		,,-A-0\\->->@r"R Q"))*))*tT1-
r   c                 X   | j                   j                         d   t        j                  j                  k(  ry | j                         \  }}| j                  ||       | j                   j                  t        j                  j                  t        j                  j                         y )Nr   )rH   
get_policyr   rD   	AUTOMATICget_sizeset_size_request
set_policy)r   widthheights      r   __set_fixed_sizez!EmojiLangChooser.__set_fixed_size   ss    ??%%'*cnn.F.FF--/eV,""3>>#;#;#&>>#;#;	=r   c                 x    | j                   j                         D ]  }| j                   j                  |        y r   )rO   get_childrenr}   )r   ls     r   __remove_all_childrenz&EmojiLangChooser.__remove_all_children  s0    ))+ 	"AKKq!	"r   c                 &   | j                          d }| j                  D ]1  }| j                  ||      }| j                  j	                  |       |}3 | j                  j	                  | j
                         | j                  j                          | j                  j                  | j                  j                                | j                  j                          | j                  j                  t        j                  j                         y r   )&_EmojiLangChooser__remove_all_childrenrB   _EmojiLangChooser__lang_row_newrO   rJ   rY   r\   rQ   	set_value	get_lowerinvalidate_filterset_selection_moder   SelectionModeSINGLE)r   r   r   r   s       r   __show_lang_rowsz!EmojiLangChooser.__show_lang_rows  s    ""$	$$ 	D%%dI6CKKOOC I	 	(##D$5$5$?$?$AB%%'&&s'8'8'?'?@r   c                 f    | j                          d| _        | j                  j                          y )NT)!_EmojiLangChooser__set_fixed_sizerW   rO   r   r   s    r   __show_morezEmojiLangChooser.__show_more  s&    #%%'r   c                     | j                   S r   )r>   r   s    r   get_selected_langz"EmojiLangChooser.get_selected_lang  s    yyr   )NN)r   r   r   __gtype_name__r   rs   r   r   rZ   rT   rV   r   r   r   rX   r   r   r[   r   r   __classcell__r_   s   @r   r   r   4   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;>*Z+\<&$="
A(r   r   c                        e Zd Zd Zdedddej                  j                  ej                  j                  z  fiZ	 fdZ
d Zd Zd Zd Zd	 Z xZS )
r   r   zlang for emojo-*.dictr-   c                 8    t         t        |           d| _        y )Nr   )r9   r   r   _EmojiLangButton__lang)r   r_   s    r   r   zEmojiLangButton.__init__*  s    ot-/r   c                 h    |j                   dk(  r| j                  S t        d|j                   z        Nr   zunknown property %s)namer   AttributeError)r   props     r   do_get_propertyzEmojiLangButton.do_get_property/  s-    99;; !6!BCCr   c                 t    |j                   dk(  r| j                  |       y t        d|j                   z        r   )r   set_langr   )r   r   values      r   do_set_propertyzEmojiLangButton.do_set_property6  s/    99MM%  !6!BCCr   c                 (   t        | j                  | j                               }|j                         }|t        j
                  j                  k7  r|j                          y | j                  |j                                |j                          y )N)r   r)   )
r   r   get_toplevelrunr   r:   r<   destroyr   r   )r   dialogr   s      r   
do_clickedzEmojiLangButton.do_clicked=  sj    !t{{262C2C2EGZZ\!!'''NNf..01r   c                 |    || _         | j                  d       | j                  t        j                  |             y )Nr   )r   notify	set_labelr   rs   r   r   s     r   r   zEmojiLangButton.set_langH  s,    Ft--d34r   c                     | j                   S r   )r   r   s     r   get_langzEmojiLangButton.get_langN  s    {{r   )r   r   r   r   strr   
ParamFlagsREADABLEWRITABLE__gproperties__r   r   r   r   r   r   r   r   s   @r   r   r     sd    &N#'''*<*<*E*EEGO
DD5r   r   __main__zSelected language:)'
__future__r   __all__gi.repositoryr   r   r   r   ry   gettexti18nr{   rk   r   r	   r
   r   listranger   ROW_TRAVEL_DIRECTION_FORWARDr   r   Dialogr   Buttonr   type_registerr   r   r   r   r:   r<   r   rv   exitru   r   r   r   r   <module>r     s   . &   !      	   !%U1X    
gszz gT1cjj 1h   o & z!#ZZ\!!'''NNCHHQK"F$<$<$>? r   