
    |~g                         d dl m Z d dlmZmZmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZ d dlmZ e	r)d dlmZ  G d de      Z G d d	e      Z G d
 ded      Z G d d      Z G d de      Z G d de      Zy)    )gettext)ListUnionIterableDictOptionalCallableTYPE_CHECKINGTupleIteratorMappingSequence)GLib)AppletPlugin)	TypedDictc                   Z    e Zd ZU eed<   eed<   eed<   eed<   ee   ed<   eg df   ed<   y)SubmenuItemDicttextmarkup	icon_name	sensitivetooltipNcallback)__name__
__module____qualname__str__annotations__boolr   r	        =/usr/lib/python3/dist-packages/blueman/plugins/applet/Menu.pyr   r      s/    	#2t8$$r!   r   c                       e Zd ZU eed<   y)MenuItemDictBaseidN)r   r   r   intr   r    r!   r"   r$   r$      s    r!   r$   c                       e Zd ZU ed   ed<   y)MenuItemDictr   submenuN)r   r   r   r   r   r    r!   r"   r(   r(      s    +,,r!   r(   F)totalc                      e Zd Zdddedeeef   dee   dedee   dee   d	ee	g d
f      dee	g e
d   f      dedefdZedefd       Zedeeef   fd       Zedee	g d
f      fd       Zedefd       Zdeeeeeef   f      fdZdeeeeeeeeeeeeef   f      f   f      fdZeded   fd       Zddededd
fdZdedd
fdZdedd
fdZdedd
fdZdedd
fdZy
)MenuItemmenu_pluginMenuownerpriorityr   r   r   r   r   Nsubmenu_functionr   visibler   c                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        |r|r|s|	st        |||||	g      rJ y y y N)_menu_plugin_owner	_priority_text_markup
_icon_name_tooltip	_callback_submenu_function_visible
_sensitiveany)selfr-   r/   r0   r   r   r   r   r   r1   r2   r   s               r"   __init__zMenuItem.__init__   s     (!
#!!1#	x3CT9gx9IJK	L LK 4Dxr!   returnc                     | j                   S r4   )r6   rA   s    r"   r/   zMenuItem.owner.   s    {{r!   c                     | j                   S r4   )r7   rE   s    r"   r0   zMenuItem.priority2       ~~r!   c                     | j                   S r4   )r<   rE   s    r"   r   zMenuItem.callback6   rG   r!   c                     | j                   S r4   )r>   rE   s    r"   r2   zMenuItem.visible:   s    }}r!   c              #   J   K   dD ]  }t        | d|z         }|||f  y w)N)r   r   r   r   r   _)getattr)rA   keyvalues      r"   
_iter_basezMenuItem._iter_base>   s5     J 	!CD#),E 5j 	!s   #	#c              #      K   d| j                   d   dz  | j                   d   z   f | j                         E d {    | j                  }|rd|D cg c]  }t        |       c}f y y 7 1c c}w w)Nr%   r         r)   )r7   rO   submenu_itemsdict)rA   r)   items      r"   __iter__zMenuItem.__iter__D   st     T^^A&!+t~~a/@@@@??$$$$$W=Td4j===  	% >s!   :A5A.A5A0&	A50A5SubmenuItemc                 v   | j                   sg S | j                         }|sg S |D cg c]  }t        | j                  | j                  d|j	                  d      |j	                  dd      |j	                  d      |j	                  d      |j	                  d      d d|j	                  d	d             c}S c c}w )
N)r   r   r   r   Fr   r   r   Tr   )r=   rW   r5   r6   get)rA   rS   rU   s      r"   rS   zMenuItem.submenu_itemsK   s    %%I..0I *+  D--t{{FDHHVDTVZV^V^_ginVo HH[1488I3FQ[H\^bdh HH[$79 + 	+ +s   BB6c                 T    || _         || _        | j                  j                          y r4   )r8   r9   r5   on_menu_changed)rA   r   r   s      r"   set_textzMenuItem.set_textW   s"    
))+r!   c                 F    || _         | j                  j                          y r4   )r:   r5   r[   )rA   r   s     r"   set_icon_namezMenuItem.set_icon_name\       #))+r!   c                 F    || _         | j                  j                          y r4   )r;   r5   r[   )rA   r   s     r"   set_tooltipzMenuItem.set_tooltip`       ))+r!   c                 F    || _         | j                  j                          y r4   )r>   r5   r[   )rA   r2   s     r"   set_visiblezMenuItem.set_visibled   rb   r!   c                 F    || _         | j                  j                          y r4   )r?   r5   r[   )rA   r   s     r"   set_sensitivezMenuItem.set_sensitiveh   r_   r!   )F)r   r   r   r   r   r&   r   r   r   r	   r   rB   propertyr/   r0   r   r2   r   r   rO   r   r   rV   rS   r\   r^   ra   rd   rf   r    r!   r"   r,   r,      s   LF L< L5QTVYQY? Lbjknbo LL*23-LBJ3-L[cdlmoqumudv[wL#+HRBS9T5T,U#VLaeLrvL$ |   %S/   (8BH#56     !HU3c4i0@+@%AB !>(5eCdDcSXY\^bYbScNcIdDe4e.f)f#gh > 	+tM2 	+ 	+,S ,$ ,4 ,
,s ,t ,,3 ,4 ,,4 ,D ,,t , ,r!   r,   c                   2    e Zd Zdeeeeeef   f      fdZy)rW   rC   c              #   @   K   | j                         E d {    y 7 wr4   )rO   rE   s    r"   rV   zSubmenuItem.__iter__n   s     ??$$$s   N)	r   r   r   r   r   r   r   r   rV   r    r!   r"   rW   rW   m   s&    %(5eCI.>)>#?@ %r!   rW   c                      e Zd Z ed      ZdZdZdZddZ	 	 	 	 	 dde	d	e
eeeef   f   d
ee   dedee   dee   deeg df      deeg ed   f      dededefdZde	ddfdZddZdeeeej2                  f      fdZdeeee
eeeeeee
eef   f      f   f      deeeej2                  f      fdZde
eeeeeee
eef   f      f   dej2                  fdZdee   ddfdZy)r.   zLProvides a menu for the applet and an API for other plugins to manipulate itzopen-menu-symbolicWalmisFrC   Nc                     i | _         | j                  dd       | j                  ddd| j                         | j                  ddd| j                         y )NMenuChangedaa{sv}GetMenur    ActivateMenuItem)ai )_Menu__menuitems_add_dbus_signal_add_dbus_method	_get_menu_activate_menu_itemrE   s    r"   on_loadzMenu.on_loadx   sM    <>mX6iXt~~F0'2t?W?WXr!   r/   r0   r   r   r   r   r   r1   r   r2   r   c                     t        |t              r|df}|d   dk  sJ |d   dk  sJ t        | |||||||||	|
      }|| j                  |j                  <   | j                          |S )Nr      rR   )
isinstancer&   r,   rs   r0   r[   )rA   r/   r0   r   r   r   r   r   r1   r2   r   rU   s               r"   addzMenu.add   s     h$ !}H{S   {S   eXtVYQY[kmt!#*.'r!   c                     t        | j                  j                               D ])  }|j                  |k(  s| j                  |j                  = + | j                          y r4   )listrs   valuesr/   r0   r[   )rA   r/   rU   s      r"   
unregisterzMenu.unregister   sQ    ))0023 	4DzzU"$$T]]3	4 	r!   c                 D    | j                  d| j                                y )Nrm   )_emit_dbus_signalrv   rE   s    r"   r[   zMenu.on_menu_changed   s    }dnn.>?r!   c                 z      j                   fdt         j                  j                               D              S )Nc              3      K   | ]5  }j                   |   j                  rt        j                   |          7 y wr4   )rs   r2   rT   ).0rM   rA   s     r"   	<genexpr>z!Menu._get_menu.<locals>.<genexpr>   s?      "D&)%)%5%5c%:%B%B #'t'7'7'<"= "Ds   ;>)_prepare_menusortedrs   keysrE   s   `r"   rv   zMenu._get_menu   s;    !! "D-3D4D4D4I4I4K-L"D D 	Dr!   datac                     |D cg c]5  }|j                         D ci c]  \  }}|| j                  |       c}}7 c}}}S c c}}w c c}}}w r4   )items_build_variant)rA   r   rU   kvs        r"   r   zMenu._prepare_menu   sE     RVVVtzz|Dtq!D''**DVVDVs   AAAArN   c                 0   t        |t              rt        j                  d|      S t        |t              rt        j                  d|      S t        |t
              rt        j                  d|      S t        j                  d| j                  |            S )Nbisrn   )r{   r   r   Variantr&   r   r   )rA   rN   s     r"   r   zMenu._build_variant   so    eT"<<U++eS!<<U++eS!<<U++||Hd&8&8&?@@r!   indexesc                     | j                   |d   dz	  |d   dz  f   }t        |      dd  D ]  }|j                  |   } |j                  r|j                          y y )Nr   rQ   rz   rR   )rs   r~   rS   r   )rA   r   nodeindexs       r"   rw   zMenu._activate_menu_item   sg    q'!*2G HI']12& 	-E%%e,D	-==MMO r!   )rC   N)NFNNNNTT) r   r   r   rK   __description____icon__
__author____unloadable__rx   r   r   r&   r   r   r   r   r	   r   r,   r|   r   r[   r   r   r   r   rv   r   r   r   r   rw   r    r!   r"   r.   r.   r   s   fgO#HJNY ei\`59TX48	 sE#s(O7K1L T\]`Ta -5c]LTUXMxD12 'xH=N4O0O'PQ 	 .2	 >F	$  @D4S$,,%6 78 D
W(73c3>FwsTYZ]_cZcTdOdGe>f?g 9h 4h ,i #j WDdll*+,W
AE#sD(73PUVY[_V_P`K`Ca:b*b$c Ahlhtht A8C= T r!   r.   N)r   rK   typingr   r   r   r   r   r	   r
   r   r   r   r   gi.repositoryr   blueman.plugins.AppletPluginr   typing_extensionsr   r   r$   r(   r,   rW   r.   r    r!   r"   <module>r      sx     6 6 6 6  5+%) %? -'u -O, O,d%( %
@< @r!   