
    ccB                     6    d dl Z d dlZddlmZ  G d de      Zy)    N   )AbstractClassicToolc                   f     e Zd Zd Z fdZd Zd Zd Zd Zd Z	d Z
d Zdd	Zd
 Zd Zd Z xZS )
ToolPointsc                 Z   t         |   dt        d      d|       | j                  dd       | j	                  dd       | j                  d| j                         | j                  d	| j                         | j                  d
| j                         d| _	        | j                          y )NpointsPointsztool-points-symbolicpoints_typecrosspoints_numberFpoints_reset_numpoints_inc_numpoints_dec_numr   )super__init___add_tool_action_enumadd_tool_action_booleanadd_tool_action_simple_reset_number_increment_number_decrement_number_next_number_set_active_type)selfwindowkwargs	__class__s      5/usr/lib/python3/dist-packages/drawing/tool_points.pyr   zToolPoints.__init__   s     '8Qx[*@&IM7360$2D2DE.0F0FG.0F0FG$    c                    | j                  d      }|dk(  rt        d      | _        n<|dk(  rt        d      | _        n&|dk(  rt        d      | _        nt        d      | _        || _        | j                  d	      | _        | j                  d
| j                         | j                  d| j                         | j                  d| j                         y )Nr
   r   Crossx-crosszX-shaped crosssquareSquareCircler   r   r   r   )get_option_valuer   _shape_label_points_type_use_numberset_action_sensitivity)r   state_as_strings     r   r   zToolPoints._set_active_type)   s    ))-8/z4)#)*4("{4{4%$**?;$0$2B2BC.0@0@A.0@0@Ar    c                 F    d| _         | j                  j                          y Nr   r   r   set_window_subtitlesr   argss     r   r   zToolPoints._reset_number:   s    $++""$r    c                 b    | xj                   dz  c_         | j                  j                          y r.   r/   r1   s     r   r   zToolPoints._increment_number>   #    q++""$r    c                 b    | xj                   dz  c_         | j                  j                          y r.   r/   r1   s     r   r   zToolPoints._decrement_numberB   r4   r    c                     t        d      S )NzPoints options)r   )r   s    r   get_options_labelzToolPoints.get_options_labelF   s    	
	r    c                     | j                          | j                  dz   | j                  z   }| j                  r|dt	        d      | j
                  z  z   z  }|gS )Nz - zNext number: %s)r   labelr(   r*   r   r   )r   r9   s     r   get_editing_tipszToolPoints.get_editing_tipsI   sW    
**u
t00
0%	EA'(4+<+<<<<5
.r    c                 >    | j                  |j                  ||       y N)set_common_valuesbutton)r   eventsurfaceevent_xevent_ys        r   on_press_on_areazToolPoints.on_press_on_areaS   s    w8r    c                 P    |r$| j                  ||      }| j                  |       y y r<   )build_operationdo_tool_operation)r   r?   r@   rA   rB   render	operations          r   on_motion_on_areazToolPoints.on_motion_on_areaV   s*    ##GW59)$ r    c                     | j                  ||      }| j                  |       | j                  r| j                          y y r<   )rE   apply_operationr*   r   )r   r?   r@   rA   rB   rH   s         r   on_release_on_areazToolPoints.on_release_on_area[   s<    ""7G4)y!	 r    c           
          | j                   r| j                  }nd }| j                  | j                  | j                  | j
                  | j                  | j                  |||d	}|S )N)	tool_idrgbargba2	antialias
line_width
point_typenumberxy)r*   r   id
main_colorsecondary_color_use_antialias
tool_widthr)   )r   rA   rB   rT   rH   s        r   rE   zToolPoints.build_operationc   sc    	66gg??  ##""
) 
r    c           	      z   | j                  |      }|j                  t        j                  j                          |j
                  |d     |d   }t        dt        |dz              }t        dt        |dz              }|j                  |       |d   }|d   }|d   }|d	k(  r7|j                  |||d
dt        j                  z         |j                          n|dk(  rU|j                  |||z
         |j                  |||z          |j                  ||z
  |       |j                  ||z   |       n|dk(  ra|j                  ||z
  ||z
         |j                  ||z   ||z          |j                  ||z   ||z
         |j                  ||z
  ||z          n;|j                  |       |j                  |||z
         |j                  |||z          |j                          |d   }	|	y |j!                  t        dt        |dz                     |	dk  r||z
  }
n|	dk  r	||dz  z
  }
n||dz  z
  }
||z   }dD ];  }dD ]4  }|j                  |
|z   ||z          |j#                  t%        |	             6 =  |j
                  |d     |j                  |
|       |j#                  t%        |	             y )NrO   rR   r         rU   rV   rS   circleg        r   r#   rT   g?
   d      )r   rP   )start_tool_operationset_line_capcairoLineCapBUTTset_source_rgbamaxintset_line_widtharcmathpifillmove_toline_tostrokeset_font_size	show_textstr)r   rH   cairo_contextpoint_widthrR   
half_widthrU   rV   rS   rT   num_xnum_ydxdys                 r   rF   zToolPoints.do_tool_operationu   s   ++I6-U]]//0-6!23,'+1c+/*+*1c+/*+*z*n!n!&*8Q:sAK8WA
N+A
N+Z+Z+YZZ8ZZ8ZZ8ZZ8,A
N+A
N+ X&^	 c!Ss):%;<= b[z>5|zA~5zA~5
j.%  )b )r%"*ebj1CK())  -7!34 u%#f+&r    )T)__name__
__module____qualname____gtype_name__r   r   r   r   r   r7   r:   rC   rI   rL   rE   rF   __classcell__)r   s   @r   r   r      sF    "B"%%%9%
$B'r    r   )rf   rn   abstract_classic_toolr   r    r    r   <module>r      s   $  6b'$ b'r    