
    	iV                     j    d dl mZ d dlmZ ddlmZ  G d d          Z G d dej                  Zd	S )
    )CommentType)Image   )	xmlwriterc                   D    e Zd ZdZ	 ddedededededed	dfd
ZdddZdS )
ButtonTypez?
    A class to represent a button in an Excel worksheet.

    Nrowcolheightwidthbutton_numberoptionsreturnc                     || _         || _        || _        || _        d| d| _        d| | _        d| _        d| _        d| _        d| _	        d| _
        g | _        |                     |           dS )a  
        Initialize a ButtonType instance.

        Args:
            row (int): The row number of the button.
            col (int): The column number of the button.
            height (int): The height of the button.
            width (int): The width of the button.
            button_number (int): The button number.
            options (dict): Additional options for the button.
        z
[0]!Button_ClickzButton Nr   r   )r	   r
   r   r   macrocaptiondescriptionx_scaley_scalex_offsety_offsetvertices_set_user_options)selfr	   r
   r   r   r   r   s          F/srv/django_bis/venv311/lib/python3.11/site-packages/xlsxwriter/vml.py__init__zButtonType.__init__   s    ( 
7-777
000 	w'''''    c                    |dS |                     d| j                  | _        |                     d| j                  | _        |                     d| j                  | _        |                     d| j                  | _        |                     d| j                  | _        |                     d| j                  | _        |                     d          rd	|d         z   | _        |                     d
          r| j        |d
         z  | _        |                     d          r| j        |d         z  | _        t          d| j        z             | _        t          d| j        z             | _        dS )zh
        This method handles the additional optional parameters to
        ``insert_button()``.
        Nr   r   r   r   r   r   r   z[0]!r   r   g      ?)	getr   r   r   r   r   r   r   int)r   r   s     r   r   zButtonType._set_user_optionsC   sE   
 ?F [[$*55
kk(DK88{{9dl;;J>>J>>";;}d6FGG ;;w 	3''"22DJ ;;y!! 	9gi&88DJ;;y!! 	;+	(::DK tz)**
#+,,r   Nr   N)__name__
__module____qualname____doc__r!   dictr   r    r   r   r   r      s          %( %(%( %( 	%(
 %( %( %( 
%( %( %( %(N- - - - - - -r   r   c                      e Zd ZdZ	 	 	 d2	 d3dZd Zd3dZd3dZd3dZd3d	Z	d3d
Z
d3dZd3dZd3dZd3dZd3dZd3dZd3dZd3dZdeddfdZdeddfdZdeddfdZd3dZd3dZd3dZd3dZdeddfdZd4dededdfd Zdeddfd!Z deddfd"Z!d3d#Z"d3d$Z#d3d%Z$d3d&Z%d3d'Z&d3d(Z'd3d)Z(d3d*Z)d3d+Z*d3d,Z+d3d-Z,d3d.Z-d3d/Z.d3d0Z/d3d1Z0dS )5Vmlz8
    A class for writing the Excel XLSX Vml file.


    Nr   c                    d}|                                   |                     |           |r:|                                  |D ]#}|dz  }|                     |||           |dz  }$|r:|                                  |D ]#}|dz  }|                     |||           |dz  }$|r<|                                  d}	|D ]#}
|dz  }|                     ||	|
           |	dz  }	$|                     d           | 	                                 d S )Nr   xml)
_write_xml_namespace_write_shapelayout_write_button_shapetype_write_button_shape_write_comment_shapetype_write_comment_shape_write_image_shapetype_write_image_shape_xml_end_tag
_xml_close)r   data_idvml_shape_idcomments_databuttons_dataheader_imagesz_indexbuttoncommentindeximages              r   _assemble_xml_filezVml._assemble_xml_filew   sd    !!### 	((( 	((***&  !((wGGG1 	))+++(  !)),III1 		'')))E&  !''eUCCC
%    	r   c                 T    |dd         \  }}}}|dz  }|dz  }|dz  }|dz  }||||fS )N            ?r)   )r   r   lefttopr   r   s         r   _pixels_to_pointszVml._pixels_to_points   sO     $,AbD> c5& 	t$S%''r   c                 j    d}|dz   }|dz   }|dz   }d|fd|fd|fg}|                      d|           d S )	Nzurn:schemas-microsoft-com:vmlzoffice:officezoffice:excelzxmlns:vzxmlns:ozxmlns:xr-   )_xml_start_tag)r   schemaxmlnsxmlns_oxmlns_x
attributess         r   r.   zVml._write_xml_namespace   sc    -?*>)   

 	E:.....r   c                     dg}|                      d|           |                     |           |                     d           d S )Nv:exteditzo:shapelayout)rL   _write_idmapr6   r   r8   rQ   s      r   r/   zVml._write_shapelayout   sP    '(
OZ888 	'"""/*****r   c                 >    dd|fg}|                      d|           d S )NrS   datazo:idmap_xml_empty_tagrW   s      r   rV   zVml._write_idmap   s4     W


 	Iz22222r   c                     d}d}d}d}d|fd|fd|fd|fg}|                      d	|           |                                  |                     d
d           |                     d	           d S )N_x0000_t20221600,21600   m,l,21600r21600,l21600,xeid	coordsizeo:sptpathv:shapetypetrect)rL   _write_stroke_write_comment_pathr6   r   shape_idrb   sptrd   rQ   s         r   r2   zVml._write_comment_shapetype   s     !	* 8)$cNTN	

 	M:666 	 	  f----(((((r   c                     d}d}d}d}d|fd|fd|fd|fg}|                      d	|           |                                  |                                  |                                  |                     d	           d S )
N_x0000_t201r^      r`   ra   rb   rc   rd   re   )rL   rh   _write_button_path_write_shapetype_lockr6   rj   s         r   r0   zVml._write_button_shapetype   s     !	* 8)$cNTN	

 	M:666 	 	!!! 	""$$$-(((((r   c                 F   d}d}d}d}d}d}d}d|fd|fd	|fd
|fd|fd|fd|fg}|                      d|           |                                  |                                  |                                  |                                  |                     d           d S )N
_x0000_t75r^   K   rf   zm@4@5l@4@11@9@11@9@5xefra   rb   rc   zo:preferrelativerd   filledstrokedre   )rL   rh   _write_formulas_write_image_path_write_aspect_ratio_lockr6   )	r   rk   rb   rl   o_preferrelativerd   rv   rw   rQ   s	            r   r4   zVml._write_image_shapetype  s    !	' 8)$cN!12TNv 

 	M:666 	 	 	    	%%'''-(((((r   c                 @    d}d|fg}|                      d|           d S )Nmiter	joinstylezv:strokerZ   )r   r~   rQ   s      r   rh   zVml._write_stroke7  s0    	"I./
J
33333r   c                     g }|r|                     d           |                     d|f           |                     d|           d S )N)gradientshapeokrf   o:connecttypev:path)appendr[   )r   r   connecttyperQ   s       r   ri   zVml._write_comment_path?  sY    
 	86777?K8999Hj11111r   c                 h    d}d}d}d}d}d|fd|fd|fd|fd|fg}|                      d|           d S )	Nru   rg   shadowoko:extrusionokstrokeokfillokr   r   rZ   )r   r   extrusionokr   r   r   rQ   s          r   rp   zVml._write_button_pathJ  sj     "k*"vk*

 	Hj11111r   c                 T    d}d}d}d|fd|fd|fg}|                      d|           d S )Nru   rf   rg   r   r   r   r   rZ   )r   r   r   r   rQ   s        r   ry   zVml._write_image_path\  sP     k*0k*

 	Hj11111r   c                 J    d}d}d|fd|fg}|                      d|           d S )NrU   rf   rT   	shapetypeo:lockrZ   )r   extr   rQ   s       r   rq   zVml._write_shapetype_lockj  sB    	 cN)$


 	Hj11111r   c                 J    d}d}d|fd|fg}|                      d|           d S )NrU   rf   rT   rotationr   rZ   )r   r   r   rQ   s       r   _write_rotation_lockzVml._write_rotation_lockv  sB     cN"


 	Hj11111r   c                 J    d}d}d|fd|fg}|                      d|           d S )NrU   rf   rT   aspectratior   rZ   )r   r   r   rQ   s       r   rz   zVml._write_aspect_ratio_lock  sB     cNK(


 	Hj11111r   r?   c                 *   d}d}d}dt          |          z   }|                     |j                  \  }}}	}
