
    cc4,                     T    d dl mZmZ  G d d      Z G d de      Z G d de      Zy)	    )GtkGLibc                   f    e 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 Zd Zd Zd Zd Zy)DrDecoManagerMenubarz!/com/github/maoschanz/drawing/ui/i  c                     || _         d | _        |j                  |       |r|j                  d        t	        d      | _        t	        d      g| _        d| _        d| _        d| _	        y )NDrawingu
   Loading…r   F)
_window_main_menu_btnset_show_menubarset_titlebar__main_title
_subtitles_subtitle_index
_is_forced_loop_is_ongoing)selfwindowuse_menubars      6/usr/lib/python3/dist-packages/drawing/deco_manager.py__init__zDrDecoManagerMenubar.__init__
   sa    $,$+&	ty\$|_%$/$$/$    c                     d| _         yNF)r   r   s    r   remove_from_uiz#DrDecoManagerMenubar.remove_from_ui   s    $	r   c                 2    || j                   k(  ry|| _         y)NFT)r   )r   new_title_labels     r   	set_titlezDrDecoManagerMenubar.set_title    s    (((
$$	r   c                     t        |      t        | j                        k(  r-d}t        |      D ]  \  }}|| j                  |   k7  sd} |ry|| _        y)NTF)lenr   	enumerate)r   subtitles_listlist_is_similarindexsubtitles        r   set_subtitlesz"DrDecoManagerMenubar.set_subtitles&   s]    C00?#N3 uh4??5))_ "$/	r   c                     | j                   rd| _        nd| _         | xj                  dz  c_        | j                          y )NT   )r   r   r   _update_titlesr   s    r   force_update_titlesz(DrDecoManagerMenubar.force_update_titles1   s9    	4?  4!r   c                 6   | xj                   dz  c_         | j                   dk  s"| j                   t        | j                        k\  rd| _         | j                  rd| _        y| j                  syt        j                  | j                  | j                  i        y)z{Instructions needed each 3 seconds, to change the index of the
		subtitle to display, and program the next subtitle change.r)   r   FN)	r   r!   r   r   r   r   timeout_addSUBTITLE_TIMEr*   r   s    r   _increment_subtitle_indexz.DrDecoManagerMenubar._increment_subtitle_index:   sy     !	Q$"6"6#doo:N"N4	__4?  	D&&(;(;R@r   c                 <   | j                          | j                  }t        | j                        dkD  r |d| j                  | j                     z   z  }n-t        | j                        dk(  r|d| j                  d   z   z  }| j
                  j                  |       y)z8This is used as a GSourceFunc so it should return False.r)   z ~ r   F)r/   r   r!   r   r   r	   r   )r   args
full_titles      r   r*   z#DrDecoManagerMenubar._update_titlesI   s      "*A)=)=>>>:
4??q +++:,,$	r   c                     | j                   5| j                   j                  | j                   j                                 y y N)r
   
