
    6{g                         d dl mZmZmZmZmZ ddlmZ d dlZ ej                  d       dZ
 G d dej                  ej                        Zy)	    )GObjectGioGtkGdkXed   )DocumentHelperNxedz/MenuBar/ViewMenu/ViewOps_1c                       e Zd Zd Z ej
                  ej                        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dZddZddZd Zd Zd Zd Zd Zd Zd Zy)TextSizePlugin)typec                 B    t         j                  j                  |        y N)r   Object__init__selfs    :/usr/lib/x86_64-linux-gnu/xed/plugins/textsize/__init__.pyr   zTextSizePlugin.__init__'   s    %    c                    i | _         | j                          | j                  j                         D ]  }| j	                  |        | j                  j                  d| j                         | j                  j                  d| j                         t        j                         | _
        | j                  j                  | j                         | j                  | j                  | j                  d| _        g | _        | j#                          t        j$                  j'                         j                  d| j(                        | _        y )Nz	tab-addedztab-removed)LargerTextActionSmallerTextActionNormalSizeActionchanged)_views_insert_menuwindow	get_viewsadd_document_helperconnecton_tab_addedon_tab_removedr   
AccelGroup_accel_groupadd_accel_groupon_larger_text_accelon_smaller_text_accelon_normal_size_accel_proxy_callback_map_proxy_mappings_init_proxy_accelsAccelMapgeton_accel_map_changed_accel_map_handler_idr   views     r   do_activatezTextSizePlugin.do_activate*   s    	 KK))+ 	+D$$T*	+ 	K):):;M4+>+>?NN,##D$5$56 !% 9 9!%!;!; $ 9 9$
   "!%(\\%5%5%7%?%?	4KdKd%e"r   c           
      n   t        |t        j                        s$| j                  j	                  t        |            }|sy t        j                  j                  |j                               }|sy t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                   t        j"                  i}|j%                         D ]  }||   |d   j&                  k(  s|}|d   j(                  }| j*                  |j-                            }| j.                  j1                  ||t        j2                  j4                  |       | j6                  j9                  ||f        y )Nr   )
isinstancer   Action_action_group
get_actionstrr,   lookup_entryget_accel_pathr   KEY_KP_Equal	KEY_equalKEY_plus
KEY_KP_AddKEY_KP_Subtract	KEY_minusKEY_KP_0KEY_0keys	accel_key
accel_modsr)   get_namer$   r    
AccelFlagsLOCKEDr*   append)r   actionentrymappingextra_accelkeymodcallbacks           r   _install_proxyzTextSizePlugin._install_proxyD   s6   &#**-''223v;?F))&*?*?*AB LLNNLL
 #<<> 	8K{#uQx'9'99!Ah))33FOO4EF!!))#sCNN4I4I8T$$++S#J7	8r   c                 j    | j                  d       | j                  d       | j                  d       y )Nr   r   r   )rQ   r   s    r   r+   z!TextSizePlugin._init_proxy_accelsb   s/    .//0./r   c                 X   | j                          | j                  j                         D ]  }| j                  |        | j                  j	                  | j
                         t        j                  j                         j                  | j                         d | _        d | _        y r   )_remove_menur   r   remove_document_helperremove_accel_groupr$   r   r,   r-   
disconnectr/   r6   r0   s     r   do_deactivatezTextSizePlugin.do_deactivateg   s    KK))+ 	.D''-	. 	&&t'8'89%%d&@&@A !r   c           
         | j                   j                         }t        j                  d      | _        | j                  j                  dd t        d      dd | j                  fdd t        d      dd | j                  fd	d t        d
      dd | j                  fg       |j                  | j                         |j                         | _        |j                  | j                  t        ddt        j                  j                   d       |j                  | j                  t        ddt        j                  j                   d       |j                  | j                  t        d	d	t        j                  j                   d       y )NXedTextSizePluginActions)namer   z_Larger Textz<Ctrl>equalr   zS_maller Textz<Ctrl>minusr   z_Normal sizez<Ctrl>0F)r   get_ui_managerr   ActionGroupr6   add_actions_on_larger_text_activateon_smaller_text_activateon_normal_size_activateinsert_action_groupnew_merge_id_ui_idadd_ui	MENU_PATHUIManagerItemTypeMENUITEMr   managers     r   r   zTextSizePlugin._insert_menuu   sX   ++,,. !__2LM&&);T1^CT)6)-)E)E)G +>tQEW)6)-)F)F*H +=dAnDU)2D)-)E)E*G(H 	I 	##D$6$67**,t{{ )),,55	 	t{{ **,,55	 	t{{ )),,55	r   c                     | j                   j                         }|j                  | j                         |j	                  | j
                         |j                          y r   )r   r\   	remove_uire   remove_action_groupr6   ensure_updaterj   s     r   rT   zTextSizePlugin._remove_menu   sL    ++,,. 	$++& 	##D$6$67 	r   c                 p    | j                   j                  | j                  j                         d k7         y r   )r6   set_sensitiver   get_active_documentr   s    r   do_update_statezTextSizePlugin.do_update_state   s(    (()H)H)Jd)RSr   c                 4    t        |d      sy |j                  S )Ntextsize_document_helper)hasattrru   r0   s     r   