|j        rd}d|dd|dd	|	dd
|
dd| d| }d|fd|fd|fd|j                                        fd|fg}|                     d|           |                                  |                                  | 	                    d d           | 
                                 |                     |           |                     d           d S )Nz#_x0000_t202autohidden_x0000_svisibleposition:absolute;margin-left:.15gpt;margin-top:	pt;width:
pt;height:pt;z-index:z;visibility:ra   typestyle	fillcoloro:insetmodev:shapenone)strrI   r   
is_visiblecolor_vml_rgb_hex_valuerL   _write_comment_fill_write_shadowri   _write_comment_textbox_write_comment_client_datar6   )r   rk   r=   r?   
shape_type	insetmode
visibilityrG   rH   r   r   r   rQ   s                r   r3   zVml._write_comment_shape  s   #
	
 H-%)%;%;G<L%M%M"sE6  	#"J')' ''' ' $' ' &	' '
 ' ' %' ' 	 8Z e'-::<<=I&

 	Iz222 	  """ 	 	  v... 	##%%% 	''000)$$$$$r   r>   c                    d}dt          |          z   }|                     |j                  \  }}}}d|dd|dd|dd|dd| d	}	d
|fd|fg}
|j        |
                    d|j        f           |
                    d|	f           |
                    d           |
                    d           |
                    d           |
                    d           |                     d|
           |                                  |                                  |                     |           | 	                    |           | 
                    d           d S )Nz#_x0000_t201r   r   r   r   r   r   r   z;mso-wrap-style:tightra   r   altr   )zo:buttonrf   )r   buttonFace [67])strokecolorzwindowText [64])r   r   r   )r   rI   r   r   r   rL   _write_button_fillr   _write_button_textbox_write_button_client_datar6   )r   rk   r=   r>   r   rG   rH   r   r   r   rQ   s              r   r1   zVml._write_button_shape  s   #
 H-%)%;%;FO%L%L"sE6$)$ $'$ $ $$ $ &	$ $
 $ $ $ 	 8Z 


 )uf&89:::7E*++++,,,:;;;<===1222Iz222 	!!! 	!!### 	""6*** 	&&v...)$$$$$r   rA   c                    d}dt          |          z   }|j        }|j        }|j        }|j        }|j        }	|j        }
|j        }|dz  |z  }|	dz  |z  }	dt          |dz  dz  dz             z  }dt          |	dz  dz  dz             z  }	d|d	d
|	d	d| }d|fd|fd|fd|fg}| 	                    d|           | 
                    |
|           |                                  |                     d           d S )Nz#_x0000_t75r   g      R@rF   g      X@H   g      ?z3position:absolute;margin-left:0;margin-top:0;width:r   r   r   ra   zo:spidr   r   r   )r   
image_name_width_x_dpi_y_dpi_height_ref_id_header_positionr!   rL   _write_imagedatar   r6   )r   rk   r=   rA   r   namer   x_dpiy_dpir   ref_idpositionr   rQ   s                 r   r5   zVml._write_image_shape  sr   "
 H- ) u$$& Cr 1D 8999S$!3d!:;;;! $! ! &	! !
 ! ! 	 8x Z e	

 	Iz222 	fd+++ 	!!###)$$$$$r   c                 @    d}d|fg}|                      d|           d S )Nz#ffffe1color2v:fillrZ   )r   color_2rQ   s      r   r   zVml._write_comment_fill%  s0    )*
Hj11111r   c                 J    d}d}d|fd|fg}|                      d|           d S )Nr   rf   r   zo:detectmouseclickr   rZ   )r   r   detectmouseclickrQ   s       r   r   zVml._write_button_fill-  sE    # w!#34


 	Hj11111r   c                 T    d}d}d}d|fd|fd|fg}|                      d|           d S )Nrf   blackonr   obscuredzv:shadowrZ   )r   r   r   r   rQ   s        r   r   zVml._write_shadow9  sO     2Je"

 	J
33333r   c                     d}d|fg}|                      d|           |                     d           |                     d           d S )Nmso-direction-alt:autor   	v:textboxrG   )rL   
_write_divr6   )r   r   rQ   s      r   r   zVml._write_comment_textboxG  sX    (&'
K444 	+&&&&&r   c                     d}d|fdg}|                      d|           |                     d|j                   |                     d           d S )Nr   r   )zo:singleclickru   r   center)rL   r   r   r6   )r   r>   r   rQ   s       r   r   zVml._write_button_textboxT  s_    (&(>?
K444 	&.111+&&&&&r   alignr   c                     d|z   }d|fg}|                      d|           |r|                     |           |                     d           d S )Nztext-align:r   div)rL   _write_button_fontr6   )r   r   r   r   rQ   s        r   r   zVml._write_diva  sg     %&'
E:... 	-##G,,,%     r   c                 V    d}d}d}d|fd|fd|fg}|                      d||           d S )NCalibri   z#000000facesizer   font_xml_data_element)r   r   r   r   r   rQ   s         r   r   zVml._write_button_fonto  sP     TNTNe

 	vw
;;;;;r   c                    d}d|fg}|                      d|           |                                  |                                  |                     |j                   |                                  |                     |j                   |                     |j	                   |j
        r|                                  |                     d           d S )NNote
ObjectTypex:ClientData)rL   _write_move_with_cells_write_size_with_cells_write_anchorr   _write_auto_fill
_write_rowr	   _write_columnr
   r   _write_visibler6   )r   r?   object_typerQ   s       r   r   zVml._write_comment_client_data}  s    #[12
NJ777 	##%%% 	##%%% 	7+,,, 	 	$$$ 	7;'''  	"!!!.)))))r   c                 r   d}d|fg}|                      d|           |                     |j                   |                                  |                                  |                     |j                   |                                  |                                  | 	                    d           d S )NButtonr   r   )
rL   r   r   _write_print_objectr   _write_fmla_macror   _write_text_halign_write_text_valignr6   )r   r>   r   rQ   s       r   r   zVml._write_button_client_data  s    #[12
NJ777 	6?+++ 	  """ 	 	v|,,, 	!!! 	!!!.)))))r   c                 0    |                      d           d S )Nzx:MoveWithCellsrZ   r   s    r   r   zVml._write_move_with_cells      -.....r   c                 0    |                      d           d S )Nzx:SizeWithCellsrZ   r   s    r   r   zVml._write_size_with_cells  r   r   c                 0    |                      d           d S )Nz	x:VisiblerZ   r   s    r   r   zVml._write_visible  s    K(((((r   c                     |d d         \  }}}}}}}}	||||||||	g}
d |
D             }
d                     |
          }|                     d|           d S )NrD   c                 ,    g | ]}t          |          S r)   )r   ).0is     r   
<listcomp>z%Vml._write_anchor.<locals>.<listcomp>  s    +++a3q66+++r   z, zx:Anchor)joinr   )r   r   	col_start	row_startx1y1col_endrow_endx2y2stringsrY   s               r   r   zVml._write_anchor  sv    CKBQB<@Ir2wRb)R"grJ++7+++yy!!z400000r   c                 6    d}|                      d|           d S )NFalsez
x:AutoFillr   r   rY   s     r   r   zVml._write_auto_fill  s#    |T22222r   c                 2    |                      d|           d S )Nzx:Rowr   r  s     r   r   zVml._write_row  s    w-----r   c                 2    |                      d|           d S )Nzx:Columnr   r  s     r   r   zVml._write_column  s    z400000r   c                 2    |                      dd           d S )Nzx:PrintObjectr
  r   r   s    r   r   zVml._write_print_object  s    88888r   c                 2    |                      dd           d S )Nzx:TextHAlignCenterr   r   s    r   r   zVml._write_text_halign      ~x88888r   c                 2    |                      dd           d S )Nzx:TextVAlignr  r   r   s    r   r   zVml._write_text_valign  r  r   c                 2    |                      d|           d S )Nzx:FmlaMacror   r  s     r   r   zVml._write_fmla_macro  s    }d33333r   c                 b    ddt          |          z   fd|fg}|                     d|           d S )Nzo:relidrIdzo:titlezv:imagedata)r   r[   )r   r   o_titlerQ   s       r   r   zVml._write_imagedata  sD     F+, 


 	M:66666r   c                 R   |                      d           |                     d           |                     d           |                     d           |                     d           |                     d           |                     d           |                     d           |                     d	           |                     d
           |                     d           |                     d           |                     d           |                     d           d S )Nz
v:formulaszif lineDrawn pixelLineWidth 0z
sum @0 1 0z
sum 0 0 @1zprod @2 1 2zprod @3 21600 pixelWidthzprod @3 21600 pixelHeightz
sum @0 0 1zprod @6 1 2zprod @7 21600 pixelWidthzsum @8 21600 0zprod @7 21600 pixelHeightzsum @10 21600 0)rL   _write_formular6   r   s    r   rx   zVml._write_formulas  s)   L))) 	;<<<L)))L)))M***67777888L)))M***6777,---7888-...,'''''r   c                 <    d|fg}|                      d|           d S )Neqnzv:frZ   )r   r  rQ   s      r   r  zVml._write_formula  s)    cl^
E:.....r   )NNNr#   r"   )1r$   r%   r&   r'   rB   rI   r.   r/   rV   r2   r0   r4   rh   ri   rp   ry   rq   r   rz   r   r3   r   r1   r   r5   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rx   r  r)   r   r   r+   r+   k   s         2 
2 2 2 2h( ( ($/ / / /	+ 	+ 	+ 	+3 3 3 3) ) ) )0) ) ) )6") ") ") ")H4 4 4 4	2 	2 	2 	22 2 2 2$2 2 2 2
2 
2 
2 
2
2 
2 
2 
2
2 
2 
2 
22%{ 2%t 2% 2% 2% 2%h/%Z /%D /% /% /% /%b0%5 0%T 0% 0% 0% 0%d2 2 2 2
2 
2 
2 
24 4 4 4' ' ' ''J '4 ' ' ' '! ! !c !T ! ! ! !<# <$ < < < <*+ *$ * * * *@* * * *8/ / / // / / /) ) ) )	1 	1 	1 	13 3 3 3. . . .1 1 1 19 9 9 99 9 9 99 9 9 94 4 4 47 7 7 7( ( ( ((/ / / / / /r   r+   N)	xlsxwriter.commentsr   xlsxwriter.imager    r   r   	XMLwriterr+   r)   r   r   <module>r     s    , + + + + + " " " " " "      K- K- K- K- K- K- K- K-jd
/ d
/ d
/ d
/ d
/)
 d
/ d
/ d
/ d
/ d
/r   