set_active
get_activer   s    r   toggle_menuz DrDecoManagerMenubar.toggle_menuW   s9    	$!!d&9&9&D&D&F"FG %r   c                      y r4    r   labels     r   set_undo_labelz#DrDecoManagerMenubar.set_undo_label[       r   c                      y r4   r9   r:   s     r   set_redo_labelz#DrDecoManagerMenubar.set_redo_label^   r=   r   c                      y r4   r9   r   s    r   init_adaptabilityz&DrDecoManagerMenubar.init_adaptabilityd   r=   r   c                      y r4   r9   r   s    r   adapt_to_window_sizez)DrDecoManagerMenubar.adapt_to_window_sizeg   r=   r   c                      y r4   r9   r   states     r   set_compactz DrDecoManagerMenubar.set_compactj   r=   r   N)__name__
__module____qualname____gtype_name__UI_PATHr.   r   r   r   r'   r+   r/   r*   r7   r<   r?   rA   rC   rG   r9   r   r   r   r      sT    (. 	A
Hr   r   c                   `     e Zd Zd Z fdZd Zd Zd Zd Z fdZ	 fdZ
d Zd	 Zd
 Z xZS )DrDecoManagerHeaderbarc                 6   t         |   |d       d| _        |r| j                  dz   }n| j                  dz   }t        j
                  j                  |      }|j                  d      | _        |j                  | j                         |j                  d      | _
        |j                  d      | _        |j                  d      | _        |j                  d	      | _        |j                  d
      | _        |j                  d      | _        |j                  d      | _        d| _        d| _        |j'                  | j                  dz          |r| j)                  |       n| j+                  |       | j                  j-                  | j.                         y )NFTzheaderbar-eos.uizheaderbar.ui
header_bar	save_long
save_shorthidable1hidable2main_menu_btnundo_btnredo_btni  r   win-menus.ui)superr   
_is_narrowrL   r   Buildernew_from_resource
get_object_widgetr   
_save_long_save_short_hidable_widget_1_hidable_widget_2r
   	_undo_btn	_redo_btn_limit_size_manual_correctionadd_from_resource_init_menus_eos_init_menus_gnomeset_menu_model_long_primary_menu)r   is_eosr   resource_pathbuilder	__class__s        r   r   zDrDecoManagerHeaderbar.__init__s   s_   '65!$/ <<"44=<<.0=KK))-8'##L1$,dll#
 &&{3$/''5$"--j9$"--j9$  **?;$ %%j1$.%%j1$. $$	DLL>9: '" $$T%<%<=r   c                     |j                  d      | _        |j                  d      | _        | j                  j	                  |j                  d             y)zfSets the menus for the GNOME/Budgie layout: `self._hidable_widget_2`
		is the "New Image" button here.short-window-menuzlong-window-menunew-image-menuN)r]   _short_primary_menurk   rb   rj   )r   rn   s     r   ri   z(DrDecoManagerHeaderbar._init_menus_gnome   sL     %//0CD$#../AB$''(:(:;K(LMr   c                    |j                  d      | _        |j                  d      | _        |j                  d      }|j                  |j                  d             |j                  d      }|j                  |j                  d             |j                  d      }|j                  |j                  d             d	| _        y
)zjSets the menus for the Pantheon layout: the "New Image" button isn't
		hidden here, and menus are shorter.minimal-window-menurq   rS   save-sectionrT   zshare-sectionnew_btnrr   d   N)r]   rs   rk   rj   rf   )r   rn   save_as_menubtnshare_menubtnrw   s        r   rh   z&DrDecoManagerHeaderbar._init_menus_eos   s     %//0EF$#../BC$&&z2/  !3!3N!CD$$Z0-w11/BCy)'	++,<=>$r   c                 (    d| _         | j                  S r   )r   rZ   r   s    r   r   z%DrDecoManagerHeaderbar.remove_from_ui   s    $	r   c                    | j                   sy| j                          | j                  j                  | j                         t        | j                        dkD  r3| j                  j                  | j                  | j                            yt        | j                        dk(  r(| j                  j                  | j                  d          y)NFr)   r   )	r   r/   r^   r   r   r!   r   set_subtitler   )r   r1   s     r   r*   z%DrDecoManagerHeaderbar._update_titles   s    			
  ",,))*A<<T__T-A-ABC 
 4??q <<T__Q/0	r   c                     t         |   |       |%| j                  j                  t	        d             y | j                  j                  t	        d      |z         y )NUndozUndo %s)rY   r<   rc   set_tooltip_textr   r   r;   ro   s     r   r<   z%DrDecoManagerHeaderbar.set_undo_label   F    '
]>>""1V9->>""1Y<%#78r   c                     t         |   |       |%| j                  j                  t	        d             y | j                  j                  t	        d      |z         y )NRedozRedo %s)rY   r?   rd   r   r   r   s     r   r?   z%DrDecoManagerHeaderbar.set_redo_label   r   r   c                    | j                   j                          | j                  j                         d   | j                  j                         d   z   | j
                  j                         d   z   | j                  j                         d   z
  | j                  j                         d   z   | j                  j                         d   z   }|| j                  z   }|dz  | _
        | j                  d       | j                          y )Nr   g      @T)r^   show_allra   get_preferred_widthrb   r_   r`   rc   rd   rf   re   rG   rC   )r   widgets_widths     r   rA   z(DrDecoManagerHeaderbar.init_adaptability   s    ,,((<<>qA((<<>qAB<<>qAB ((<<>qAB ..<<>qA	B
 ..<<>qAB-  $"9"99-"S($4r   c                     | j                   j                         | j                  kD  }|| j                  k(  }|r| j	                  | j                          y y r4   )r^   get_allocated_widthre   rZ   rG   )r   
can_expand
incoherents      r   rC   z+DrDecoManagerHeaderbar.adapt_to_window_size   sJ    002T5E5EE*doo-*'( r   c                    |r&| j                   j                  | j                         n%| j                   j                  | j                         | j                  j                  |        | j                  j                  |       | j                  j                  |        | j                  j                  |        || _	        y)zSet the compactness of the headerbar: if the parameter is True, wide
		widgets will be hidden in favor of narrow ones. Else, the opposite.N)
r
   rj   rk   rs   r_   set_visibler`   ra   rb   rZ   rE   s     r   rG   z"DrDecoManagerHeaderbar.set_compact   s    
 %%d&=&=>%%d&>&>?//%i(u%$$Y/$$Y/$/r   )rH   rI   rJ   rK   r   ri   rh   r   r*   r<   r?   rA   rC   rG   __classcell__ro   s   @r   rN   rN   p   s<    *+>ZN 99)r   rN   c                   (     e Zd Zd Z fdZd Z xZS )DrDecoManagerToolbarc                    t         |   ||       |j                  d        |r| j                  dz   }n| j                  dz   }t        j
                  j                  |      }|j                  d      | _        |j                  j                  | j                  ddd       |j                  j                          |j                  d      | _        |j                  | j                  dz          |j                  d      }t        j                  j                  |j                  d	            }|j!                  |       |j                  d
      }t        j                  j                  |j                  d            }	|j!                  |	       |r| j                  j#                  d       y |j                  d      }
| j                  j%                  |
       y )Nztoolbar-symbolic.uiz
toolbar.uitoolbarTr   rU   rX   new_menu_btnrr   save_menu_btnrv   Fru   )rY   r   r   rL   r   r[   r\   r]   r^   toolbar_box
pack_startr   r
   rg   Menunew_from_modelset_menur   rj   )r   is_symbolicwith_menubarr   rm   rn   rw   new_menusave_btn	save_menuothers_menuro   s              r   r   zDrDecoManagerToolbar.__init__  s}   '6<(d<<"77=<<,.=KK))-8' ##I.$,dD!<  **?;$ 
DLL>9:~.'XX$$W%7%78H%IJ(	80(hh%%g&8&8&HI)
I""5)##$9:;%%k2r   c                 F    d| _         | j                  j                          yr   )r   r^   destroyr   s    r   r   z#DrDecoManagerToolbar.remove_from_ui)  s    $,,	r   )rH   rI   rJ   rK   r   r   r   r   s   @r   r   r      s    (%3Nr   r   N)gi.repositoryr   r   r   rN   r   r9   r   r   <module>r      s4    $f fVJ1 J^-/ -r   