
    |~g                         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
 d dlmZ  G d de	j                        Zy)    )import_moduleN)AppletService)GioGLib)IndicatorNotAvailablec            
            e Zd Zd fdZddZdej                  dededdfdZdej                  d	eddfd
Z	de
ddfdZddZdedededej                  ddf
dZ xZS )BluemanTrayreturnNc                     t            dt        j                  j                         d _        dt        dt        f fd}t        j                  t        j                        }|j                  |       |j                          y )Nzorg.blueman.Tray)application_idflagsF_r
   c                 &    j                          y)NF)quit)r   selfs    3/usr/lib/python3/dist-packages/blueman/main/Tray.pydo_quitz%BluemanTray.__init__.<locals>.do_quit   s    IIK    )super__init__r   ApplicationFlags
FLAGS_NONE_activeobjectboolr   unix_signal_source_newsignalSIGINTset_callbackattach)r   r   s	__class__s   `  r   r   zBluemanTray.__init__   sg    (:#BVBVBaBab	v 	$ 	 ''6	w	
r   c                 P   | j                   r-t        j                  dd        t        j                  d       y t        j                  t
        j                  j                  dt
        j                  j                  | j                  | j                         | j                          y )N   c                  l    t        j                  t        j                  d   t        j                        S )Nr   )osexecvsysargv r   r   <lambda>z)BluemanTray.do_activate.<locals>.<lambda>   s    !chh0O r   z$Already running, restarting instancezorg.blueman.Applet)r   r   timeout_add_secondslogginginfor   bus_watch_nameBusTypeSESSIONBusNameWatcherFlagsNONE_on_name_appeared_on_name_vanishedholdr   s    r   do_activatezBluemanTray.do_activate   sp    <<$$Q(OPLL?@3;;..0DcF]F]FbFb1143I3I	K		r   _connectionname_ownerc                 .   t        j                  d| d       t               }|j                         D ]8  }t	        t        d|z         |      }	  || |j                               | _         n t        j                  d| j                  j                  j                   d       |j                  d| j                         | j                  j                  |j                                | j                  j!                  |j#                                | j                  j%                  |j'                                | j                  j)                  |j+                                d	| _        y # t        $ r t        j                  d| d       Y _w xY w)
NzApplet started on name z, showing indicatorzblueman.main.indicators.zIndicator "z" is not availablezUsing indicator ""zg-signalT)r-   debugr   GetStatusIconImplementationsgetattrr   GetIconName	indicatorr   r.   r"   __name__connect	on_signalset_tooltip_titleGetToolTipTitleset_tooltip_textGetToolTipTextset_visibilityGetVisibilityset_menuGetMenur   )r   r9   r:   r;   appletindicator_nameindicator_classs          r   r4   zBluemanTray._on_name_appeared#   sI   /v5HIJ$AAC 	ON%m4NQ_4_&`bpqOO!0v7I7I7K!L		O 	()A)A)J)J(K1MNz4>>2(()?)?)AB''(=(=(?@%%f&:&:&<= 01 ) O{>*::LMNOs   E.."FF_namec                 N    t        j                  d       | j                          y )Nz+Applet shutdown or not available at startup)r-   r>   r   )r   r9   rQ   s      r   r5   zBluemanTray._on_name_vanished9   s    CD		r   indexesc                 8    t               j                  d|       y )Nz(ai))r   ActivateMenuItem)r   rS   s     r   activate_menu_itemzBluemanTray.activate_menu_item=   s    ((9r   c                 4    t               j                          y )N)r   Activater7   s    r   activate_status_iconz BluemanTray.activate_status_icon@   s      "r   _applet_sender_namesignal_nameargsc                 :   |dk(  r | j                   j                  |  y |dk(  r | j                   j                  |  y |dk(  r | j                   j                  |  y |dk(  r | j                   j                  |  y |dk(  r | j                   j
                  |  y y )NIconNameChangedToolTipTitleChangedToolTipTextChangedVisibilityChangedMenuChanged)rB   set_iconrF   rH   rJ   rL   )r   rZ   r[   r\   r]   s        r   rE   zBluemanTray.on_signalC   s    ++#DNN##T*11,DNN,,d300+DNN++T2//)DNN))40M)#DNN##T* *r   )r
   N)rC   
__module____qualname__r   r8   r   DBusConnectionstrr4   r5   intrV   rY   r   r   VariantrE   __classcell__)r"   s   @r   r	   r	      s    
S-?-? s TW \` ,S-?-?  PT :3 :4 :#
+ 
+c 
+PS 
+[_[g[g 
+lp 
+r   r	   )	importlibr   r-   r&   r   r(   blueman.main.DBusProxiesr   gi.repositoryr   r   *blueman.main.indicators.IndicatorInterfacer   Applicationr	   r*   r   r   <module>rq      s/    #  	  
 2 # LA+#// A+r   