
    fL                     8    d dl mZ  G d dej                  ZdS )   )	xmlwriterc                   "    e Zd ZdZ fdZ	 	 	 d-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.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 )/Vmlz8
    A class for writing the Excel XLSX Vml file.


    c                 V    t          t          |                                            dS )z
        Constructor.

        N)superr   __init__)self	__class__s    P/var/www/ffwdstore.be/apps/py-env/lib/python3.11/site-packages/xlsxwriter/vml.pyr   zVml.__init__   s'     	c4!!#####    Nc                    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_dataz_indexbuttoncommentindeximages              r   _assemble_xml_filezVml._assemble_xml_file'   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	   verticeslefttopwidthheights         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_namespacem   sc    -?*>)   

 	E:.....r   c                     dg}|                      d|           |                     |           |                     d           d S )Nv:exteditzo:shapelayout)r1   _write_idmapr   r	   r   r6   s      r   r   zVml._write_shapelayout|   sP    '(
OZ888 	'"""/*****r   c                 >    dd|fg}|                      d|           d S )Nr8   datazo:idmap_xml_empty_tagr<   s      r   r;   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)r1   _write_stroke_write_comment_pathr   r	   shape_idrG   sptrI   r6   s         r   r   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_t201rC      rE   rF   rG   rH   rI   rJ   )r1   rM   _write_button_path_write_shapetype_lockr   rO   s         r   r   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_t75rC   K   rK   zm@4@5l@4@11@9@11@9@5xefrF   rG   rH   zo:preferrelativerI   filledstrokedrJ   )r1   rM   _write_formulas_write_image_path_write_aspect_ratio_lockr   )	r	   rP   rG   rQ   o_preferrelativerI   r[   r\   r6   s	            r   r   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:stroker?   )r	   rc   r6   s      r   rM   zVml._write_stroke   s0    	"I./
J
33333r   c                     g }|r|                     d           |                     d|f           |                     d|           d S )N)gradientshapeokrK   o:connecttypev:path)appendr@   )r	   re   connecttyper6   s       r   rN   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 )	NrZ   rL   shadowoko:extrusionokstrokeokfillokrf   rg   r?   )r	   rk   extrusionokrm   rn   ri   r6   s          r   rU   zVml._write_button_path   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 )NrZ   rK   rL   rl   re   rf   rg   r?   )r	   ro   re   ri   r6   s        r   r^   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 )Nr:   rK   r9   	shapetypeo:lockr?   )r	   extrr   r6   s       r   rV   zVml._write_shapetype_lock  sB    	 cN)$


 	Hj11111r   c                 J    d}d}d|fd|fg}|                      d|           d S )Nr:   rK   r9   rotationrs   r?   )r	   rt   rv   r6   s       r   _write_rotation_lockzVml._write_rotation_lock&  sB     cN"


 	Hj11111r   c                 J    d}d}d|fd|fg}|                      d|           d S )Nr:   rK   r9   aspectratiors   r?   )r	   rt   ry   r6   s       r   r_   zVml._write_aspect_ratio_lock2  sB     cNK(


 	Hj11111r   c                 $   d}d}d}dt          |          z   }|d         }|d         }|d         }	|d         }
