
    cco/                     z    d dl mZmZmZ ddlmZ  ej                  d       G d dej                               Zy)	    )GtkGioGdk   )utilities_add_unit_to_spinbtnz//com/github/maoschanz/drawing/ui/preferences.ui)resource_pathc                       e Zd Zd Zej
                  j                         Zej
                  j                         Zej
                  j                         Z	ej
                  j                         Z
ej
                  j                         Zej
                  j                         Zej
                  j                         Zej
                  j                         ZdZdZej$                  j'                  d      Z f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%d Z&d Z'd Z(d Z)d Z*d Z+d Z, xZ-S )DrPrefsWindowNr   zcom.github.maoschanz.drawingc                    t        |   di | |rt        j                  dt	        d      d      }| j                  |       t        j                  d| j                  t        j                  j                        }|j                  |       | j                  dd       nct        j                  d| j                        }|j                  dd	       | j                  j                  |d
d
d       | j                  dd       |r| j!                         j#                  d       | j%                          | j'                          | j)                  |       y )NTPreferences)visibletitleshow_close_button)r   stackhaligni  i  )r   r      Fr   iX  i  devel )super__init__r   	HeaderBar_set_titlebarStackSwitcherr   AlignCENTERset_custom_titleset_default_sizeStackSidebarset_size_requestcontent_area
pack_startget_style_context	add_classpage_builder_imagespage_builder_toolspage_builder_advanced)selfis_beta	wants_csdkwargs
header_barstack_switcherstack_sidebar	__class__s          5/usr/lib/python3/dist-packages/drawing/preferences.pyr   zDrPrefsWindow.__init__(   s   'V
M
:
 Z %%
**99>
 ~.c"##D

C=!!#r*ueQ?c" %%g.W%    c                      || _         d| _        y )Nr   )_current_grid_grid_attach_cpt)r)   grids     r1   set_current_gridzDrPrefsWindow.set_current_gridM   s    $$r2   c                 ,    | j                   dz   | _         y )Nr   )r5   r)   s    r1   update_grid_cptzDrPrefsWindow.update_grid_cptQ   s    //!3$r2   c                 d   | j                  | j                         | j                  t        d             | j	                  t        d      d| j
                         | j	                  t        d      d| j                         | j                  t        d      d       | j                          | j                  t        d             | j                  t        d	      d
z   t        d      z          t        d      t        d      t        d      t        d      t        d      t        d      d}| j                  d|       | j                          | j                  t        d             t        d      d
z   t        d      z   }| j                  |       | j                  t        d      d       y)z1Adds the widget to the grid of the 'images' page.z
New imageszDefault widthzdefault-widthzDefault heightzdefault-heightzDefault colorzdefault-rgbazImages savingz.JPEG and BMP images can't handle transparency. z\If you save your images in these formats, what do want to use to replace transparent pixels?WhiteBlack
CheckboardNothingzAsk before saving)initialwhiteblack
checkboardnothingaskzreplace-alphaZoomz4You can zoom with Ctrl+scrolling, or only scrolling.z*See the user help manual for explanations.zUse 'Ctrl' to zoomz	ctrl-zoomN)r7   page_imagesadd_section_titler   add_adj	adj_width
adj_heightadd_colorbtnadd_section_separatoradd_helpadd_radio_flowbox
add_switch)r)   
alpha_dict	zoom_helps      r1   r&   z!DrPrefsWindow.page_builder_imagesV   sl   (() <),,q!?DNNC,,q!"$4dooFAo&7?+,--BC
 D EE F  gJgJ<	l

 * *56#FGIJK)--	//!();7r2   c                 @   | j                  | j                         | j                  t        d             | j	                  t        d      d       | j	                  t        d      d       | j                          | j                  t        d             | j                  t        d             t        d      t        d	      t        d
      t        d      t        d      t        d      t        d      t        d      t        d      d	}| j                  d|       y)z0Adds the widget to the grid of the 'tools' page.
