
    BPc\.                         d dl mZmZ d dlZd dlmZmZ d dlmZ d dlm	Z
  G d dej        e          Zedk    r e                                             dS dS )	    )absolute_importunicode_literalsN)Use	Rectangle)SvgOutputMixin)inkex_gettextc            
       D    e Zd ZdZd Zd ZddZddddd	d
ddddgf
dZdS )NupzN-up Layout generatorc                 .   |                     dd           |                     dt          d           |                     dt          d           |                     dt          	           |                     d
t          	           |                     dt          	           |                     dt          	           |                     dt          	           |                     dt          	           |                     dt          	           |                     dt          	           |                     dt          	           |                     dt          	           |                     dt          	           |                     dt          	           |                     dt          	           |                     dt          	           |                     dt          	           |                     dt          	           |                     dt          j        d           |                     dt          j        d           |                     dt          j        d           |                     dt          j        d           |                     dt          j        d           |                     d t          j        d           |                     d!t          j        d           |                     d"           d S )#Nz--unitpx)defaultz--rows   )typer   z--colsz--paddingTop)r   z--paddingBottomz--paddingLeftz--paddingRightz--marginTopz--marginBottomz--marginLeftz--marginRightz--pgMarginTopz--pgMarginBottomz--pgMarginLeftz--pgMarginRightz	--pgSizeXz	--pgSizeYz--sizeXz--sizeYz--calculateSizeTz--showHolderz--showCrossesz--showInnerz--showOuterFz--showInnerBoxz--showOuterBoxz--tab)add_argumentintfloatinkexBoolean)selfparss     ,/usr/share/inkscape/extensions/layout_nup.pyadd_argumentszNup.add_arguments   s   (D111(a888(a888.u555+%888/666*777-e444*777.u555/666/666,5999*777+%888+E222+E222)%000)%000+%-NNN.u}dKKK/tLLL-emTJJJ-emUKKK*NNN*NNN'"""""    c                    g }dD ]R}t          | j        |          r;|                    |                                                    dd                     S| j        }|                     |j        |j        |j        f|j	        |j
        |j        |j        f|j        |j        f|j        |j        |j        f|j        |j        |j        |j        f|j        |j        |j        |j        f|	  	        }|r|                    |           d S d S )N)
showHoldershowCrosses	showInner	showOutershowInnerBoxshowOuterBoxshow )	unitpgSizepgMarginnumcalculateSizesizemarginpaddingr!   )getattroptionsappendlowerreplacegenerate_nupr#   pgSizeXpgSizeYpgMarginToppgMarginRightpgMarginBottompgMarginLeftrowscolsr'   sizeXsizeY	marginTopmarginRightmarginBottom
marginLeft
paddingToppaddingRightpaddingBottompaddingLeftwrite)r   stream	show_listioptrets         r   savezNup.save<   s-   	
 		@ 		@A t|Q'' @  !2!262!>!>???lK-!" 	 38$+)SY'M3?C4DcnU !	 '   
 
*  	LL	 	r      c                      	 t          |           n#  Y d S xY wt          |          |k    r|dz  }t          |          |k    rt          d          	 t          t	           fd|                    S #  Y d S xY w)Nr   z'expandTuple: requires 2 or 4 item tuplec           	          j                             t          t          t          |                               z             j                             d          z  S )N1px)svgunittouustreval)evr   r#   s    r   <lambda>z!Nup.expandTuple.<locals>.<lambda>n   sL    ))#d3r77mm*<*<t*CDD(++E223 r   )iterlen	Exceptiontuplemap)r   r#   xlengths   ``  r   expandTuplezNup.expandTuplea   s    	GGGG	44q66VFAq66VEFFF	        	44s     A8 8A=r   )z8.5*96z11*96r   r   )r   r   TN)   r]   r   c           
        #$%&' d|
v r$t          |
                              g d          }
|                     ||          }|                     ||          }|                     ||          }|                     ||	          }	|                     ||d          }|r|s!t          j        t          d                    S t          t          t          t          ||                              }d\  }}}}d\  '$d\  %#|                     ||d          }|-|s+t          |          dk     s|d	         d	k    s|d
         d	k    r}|'         ||         z
  ||         z
  #         ||         ||         z   z  z
  #         z  |$         ||         z
  ||         z
  %         ||         ||         z   z  z
  %         z  f}n|                     ||d          }|'         ||         z   ||         z   |$         ||         z   ||         z   f&d}t          t          ||         ||         z   |	|         z             t          ||         ||         z   |	|         z             t          |'         |	|         z
  |	|         z
            t          |$         |	|         z
  |	|         z
            |          }t          t          ||         ||         z             t          ||         ||         z             t          |'                   t          |$                   |          }|                     |'         |$                   }|                                }#$%&'fd}ddh                    |
          r|                    t          j                            d                    }d|
v rS|                    |                                          }d|j        d<   |                     dd            ||d           d|
v rS|                    |                                          }d|j        d<   |                     dd            ||d           dh                    |
          r|                    t          j                            d                    }d|
v rd}|                    t          j        d                    }d\  }}d|||         z   ||         z   |||         z   ||         z   |z
  fz  }|d|||         z   ||         z   |||         z   ||         z   |z   fz  z  }|d|||         z   ||         z   |z
  |||         z   ||         z   fz  z  }|d|||         z   ||         z   |z   |||         z   ||         z   fz  z  }|                    t          j        |d z   |d!"                     dD ]o}dD ]j}|s|rd|                    t/                                } |                      d#d$           | j                            ||'         z  ||$         z             kp ||d           |                    t          j                            d%                    } ||d&           |                    t          j                            d'                    }|                    t          j        d&                    }d(|
v r|                    |           d)|
v r|                    |           d*|
v r||         ||         z   |	|         z   ||         ||         z   |	|         z   }}|'         |	|         z
  |	|         z
  |$         |	|         z
  |	|         z
  }"}!d+                    ||!d,z  z   |          }|d-                    ||!z   ||"d,z  z             z  }|d-                    ||!d,z  z   ||"z             z  }|d-                    |||"d,z  z             z  }|d.z  }|                    t          j        ||/                     |                                S )0a  Generate the SVG.  Inputs are run through 'eval(str(x))' so you can use
        '8.5*72' instead of 612.  Margin / padding dimension tuples can be
        (top & bottom, left & right) or (top, right, bottom, left).

        Keyword arguments:
        pgSize -- page size, width x height
        pgMargin -- extra space around each page
        pgPadding -- added to pgMargin
        n -- rows x cols
        size -- override calculated size, width x height
        margin -- white space around each piece
        padding -- inner padding for each piece
        show -- list of keywords indicating what to show
                - 'crosses' - cutting guides
                - 'inner' - inner boundary
                - 'outer' - outer boundary
        r   )innerinnerboxholdercrossesr   )rZ   zNo padding or margin available.)r      r      )r   rc   Nr   rc   z9stroke:#000000;stroke-opacity:1;fill:none;fill-opacity:1;)rY   ywidthheightstyle)rf   rg   c                 T   t          d                   D ]}t          d                   D ]v}|dk    r|dk    r|                     t                                }|                    dd|z              |j                            |	
         z  |	         z             wd S )Nr   
xlink:href#)rangeaddr   set	transformadd_translate)undertorowcoluser8   rg   r&   r7   seprf   s        r   make_clonesz%Nup.generate_nup.<locals>.make_clones   s    QD	** U U CI.. U UCaxxC1HH ))CEE**CGGL#(333M//c%j0@#FBSTTTTUU Ur   r_   outerzGuide Layerz#8080ffstrokeid
innerguide
outerguiderb   z	Cut Layer   cross)rz   r\   zM%f %fz L%f %fz M%f %fzstroke-width:0.05crossmarker)rh   drz   rj   z#crossmarkerzClone Layermainz
Main Layerr`   outerboxra   z
M{:f} {:f}g       @z L{:f} {:f}z Z)rh   r   )rn   unionr[   r   errormsg_listrX   sumziprU   r   rP   get_templategetrootintersectionrm   Layernewcopyrh   GroupPathElementr   ro   rp   formattostring)(r   r#   r$   r%   	pgPaddingr&   r'   r(   r)   r*   r!   	page_edgetoprightbottomleftrh   padboxmargboxdocrN   rw   layeriboxoboxcrosslengrouprY   re   pathrs   rt   clnwhr8   rg   r7   rv   rf   s(        `                             @@@@@r   r0   zNup.generate_nupx   s
	   > t99??#M#M#MNND##D(33$$T955	!!$//""411!!$q!99  	Hy 	H>!$E"F"FGGGS#h	":":;;<<	#- UFDv
dd155L 4yy1}}Aw!||Aw!|| 5Mo&&' $i6$<&-#?@A
 d) 6Nn%'( $i6#;#?@A
 d)DD" ##D$q#99D K&-'&,6L6#;&7

 L)D/F4L074=@AA)C.6#;.=>>d5kGDM1GENBCCtF|gcl2WV_DEE
 
 
 )D/F4L011)C.6#;.//d5k""tF|$$
 
 
 fUmF6NKKkkmm	U 	U 	U 	U 	U 	U 	U 	U 	U 	U W**400 	1GGEKOOM::;;E$yy//'0
8$|,,,E<000$yy00'0
8$|,,,E<000 ;##D)) $	,GGEKOOK8899ED  		%+"9"9"9::1	$'&,6	#&4x?#  		$'&,6	#&4x?%   		$'&,6A	#&4%   		$'&,6A	#&4%   		%#&99Tm    
    C#   # "'))CEE"2"2CGGL.AAAM77 #d5k 13f3E  	 E7+++ 6677E6""" 5566		%+00011IIfIIgt$&,.>#,ws|; A
 Ugdm+gen<Vws|+gfo= A  &&q1s7{A66DM((QAG<<<DM((QWa!e<<<DM((ACK888DDLDIIe'et<<<===||~~r   )rJ   )__name__
__module____qualname____doc__r   rI   r[   r0    r   r   r
   r
      s        # # #:# # #J   2 "[A A A A A Ar   r
   __main__)
__future__r   r   r   r   r   
inkex.baser   inkex.localizationr   r   OutputExtensionr
   r   runr   r   r   <module>r      s   ( 9 8 8 8 8 8 8 8                  % % % % % % 1 1 1 1 1 1] ] ] ] ]%
 ] ] ]@	 zCEEIIKKKKK r   