|d	         }|                     |          \  }}}}|	rd
}d||||||fz  }d|fd|fd|fd|
fd|fg}|                     d|           |                                  |                                  |                     d d           |                                  |                     |||	|           |                     d           d S )Nz#_x0000_t202autohidden_x0000_s    r         	   visibleznposition:absolute;margin-left:%.15gpt;margin-top:%.15gpt;width:%.15gpt;height:%.15gpt;z-index:%d;visibility:%srF   typestyle	fillcoloro:insetmodev:shapenone)	strr.   r1   _write_comment_fill_write_shadowrN   _write_comment_textbox_write_comment_client_datar   )r	   rP   r   r    
shape_type	insetmode
visibilityrowcolr   r   r)   r*   r+   r,   r-   r   r6   s                     r   r   zVml._write_comment_shape>  sr   #
	
 H- ajaj!*AJ	1:%)%;%;H%E%E"sE6  	#"J  $S%*MN 	 8Z e)$I&

 	Iz222 	  """ 	 	  v... 	##%%% 	''S'8DDD)$$$$$r   c                    d}dt          |          z   }|d         }|                     |          \  }}}}	d||||	|fz  }
d|fd|fg}|                    d          r|                    d|d         f           |                    d	|
f           |                    d
           |                    d           |                    d           |                    d           |                     d|           |                                  |                                  |                     |d                    |                     |           | 	                    d           d S )Nz#_x0000_t201r}   r)   zuposition:absolute;margin-left:%.15gpt;margin-top:%.15gpt;width:%.15gpt;height:%.15gpt;z-index:%d;mso-wrap-style:tightrF   r   descriptionaltr   )zo:buttonrK   )r   buttonFace [67])strokecolorzwindowText [64])r   r{   r   font)
r   r.   getrh   r1   _write_button_fillrw   _write_button_textbox_write_button_client_datar   )r	   rP   r   r   r   r)   r*   r+   r,   r-   r   r6   s               r   r   zVml._write_button_shapey  s   #
 H-
 *%%)%;%;H%E%E"sE6# '+C%HI 	 8Z 


 ::m$$ 	>uf]&;<===7E*++++,,,:;;;<===1222Iz222 	!!! 	!!### 	""6&>222 	&&v...)$$$$$r   c                     d}dt          |          z   }|d         }|d         }|d         }|d         }|d         }	|d         }
|d	         }|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|||fz  }d|fd|fd|fd|fg}|                     d|           |                     ||           |                                  |                     d           d S )Nz#_x0000_t75r}   r~   r         r   r      g      R@r'   g      X@H   g      ?zTposition:absolute;margin-left:0;margin-top:0;width:%.15gpt;height:%.15gpt;z-index:%drF   zo:spidr   r   r   )r   intr1   _write_imagedatarw   r   )r	   rP   r   
image_datar   r,   r-   namepositionx_dpiy_dpiref_idr   r6   s                 r   r   zVml._write_image_shape  s\   "
 H- 1A!}a=11A u$$& Cr 1D 8999S$!3d!:;;;
 "6734 	 8x Z e	

 	Iz222 	fd+++ 	!!###)$$$$$r   c                 @    d}d|fg}|                      d|           d S )Nz#ffffe1color2v:fillr?   )r	   color_2r6   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   rK   r   zo:detectmouseclickr   r?   )r	   r   detectmouseclickr6   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 )NrK   blackoncolorobscuredzv:shadowr?   )r	   r   r   r   r6   s        r   r   zVml._write_shadow  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:textboxr*   r1   
_write_divr   )r	   r   r6   s      r   r   zVml._write_comment_textbox  sX    (&'
K444 	+&&&&&r   c                     d}d|fdg}|                      d|           |                     d|           |                     d           d S )Nr   r   )zo:singleclickrZ   r   centerr   )r	   r   r   r6   s       r   r   zVml._write_button_textbox  s]    (&(>?
K444 	$'''+&&&&&r   c                     d|z   }d|fg}|                      d|           |r|                     |           |                     d           d S )Nztext-align:r   div)r1   _write_fontr   )r	   alignr   r   r6   s        r   r   zVml._write_div  sg     %&'
E:... 	#T"""%     r   c                 f    |d         }d}d}d}d|fd|fd|fg}|                      d||           d S )	NcaptionCalibri   z#000000facesizer   r   _xml_data_element)r	   r   r   r   r   r   r6   s          r   r   zVml._write_font,  sY    y/ TNTNe

 	vw
;;;;;r   c                    d}d|fg}|                      d|           |                                  |                                  |                     |           |                                  |                     |           |                     |           |r|                                  |                     d           d S )NNote
ObjectTypex:ClientData)	r1   _write_move_with_cells_write_size_with_cells_write_anchor_write_auto_fill
_write_row_write_column_write_visibler   )r	   r   r   r   r)   object_typer6   s          r   r   zVml._write_comment_client_data;  s    #[12
NJ777 	##%%% 	##%%% 	8$$$ 	 	 	3  	"!!!.)))))r   c                 ~   |d         }|d         }d}d|fg}|                      d|           |                     |           |                                  |                                  |                     |           |                                  |                                  |                     d           d S )Nmacror)   Buttonr   r   )r1   r   _write_print_objectr   _write_fmla_macro_write_text_halign_write_text_valignr   )r	   r   r   r)   r   r6   s         r   r   zVml._write_button_client_data[  s    w*%#[12
NJ777 	8$$$ 	  """ 	 	u%%% 	!!! 	!!!.)))))r   c                 0    |                      d           d S )Nzx:MoveWithCellsr?   r	   s    r   r   zVml._write_move_with_cellsz      -.....r   c                 0    |                      d           d S )Nzx:SizeWithCellsr?   r   s    r   r   zVml._write_size_with_cells~  r   r   c                 0    |                      d           d S )Nz	x:Visibler?   r   s    r   r   zVml._write_visible  s    K(((((r   c                     |d d         \  }}}}}}}}	||||||||	g}
d |
D             }
d                     |
          }|                     d|           d S )Nr%   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stringsr>   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	   r>   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_titler6   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)r1   _write_formular   r   s    r   r]   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:fr?   )r	   r   r6   s      r   r   zVml._write_formula  s)    cl^
E:.....r   )NNN)N)/__name__
__module____qualname____doc__r   r#   r.   r   r   r;   r   r   r   rM   rN   rU   r^   rV   rw   r_   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r]   r   __classcell__)r
   s   @r   r   r      s        $ $ $ $ $" 2 2 2 2h( ( ($/ / /	+ 	+ 	+3 3 3) ) )0) ) )6") ") ")H4 4 4	2 	2 	22 2 2$2 2 2
2 
2 
2
2 
2 
2
2 
2 
29% 9% 9%v4% 4% 4%l0% 0% 0%d2 2 2
2 
2 
24 4 4' ' '' ' '! ! ! !< < <* * *@* * *>/ / // / /) ) )	1 	1 	13 3 3. . .1 1 19 9 99 9 99 9 94 4 47 7 7( ( ((/ / / / / / /r   r   N) r   	XMLwriterr   r(   r   r   <module>r     sZ         C/ C/ C/ C/ C/)
 C/ C/ C/ C/ C/r   