AppearancezShow tools nameszshow-labelszUse big iconsz	big-iconszAdditional toolszeThese tools are not as reliable and useful as they should be, so they are not all enabled by default.EraserHighlighterBrushPointszFree selectionzColor selectionzColor PickerPaintSkew)	eraser	highlightbrushpointsfree_selectcolor_selectpickerpaintskewzdisabled-toolsN)r7   
page_toolsrI   r   rQ   rN   rO   add_check_flowbox)r)   
tools_dicts     r1   r'   z DrPrefsWindow.page_builder_toolsy   s    ( <)//!&'7//!O$k2-./-- C D E x[- gJx[$%&'~gJV9
* ):6r2   c           
         | j                  | j                         | j                  t        d             | j	                  t        d      d| j
                         |r| j                  t        d      d       n| j                  j                  dd       | j                  t        d      d       | j                  t        d	      d
       | j                          | j                  t        d             | j                  t        d             t        d      t        d      t        d      t        d      t        d      t        d      t        d      t        d      d}| j                  d|       y)z3Adds the widget to the grid of the 'advanced' page.zAdvanced optionszPreview sizezpreview-sizezDevelopment featuresz
devel-onlyFzBackground colorzui-background-rgbazPrefer dark theme variantzdark-theme-variantLayoutz%The recommended value is "Automatic".	AutomaticCompactzelementary OSLegacyzLegacy (symbolic icons)zMenubar onlyzToolbar onlyzToolbar only (symbolic icons)) hghemtcmtsmtctsz	deco-typeN)r7   page_advancedrI   r   rJ   adj_previewrQ   
_gsettingsset_booleanrM   rN   rO   rP   )r)   r*   layouts_dicts      r1   r(   z#DrPrefsWindow.page_builder_advanced   s.   **+ -./,,q .$2B2BC??1+,l;??|U3A()+?@//!/02FG 8%--;<= 	~	
9	
?	 H+ %
&	.	
>		
*	+," l3r2   c                 J    | j                  t        j                                y N)attach_larger   	Separatorr9   s    r1   rN   z#DrPrefsWindow.add_section_separator   s    CMMO$r2   c                     t        j                  t         j                  j                  dd|z   dz         }| j	                  |       y )NTz<b>z</b>)r   
use_markuplabel)r   Labelr   STARTr|   )r)   
label_textr   s      r1   rI   zDrPrefsWindow.add_section_title   s8    
))399??t-2Z-?&-HK%Er2   c                    t         j                  j                  dt         j                  j                        }|j                  t         j                  j                         |j                  t         j                  j                         |j                  d       t        j                  |      }|j                  d       |j                         j                  d       t        j                   t         j"                  j$                  d      }|j'                  |ddd	
       |j)                  |ddd	
       |j+                          | j-                  |       y )Nzhelp-faq-symboliczapp.help_prefsr   Tz	dim-label
   )orientationspacingFr   )expandfillpadding)r   Buttonnew_from_icon_nameIconSizeBUTTON
set_valignr   r   
set_reliefReliefStyleNONEset_action_namer   set_line_wrapr$   r%   BoxOrientation
HORIZONTALr#   pack_endshow_allr|   )r)   r   help_btnr   boxs        r1   rO   zDrPrefsWindow.add_help   s    ZZ**+>69ll6I6IK(
cii&&'
coo**+
+,
))*
%%d%%k2COO66C#..u5!.<,,xE1,=,,.Cr2   c                 T    t        j                  |      }| j                  ||       y )Nr   )r   r   
attach_two)r)   r   widgetr   s       r1   add_rowzDrPrefsWindow.add_row   s    
))*
%%//% r2   c                     t        j                         }|j                  | j                  j	                  |             |j                  d| j                  |       | j                  ||       y )Nznotify::active)r   Switch
set_activerw   get_booleanconnecton_bool_changedr   )r)   r   keyswitchs       r1   rQ   zDrPrefsWindow.add_switch   sO    ::<&DOO//45..!4#7#7=,,z6"r2   c                    t        j                  d      }| j                  j                  |      }t	        |d         }t	        |d         }t	        |d         }t	        |d         }t        j                  ||||      }	|j                  |	       |j                  d| j                  |       | j                  ||       y )	NT)	use_alphar   r         )redgreenbluealphaz	color-set)r   ColorButtonrw   get_strvfloatr   RGBAset_rgbar   on_colorbtn_changedr   )
r)   r   r   	color_btnbackground_rgbargbacolors
             r1   rM   zDrPrefsWindow.add_colorbtn   s    oo-)OO,,S1/OA!OA!OA!OA!