get_helperzTextSizePlugin.get_helper   s    t78,,,r   c                 D    | j                  |      d k7  ry t        |       y r   )rw   r	   r0   s     r   r   z"TextSizePlugin.add_document_helper   s    ??4 D(tr   c                 R    | j                  |      }|d k7  r|j                          y y r   )rw   stop)r   r1   helpers      r   rU   z%TextSizePlugin.remove_document_helper   s%    &T>KKM r   c                 l    | j                   j                         }|r || j                  |             y y r   )r   get_active_viewrw   )r   cbr1   s      r   call_helperzTextSizePlugin.call_helper   s-    {{**,tt$% r   Nc                 (    | j                  d        y )Nc                 "    | j                         S r   larger_textr{   s    r   <lambda>z8TextSizePlugin.on_larger_text_activate.<locals>.<lambda>       (:(:(< r   r   r   rJ   	user_datas      r   r`   z&TextSizePlugin.on_larger_text_activate       <=r   c                 (    | j                  d        y )Nc                 "    | j                         S r   smaller_textr   s    r   r   z9TextSizePlugin.on_smaller_text_activate.<locals>.<lambda>       (;(;(= r   r   r   s      r   ra   z'TextSizePlugin.on_smaller_text_activate       =>r   c                 (    | j                  d        y )Nc                 "    | j                         S r   normal_sizer   s    r   r   z8TextSizePlugin.on_normal_size_activate.<locals>.<lambda>   r   r   r   r   s      r   rb   z&TextSizePlugin.on_normal_size_activate   r   r   c                 (    | j                  d        y )Nc                 "    | j                         S r   r   r   s    r   r   z5TextSizePlugin.on_larger_text_accel.<locals>.<lambda>   r   r   r   r   groupaccelrN   rO   s        r   r&   z#TextSizePlugin.on_larger_text_accel   r   r   c                 (    | j                  d        y )Nc                 "    | j                         S r   r   r   s    r   r   z6TextSizePlugin.on_smaller_text_accel.<locals>.<lambda>   r   r   r   r   s        r   r'   z$TextSizePlugin.on_smaller_text_accel   r   r   c                 (    | j                  d        y )Nc                 "    | j                         S r   r   r   s    r   r   z5TextSizePlugin.on_normal_size_accel.<locals>.<lambda>   r   r   r   r   s        r   r(   z#TextSizePlugin.on_normal_size_accel   r   r   c                 B    | j                  |j                                y r   )r   get_viewr   r   tabs      r   r!   zTextSizePlugin.on_tab_added   s      0r   c                 B    | j                  |j                                y r   )rU   r   r   s      r   r"   zTextSizePlugin.on_tab_removed   s    ##CLLN3r   c                     t         | j                  v r*| j                  j                  t         d   t         d          | j	                  |       y )Nr   r   )itemr*   r$   disconnect_keyrQ   )r   rJ   s     r   _remap_proxyzTextSizePlugin._remap_proxy   s<    4''',,T!Wd1g>F#r   c                     | j                   j                         D ](  }|j                         |k(  s| j                  |        y  y r   )r6   list_actionsr:   r   )r   accelmappathrN   rO   rJ   s         r   r.   z#TextSizePlugin.on_accel_map_changed   sB    ((557 	F$$&$.!!&)	r   r   )__name__
__module____qualname____gtype_name__r   Propertyr   Windowr   r   r2   rQ   r+   rX   r   rT   rs   rw   r   rU   r   r`   ra   rb   r&   r'   r(   r!   r"   r   r.    r   r   r   r   "   s    %NW3::.F&f48<0
"(T T-
&>?>>?>14$r   r   )gi.repositoryr   r   r   r   r   documenthelperr	   gettextinstallrg   r   WindowActivatabler   r   r   r   <module>r      s@   4 6 5 *   )	HW^^S%:%: Hr   