
    ?gX                         d dl Z d dlmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZmZ  G d d      Z G d	 d
e      Z G d de      Zy)    N)ManageSpicesPageDownloadSpicesPage)SidePage)SettingsStack)Spice_Harvester)GLibGtkGdkc                   6    e Zd ZdZ ed      ZdZd Zd Zd Z	y)ModuleappletszManage Cinnamon appletsprefsc                 4    d | _         t        ||       | _        y N)windowAppletsViewSidePagesidePage)selfcontent_boxs     ;/usr/share/cinnamon/cinnamon-settings/modules/cs_applets.py__init__zModule.__init__   s    +K>    c                 ~    | j                   s1t        d       | j                  j                  | j                         y y )NzLoading Applets module)loadedprintr   loadr   )r   s    r   on_module_selectedzModule.on_module_selected   s-    {{*+MMt{{+ r   c                     || _         y r   )r   )r   r   s     r   _setParentRefzModule._setParentRef   s	    r   N)
__name__
__module____qualname__name_commentcategoryr   r   r    r   r   r   r   
   s&    D)*GH?,
r   r   c                   (     e Zd ZdZ fdZd Z xZS )r   appletc                 z    t        d      | _        t        t        |   t        d      dt        d      ||       y )NzJYou can remove specific instances in panel edit mode via the context menu.Appletsz
cs-appletsr)   )module)r$   RemoveStringsuperr   r   )r   r   r,   	__class__s      r   r   zAppletsViewSidePage.__init__   s7    jk!41!I,aPXk[fou1vr   c                    || _         t        | j                  | j                         | _        t	               | _        | j                  | j
                         d| j
                  _        t        | | j                  |      }| j
                  j                  |dt        d             t        | | j                  | j                  |      }| j
                  j                  |dt        d             y )NT	installedManagemoreDownload)r   r   collection_typespicesr   stack
add_widgetexpandManageAppletsPage
add_titledr$   r   )r   r   manage_extensions_pagedownload_applets_pages       r   r   zAppletsViewSidePage.load#   s    %d&:&:DKKH"_


# 

!24f!M

4k1X;O 249M9Mt{{\b c

3VQz]Kr   )r    r!   r"   r5   r   r   __classcell__r/   s   @r   r   r      s    Ow
Lr   r   c                        e Zd Zd ej                         z  dgZdZ ed      Z ed      Z	 ed      Z
 ed      Z ed      Z fd	Zd
 Zd Zd Zd Zd Zd Z xZS )r:   z %s/.local/share/cinnamon/appletsz/usr/share/cinnamon/appletsr)   zInstalled appletsAddRemove	Uninstallz	Reset allc                    t         t        |   || j                  ||       g | _        d| _        t        t        j                        dkD  r>t        j                  d   dd dk(  r%t        t        j                  d   dd        | _
        nHt        | j                  j                  j                  d      d   j                  d      d         | _
        t        j                          | _        | j"                  j%                         j'                  d       t        j(                  t+        d      	      | _        | j,                  j/                  d
       | j,                  j1                  d| j2                         | j"                  j5                  | j,                         t        j(                  t+        d      	      | _        | j6                  j/                  d
       | j6                  j1                  d| j8                         | j"                  j5                  | j6                         t        j:                  j=                  t        j>                  j@                        }|jC                  | j,                         |jC                  | j6                         | j1                  d| jD                         | j1                  d| jF                         | j1                  d| jF                         | j                  j                  j1                  d| jH                         | jI                          | jJ                  jM                  | j"                  ddd       y )Nr         panelpanels-enabled:linkedzPrevious Panel)labelTclickedz