((q
3%UK!9!93?,,z9%r2   c                     t        j                  |      }|j                  | j                  j	                  |             t        |dd       |j                  d| j                  |       | j                  ||       y )N)
adjustment   pxzvalue-changed)	r   
SpinButton	set_valuerw   get_intr   r   on_adj_changedr   )r)   r   r   adjspinbtns        r1   rJ   zDrPrefsWindow.add_adj   s]    NNc*'	DOO++C01D1	///4#6#6<,,z7#r2   c                    t        j                  t         j                  j                  d      }d| _        d }|D ]*  }| j                  ||   |||      }|j                  |       , d| _        | j                  |       y )NTselection_moder   F)r   FlowBoxSelectionModer   _radio_are_activebuild_radio_btnaddr|   )r)   setting_keylabels_dictflowboxw0id0s         r1   rP   zDrPrefsWindow.add_radio_flowbox   sx    KKs'8'8'='=dK' $" c[-sKD2
;;r?  $Gr2   c                     t        j                  |d|      }| j                  j                  |      }|j	                  ||k(         |j                  d| j                  ||       |S )NT)r   r   grouptoggled)r   RadioButtonrw   
get_stringr   r   on_radio_btn_changed)r)   r   btn_idr   r   btn	active_ids          r1   r   zDrPrefsWindow.build_radio_btn  sV    eT?#oo((-)..9$%++i22C@	*r2   c                     t        j                  t         j                  j                  d      }|D ])  }| j	                  ||   ||      }|j                  |       + | j                  |       y )NTr   )r   r   r   r   build_check_btnr   r|   )r)   r   r   r   r   r   s         r1   rf   zDrPrefsWindow.add_check_flowbox
  sa    KKs'8'8'='=dK' c[-sK@2
;;r? Gr2   c                     t        j                  |d      }| j                  j                  |      }|j	                  ||v       |j                  d| j                  ||       |S )NT)r   r   r   )r   CheckButtonrw   r   r   r   on_check_btn_changed)r)   r   row_idr   r   array_of_stringss         r1   r   zDrPrefsWindow.build_check_btn  sV    eT2#__--c2..//0++i22C@	*r2   c                 X    | j                   j                  ||j                                y r{   )rw   rx   
get_active)r)   r   stater   s       r1   r   zDrPrefsWindow.on_bool_changed  s    //c6#4#4#67r2   c                 X    | j                   j                  ||j                                y r{   )rw   set_intget_value_as_int)r)   r   r   s      r1   r   zDrPrefsWindow.on_adj_changed  s    //#w779:r2   c                     | j                   j                  |      }|j                         r|j                  |       n|j	                  |       | j                   j                  ||       y r{   )rw   r   r   removeappendset_strv)r)   checkbtnr   r   r   s        r1   r   z"DrPrefsWindow.on_check_btn_changed!  sT    __--c26"6"//3 01r2   c                 V    | j                   r| j                  j                  ||       y y r{   )r   rw   
set_string)r)   radiobtnr   r   s       r1   r   z"DrPrefsWindow.on_radio_btn_changed)  s$    	??c6* r2   c                     |j                         }t        |j                        t        |j                        t        |j                        t        |j
                        g}| j                  j                  ||       y r{   )get_rgbastrr   r   r   r   rw   r   )r)   r   r   ccolor_arrays        r1   r   z!DrPrefsWindow.on_colorbtn_changed-  sR    !QUUS\3qvv;AGGE+//3,r2   c                    |j                  t        j                  j                         |j                  t        j                  j                         |j                  d       |j                  d       | j                  j                  |d| j                  dd       | j                  j                  |d| j                  dd       | j                          y )NTr   r   )

set_halignr   r   ENDr   set_visibler4   attachr5   r:   )r)   widget1widget2s      r1   r   zDrPrefsWindow.attach_two5  s    	SYY]]#	SYY__%	d	dGQ(=(=q!DGQ(=(=q!Dr2   c                     |j                  d       | j                  j                  |d| j                  dd       | j	                          y )NTr   r   r   )r   r4   r   r5   r:   )r)   r   s     r1   r|   zDrPrefsWindow.attach_large>  s>    TFAt'<'<aCr2   ).__name__
__module____qualname____gtype_name__r   TemplateChildr"   r   rH   re   ru   rK   rL   rv   r4   r5   r   Settingsnewrw   r   r7   r:   r&   r'   r(   rN   rI   rO   r   rQ   rM   rJ   rP   r   rf   r   r   r   r   r   r   r   r|   __classcell__)r0   s   @r1   r
   r
      s3   !""$				||!!#ll  "##%\\!ll  "||!!#ll=>&J4
!8F78)4\%
"!#
&$8;2+-r2   r
   N)	gi.repositoryr   r   r   utilities_unitsr   r  Windowr
   r   r2   r1   <module>r     s=   $ ( ' :MNkCJJ k Okr2   