
    cc                        d dl Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z(  G d d      Z)y)    N   )ToolArc)	ToolBrush)
ToolEraser)ToolExperiment)ToolHighlighter)ToolLine)	ToolPaint)
ToolPencil)
ToolPicker)
ToolPoints)	ToolShape)ToolText)ToolRectSelect)ToolFreeSelect)ToolColorSelect)ToolCrop)ToolFilters)
ToolRotate)	ToolScale)ToolSkewc                   $    e Zd Zd Zd Zd Zd Zy)DrToolsInitializerc                      || _         i | _        y )N)_window_tools)selfwindows     ;/usr/lib/python3/dist-packages/drawing/tools_initializer.py__init__zDrToolsInitializer.__init__    s    $,$+    c                    | j                  dt        ||       | j                  dt        ||       | j                  dt        ||       | j                  dt        ||       | j                  dt
        ||       | j                  dt        ||       | j                  dt        ||       | j                  dt        ||       | j                  d	t        ||       | j                  d
t        ||       | j                  dt        ||       | j                  dt        ||       | j                  dt        ||       | j                  dt        ||       |r| j                  dt        ||       | j                  dt         ||       | j                  dt"        ||       | j                  dt$        ||       | j                  dt&        ||       | j                  dt(        ||       | j+                          | j,                  S )Npencilbrusheraser	highlighttextpointsrect_selectfree_selectlinearcshapepickercolor_selectpaint
experimentcropscalerotateskewfilters)
_load_toolr   r   r   r   r   r   r   r   r	   r   r   r   r   r
   r   r   r   r   r   r   _add_auto_mnemonicsr   )r   devdisabled_toolss      r   load_all_toolsz!DrToolsInitializer.load_all_tools$   s    //(J<//'9nc://(J<//+D//&(NC8//(J<//-E//-E//&(NC8//%.#6//'9nc://(J<//./>3G//'9nc:??<E//&(NC8//'9nc://(J<//&(NC8//)[.#>	r!   c                     ||vr!	  || j                         | j                  |<   yy# t        $ rE}| j                   j                  t	        d      |z         t        j                          Y d}~yd}~ww xY w)zGiven its id and its python class, this method tries to load a tool,
		and show an error message if the tool initialization failed.zFailed to load tool: %sN)r   r   	Exceptionreveal_action_report_	traceback	print_exc)r   tool_id
tool_classr:   r9   errs         r   r7   zDrToolsInitializer._load_toolB   sk     N"%dll3DKK #  LL%%a(A&BW&LMs   ' 	A5;A00A5c                 6   g d}| j                   D ]  }||vst        d|z   dz           i }|D ]  }|| j                   vrd}|dk\  s|t        | j                   |   j                        k(  rd}.| j                   |   j                  |   }|dz  }|j	                         rG|j                         |j                         vr'|j                         |j                         vr|||<   d}|dk\  r |D ]#  }| j                   |   j                  ||          % y )N)r#   r'   r)   r2   r3   r4   r-   r6   r+   r&   r,   r.   r$   r*   r%   r5   r0   r/   r(   r1   z	Warning: zwill not have a mnemonicr   r   )	r   printlenlabelisalphauppervalueslowerset_mnemonics)r   sorted_toolsrB   underlined_charsletter_indexith_chars         r   r8   z&DrToolsInitializer._add_auto_mnemonicsM   s;   ,,  >g\!	+
"<
<=>  gT[[ <		s4;;w/5566\{{7#)),7HAL 0 7 7 99 0 7 7 99!)g\ 
		" " Ag;;w%%&6w&?@Ar!   N)__name__
__module____qualname__r    r;   r7   r8    r!   r   r   r      s    <	1Ar!   r   )*r@   tool_arcr   
tool_brushr   tool_eraserr   tool_experimentr   tool_highlightr   	tool_liner	   
tool_paintr
   tool_pencilr   tool_pickerr   tool_pointsr   
tool_shaper   	tool_textr   select_rectr   select_freer   select_colorr   	tool_cropr   tool_filtersr   tool_rotater   
tool_scaler   	tool_skewr   r   rV   r!   r   <module>rk      sT      ! # + +  ! # # # !  ' ' )  % # ! `A `Ar!   