Next Panelmapunmapdestroyzchanged::panels-enabledF)'r.   r:   r   r5   panelscurrent_panel_indexlensysargvintpanel_idr6   settingsget_strvsplitr	   Boxpanel_select_buttonsget_style_context	add_classButtonr$   previous_buttonset_no_show_allconnectprevious_paneladdnext_button
next_panel	SizeGroupnewSizeGroupMode
HORIZONTALr8   restore_highlightremove_highlightpanels_changedtop_box
pack_start)r   parentr6   r   
size_groupr/   s        r   r   zManageAppletsPage.__init__;   sa   /8L8LfV\]#$ sxx=1!Qq!1W!<AB0DM 4 4 = =>N OPQ R X XY\ ]^_ `aDM$'GGI!!!335??I"zz2B0CD,,T2$$Y0C0CD!!%%d&:&:;::AlO<((.  DOO<!!%%d&6&67]]&&s'8'8'C'CD
d223d../UD223Wd334Y 5 56$$%>@S@ST 9 95%Kr   c                    | j                   j                  dd| j                  d       | j                  dz
  dk\  r| xj                  dz  c_        nt	        | j
                        dz
  | _        t        | j
                  | j                     j                  d      d         | _        | j                   j                  dd| j                  d       y NhighlightPanel(ib)FrE   r   rI   Tr6   send_proxy_signalrV   rQ   rR   rP   rU   rY   r   argss     r   rb   z ManageAppletsPage.previous_panel[   s    %%&6uU##a'1,$$)$'*4;;'7!';D$DKK(@(@AGGLQOP%%&6tTr   c                    | j                   j                  dd| j                  d       | j                  dz   t	        | j
                        k  r| xj                  dz  c_        nd| _        t        | j
                  | j                     j                  d      d         | _        | j                   j                  dd| j                  d       y rr   ru   )r   widgets     r   re   zManageAppletsPage.next_panelf   s    %%&6uU##a'#dkk*::$$)$'(D$DKK(@(@AGGLQOP%%&6tTr   c                 t   g | _         t        j                  j                         j	                         }d}| j
                  j                  j                  d      D ]u  }|j                  d      \  }}}t        |      |k  s't        |      | j                  k(  rt        | j                         | _        d}| j                   j                  |       w |s@d| _        t        | j                   | j                     j                  d      d         | _
        t        | j                         dkD  rE| j                  j                          | j                   j                          | j#                          y | j                  j%                          | j                   j%                          |r| j'                          y y )NFrH   rI   Tr   rE   )rP   r
   Screenget_defaultget_n_monitorsr6   rW   rX   rY   rU   rV   rR   rQ   appendr_   showrd   rj   hiderk   )r   rx   n_monscurrent_panel_existsrG   rV   monitorposs           r   rl   z ManageAppletsPage.panels_changedq   s]   '')88:  %[[))223CD 	*E%*[[%5"Hgs7|f$x=DMM1/24;;/?D,+/(""5)	* $'(D$D,D,D E K KC PQR STDMt{{a  %%'!!#""$  %%'!!##%%' $r   c                 T    | j                   j                  dd| j                  d       y )Nrs   rt   F)r6   rv   rV   rw   s     r   rk   z"ManageAppletsPage.remove_highlight   s    %%&6uUr   c                     t        | j                        dkD  r)| j                  j                  dd| j                  d       y y )NrE   rs   rt   T)rR   rP   r6   rv   rV   rw   s     r   rj   z#ManageAppletsPage.restore_highlight   s6    t{{aKK))*:FDMMSWX  r   c                 R    | j                   j                  || j                         y )N)rG   )r6   enable_extensionrV   )r   uuids     r   enablezManageAppletsPage.enable   s    $$T$?r   )r    r!   r"   r   get_home_dirdirectoriesr5   r$   installed_page_titleinstance_button_textremove_button_textuninstall_button_textrestore_button_textr   rb   re   rl   rk   rj   r   r>   r?   s   @r   r:   r:   2   s    58I8I8I8KKMjkKO01U88kNK.L@	U	U(>VY
@r   r:   )rS   ExtensionCorer   r   SettingsWidgetsr   xapp.SettingsWidgetsr   Spicesr   gi.repositoryr   r	   r
   r   r   r:   r'   r   r   <module>r      sE     > $ . " ( ( "L( L.g@( g@r   