Great Big Amazing Transformlist MERRRRRRRRRRRRRGE\!
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@934 eee81c28-f429-11dd-99c0-75d572ba1dddmaster
commit
2a33e25dce
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
|
@ -1,32 +1,168 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<!-- All images except logo created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
|
||||
<foreignContent id="select">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<g id="logo">
|
||||
<svg version="1.0"
|
||||
id="svg2" inkscape:output_extension="org.inkscape.output.svg.inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:cc="http://creativecommons.org/ns#" inkscape:export-ydpi="90" inkscape:export-xdpi="90" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 48 48" enable-background="new 0 0 48 48" xml:space="preserve">
|
||||
<a id="a32" xlink:href="http://svg-edit.googlecode.com/" xlink:title="SVG-edit, an in-browser vector graphics editor">
|
||||
|
||||
<path id="path3216" inkscape:randomized="0" inkscape:rounded="0" inkscape:flatsided="false" sodipodi:arg2="1.1780972" sodipodi:arg1="0.78539816" sodipodi:r2="155.59306" sodipodi:r1="194.03661" sodipodi:cy="346.96844" sodipodi:cx="239.79607" sodipodi:sides="8" sodipodi:type="star" fill="#FFFFFF" d="
|
||||
M30.5,39.3l-6.2,0.5l-4.8,4l-4.8-4l-6.2-0.5L8,33.1l-4-4.8l4-4.8l0.5-6.2l6.2-0.5l4.8-4l4.8,4l6.2,0.5l0.5,6.2l4,4.8l-4,4.8
|
||||
L30.5,39.3z"/>
|
||||
<path id="path34" d="M20.6,44.7c2-0.6,3.3-2,3.6-3.9l0.1-0.7l0.4,0.3c2.6,1.9,6.1,1,7.3-1.9c0.7-1.6,0.4-4.1-0.6-4.9
|
||||
c-0.4-0.3-0.3-0.4,0.5-0.5c5.1-0.7,5.2-8.3,0.2-9.4c-1.1-0.2-1.1-0.2-0.6-0.8c3.2-4.2-2.2-9.7-6.6-6.8l-0.7,0.5l-0.2-1
|
||||
c-1.2-5-8.7-4.8-9.4,0.3c-0.1,0.8-0.1,0.8-0.7,0.3c-2.4-1.8-6.4-0.6-7.3,2.2c-0.5,1.6-0.2,3.8,0.7,4.6c0.4,0.4,0.4,0.5-0.4,0.6
|
||||
c-5.3,0.8-5.3,8.8,0,9.5l0.7,0.1l-0.4,0.6c-2.2,3.3,0,7.6,3.9,7.6c1.2,0,2.5-0.4,3-1c0.4-0.4,0.5-0.4,0.5,0.1
|
||||
C14.7,43.1,18,45.4,20.6,44.7L20.6,44.7z M18,42.1c-1.1-0.8-1.4-2.5-0.7-3.6c0.3-0.4,0.3-0.6,0.3-3.1v-2.7l-1.9,1.9
|
||||
c-1.5,1.5-1.9,2-1.9,2.3c0,1.6-2.6,2.8-4,1.8C8,37.4,8.4,34.6,10.6,34c0.5-0.1,1-0.5,2.5-2l1.9-1.9l-2.6,0c-2.4,0-2.6,0-3.3,0.4
|
||||
c-2.9,1.5-5.4-2.4-2.8-4.4c0.8-0.6,2.2-0.6,2.9-0.1c0.5,0.3,0.6,0.3,3.1,0.3h2.6l-1.8-1.8c-1.3-1.3-2-1.9-2.3-1.9
|
||||
c-2.3-0.5-2.9-3.4-1-4.8c1.3-1,4,0.2,4,1.8c0,0.3,0.4,0.8,1.9,2.2l1.9,1.8l0-2.6c0-2.4,0-2.6-0.3-3c-1.1-1.6,0-3.8,2-4
|
||||
c2.1-0.2,3.5,1.9,2.5,3.8c-0.4,0.7-0.4,0.9-0.4,3.3l0,2.6l1.8-1.8c1.3-1.3,1.9-2,1.9-2.3c0.5-2.4,3.7-2.9,4.8-0.7
|
||||
c0.8,1.6,0,3.3-1.7,3.7c-0.5,0.1-1,0.5-2.5,2l-1.8,1.8h2.7c2.4,0,2.7,0,3.1-0.3c1-0.7,2.4-0.5,3.3,0.5c2,2.2-0.9,5.6-3.3,3.9
|
||||
c-0.4-0.3-0.7-0.3-3.1-0.3h-2.7l1.8,1.8c1.5,1.5,2,1.9,2.5,2c2.9,0.7,2.7,4.9-0.3,5.1c-1.4,0.1-2.8-1.1-2.8-2.3
|
||||
c0-0.1-0.8-1.1-1.9-2.1l-1.9-1.9l0,2.6c0,2.4,0,2.6,0.4,3.3C23,41.2,20.2,43.7,18,42.1L18,42.1z"/>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<path stroke="#ffffff" fill="#000000" id="svg_13" d="m7.38168,2.46948l0.07502,17.03258l3.30083,-2.62617l2.62566,5.62751l4.20105,-2.62617l-3.30082,-4.80214l4.57614,-0.37517l-11.47787,-12.23044z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
<g id="g36" transform="matrix(-4.6717475,0,0,4.6717475,1143.4575,-562.74962)">
|
||||
<path id="path38" opacity="0.2" enable-background="new " d="M240.5,126.5c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7
|
||||
c-0.3-0.4-1.1,0-1.7,0.6c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.5,126.5L240.5,126.5z"/>
|
||||
<path id="path40" opacity="0.2" enable-background="new " d="M240.7,126.3c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7
|
||||
c-0.3-0.4-1.1,0-1.7,0.6c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.7,126.3L240.7,126.3z"/>
|
||||
<path id="path42" opacity="0.2" enable-background="new " d="M240.1,126.1c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7
|
||||
c-0.3-0.4-1.1,0-1.7,0.6c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.1,126.1L240.1,126.1z"/>
|
||||
<path id="path44" fill="#FFFFFF" d="M240.1,126c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7c-0.3-0.4-1.1,0-1.7,0.6
|
||||
c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.1,126L240.1,126z"/>
|
||||
|
||||
<foreignContent id="square">
|
||||
<linearGradient id="path46_1_" gradientUnits="userSpaceOnUse" x1="251.6057" y1="30.2918" x2="373.0601" y2="100.0934" gradientTransform="matrix(-7.441159e-02 -0.3663 0.3663 -7.441159e-02 239.8726 211.8456)">
|
||||
<stop offset="0" style="stop-color:#990000"/>
|
||||
<stop offset="1" style="stop-color:#7C0000"/>
|
||||
</linearGradient>
|
||||
<path id="path46" fill="url(#path46_1_)" d="M240.1,126c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7c-0.3-0.4-1.1,0-1.7,0.6
|
||||
c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.1,126L240.1,126z"/>
|
||||
|
||||
<linearGradient id="path48_1_" gradientUnits="userSpaceOnUse" x1="448.9506" y1="-141.7113" x2="469.8885" y2="-162.6511" gradientTransform="matrix(0.3734 -1.625768e-02 -1.625768e-02 -0.3734 65.4455 75.4761)">
|
||||
<stop offset="0" style="stop-color:#F8F1DC"/>
|
||||
<stop offset="1" style="stop-color:#D6A84A"/>
|
||||
</linearGradient>
|
||||
<path id="path48" fill="url(#path48_1_)" d="M238.5,122.6l1.1,3.1l-2.9-1.4l0,0c0,0,0,0-0.1,0l0,0l-6-6.7l0,0
|
||||
c-0.2-0.2,0.1-0.7,0.6-1.2c0.5-0.5,1.1-0.7,1.2-0.5L238.5,122.6L238.5,122.6L238.5,122.6z"/>
|
||||
|
||||
<linearGradient id="path50_1_" gradientUnits="userSpaceOnUse" x1="473.214" y1="-2.063" x2="545.7217" y2="-163.0414" gradientTransform="matrix(-0.3737 0 0 -0.3737 407.2458 109.9867)">
|
||||
<stop offset="0" style="stop-color:#FFA700"/>
|
||||
<stop offset="0.7753" style="stop-color:#FFD700"/>
|
||||
<stop offset="1" style="stop-color:#FF794B"/>
|
||||
</linearGradient>
|
||||
<path id="path50" fill="url(#path50_1_)" d="M237.1,124.4c0.2,0,0.4-0.1,0.6-0.3c0.1-0.1,0.3-0.2,0.4-0.3
|
||||
c0.1-0.1,0.2-0.2,0.3-0.3c0.2-0.2,0.3-0.4,0.3-0.6l-0.1-0.3l0-0.1l-6-6.6c0,0.2-0.1,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3
|
||||
c-0.1,0.1-0.3,0.2-0.4,0.3c-0.4,0.2-0.7,0.3-0.8,0.2l0,0l6,6.7l0,0c0,0,0,0,0.1,0l0,0L237.1,124.4L237.1,124.4z"/>
|
||||
<path id="path52" fill="#FFFFFF" d="M230.6,117.5c0.1,0.1,0.5,0.1,0.9-0.2c0.1-0.1,0.3-0.2,0.4-0.3c0.1-0.1,0.2-0.2,0.3-0.3
|
||||
c0.3-0.4,0.4-0.7,0.3-0.8l0,0l6.1,6.7c0.1,0.2,0,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.3
|
||||
c-0.4,0.2-0.7,0.3-0.9,0.2c0,0-0.2-0.2-0.2-0.2L230.6,117.5L230.6,117.5L230.6,117.5z"/>
|
||||
<path id="path54" fill="#FFFFFF" d="M231.2,116.4c0.5-0.5,1.1-0.7,1.2-0.5l1.4,1.5l0.1,2.1l-1.4,0.1l-1.8-2l0,0
|
||||
C230.5,117.3,230.7,116.8,231.2,116.4L231.2,116.4z"/>
|
||||
<path id="path56" fill="#FFFFFF" d="M230.6,117.5c0.1,0.1,0.5,0.1,0.9-0.2c0.1-0.1,0.3-0.2,0.4-0.3c0.1-0.1,0.2-0.2,0.3-0.3
|
||||
c0.3-0.4,0.4-0.7,0.3-0.8l0,0l6.1,6.7c0.1,0.2,0,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.3
|
||||
c-0.4,0.2-0.7,0.3-0.9,0.2c0,0-0.2-0.2-0.2-0.2L230.6,117.5L230.6,117.5L230.6,117.5z"/>
|
||||
|
||||
<linearGradient id="path58_1_" gradientUnits="userSpaceOnUse" x1="440.489" y1="-131.0965" x2="451.6169" y2="-117.8349" gradientTransform="matrix(0.3734 -1.625768e-02 -1.625768e-02 -0.3734 65.4455 75.4761)">
|
||||
<stop offset="0" style="stop-color:#FFC957"/>
|
||||
<stop offset="1" style="stop-color:#FF6D00"/>
|
||||
</linearGradient>
|
||||
<path id="path58" fill="url(#path58_1_)" d="M231.2,116.4c0.5-0.5,1.1-0.7,1.2-0.5l1.4,1.5l0.1,2.1l-1.4,0.1l-1.8-2l0,0
|
||||
C230.5,117.3,230.7,116.8,231.2,116.4L231.2,116.4z"/>
|
||||
|
||||
<linearGradient id="path60_1_" gradientUnits="userSpaceOnUse" x1="454.4041" y1="-122.501" x2="501.1769" y2="-226.3438" gradientTransform="matrix(0.3734 -1.625768e-02 -1.625768e-02 -0.3734 65.4455 75.4761)">
|
||||
<stop offset="0" style="stop-color:#FFA700"/>
|
||||
<stop offset="0.7753" style="stop-color:#FFD700"/>
|
||||
<stop offset="1" style="stop-color:#FF9200"/>
|
||||
</linearGradient>
|
||||
<path id="path60" fill="url(#path60_1_)" d="M230.6,117.5c0.1,0.1,0.5,0.1,0.9-0.2c0.1-0.1,0.3-0.2,0.4-0.3
|
||||
c0.1-0.1,0.2-0.2,0.3-0.3c0.3-0.4,0.4-0.7,0.3-0.8l0,0l6.1,6.7c0.1,0.2,0,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3
|
||||
c-0.1,0.1-0.3,0.2-0.4,0.3c-0.4,0.2-0.7,0.3-0.9,0.2c0,0-0.2-0.2-0.2-0.2L230.6,117.5L230.6,117.5L230.6,117.5z"/>
|
||||
|
||||
<linearGradient id="path62_1_" gradientUnits="userSpaceOnUse" x1="472.6249" y1="-26.9638" x2="549.3671" y2="-26.9638" gradientTransform="matrix(-0.3737 0 0 -0.3737 407.2458 109.9867)">
|
||||
<stop offset="0" style="stop-color:#7D7D99"/>
|
||||
<stop offset="0.1798" style="stop-color:#B1B1C5"/>
|
||||
<stop offset="0.3727" style="stop-color:#BCBCC8"/>
|
||||
<stop offset="0.6825" style="stop-color:#C8C8CB"/>
|
||||
<stop offset="1" style="stop-color:#CCCCCC"/>
|
||||
</linearGradient>
|
||||
<path id="path62" fill="url(#path62_1_)" d="M231.1,118.1c0,0,0.5,0,0.9-0.3c0.1-0.1,0.3-0.2,0.4-0.3c0.1-0.1,0.2-0.2,0.3-0.3
|
||||
c0.2-0.3,0.4-0.6,0.3-0.7l-0.5-0.6l0,0c0.1,0.2,0,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.3
|
||||
c-0.4,0.2-0.7,0.3-0.9,0.2l0,0l5.9,6.5c0,0,0.1,0.2,0.2,0.2c0,0,0.1,0.1,0.1,0.1L231.1,118.1L231.1,118.1z"/>
|
||||
<path id="path64" fill="#003333" d="M238.9,124.8c-0.1,0.1-0.3,0.2-0.4,0.3l1.1,0.5l-0.4-1.1C239.1,124.7,239,124.8,238.9,124.8z
|
||||
"/>
|
||||
<path id="path66" opacity="0.5" fill="#FFFFFF" enable-background="new " d="M238.2,123.4l-6.1-6.6c0,0,0,0,0,0
|
||||
c0.1-0.1,0.2-0.3,0.3-0.4l6.1,6.6C238.4,123.1,238.4,123.2,238.2,123.4L238.2,123.4z"/>
|
||||
<path id="path68" opacity="0.5" fill="#FFFFFF" enable-background="new " d="M232.2,116.7c0.1-0.1,0.1-0.1,0.1-0.2l6.1,6.6
|
||||
c0,0.1-0.1,0.2-0.2,0.3c-0.1,0.1-0.1,0.1-0.2,0.2l-6.1-6.7C232,116.9,232.1,116.8,232.2,116.7L232.2,116.7z"/>
|
||||
</g>
|
||||
</g>
|
||||
</a>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
|
||||
<g id="select">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path stroke="#ffffff" fill="#000000" id="svg_13" d="m7.38168,2.46948l0.07502,17.03258l3.30083,-2.62617l2.62566,5.62751l4.20105,-2.62617l-3.30082,-4.80214l4.57614,-0.37517l-11.47787,-12.23044z"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="select_node">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<circle stroke="#0000ff" fill="#00ffff" id="svg_44" r="3.87891" cy="5.3" cx="8.7" stroke-width="1.5"/>
|
||||
<path d="m9.18161,5.6695l0.07763,15.16198l3.41588,-2.33775l2.71718,5.00947l4.34748,-2.33775l-3.41587,-4.27474l4.73565,-0.33397l-11.87794,-10.88723z" id="svg_13" fill="#000000" stroke="#ffffff"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="square">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<defs>
|
||||
<linearGradient id="svg_2" x1="0.36328" y1="0.10156" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
|
||||
<stop offset="1" stop-color="#3b7e9b" stop-opacity="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<rect x="1.5" y="1.5" width="20" height="20" id="svg_1" fill="url(#svg_2)" stroke="#000000"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<foreignContent id="circle">
|
||||
<g id="rect">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<linearGradient y2="1" x2="1" y1="0.10156" x1="0.36328" id="svg_2">
|
||||
<stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
|
||||
<stop stop-opacity="1" stop-color="#3b7e9b" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect transform="matrix(1, 0, 0, 1, 0, 0)" stroke="#000000" fill="url(#svg_2)" id="svg_1" height="12" width="20" y="5.5" x="1.5"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="fh_rect">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
|
||||
<defs>
|
||||
<linearGradient y2="1" x2="1" y1="0.10156" x1="0.36328" id="svg_2">
|
||||
|
||||
<stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
|
||||
<stop stop-opacity="1" stop-color="#3b7e9b" offset="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient y2="0.3945" x2="0.6132" y1="0.1093" x1="0.3046" id="svg_9">
|
||||
<stop stop-opacity="1" stop-color="#f9d225" offset="0"/>
|
||||
<stop stop-opacity="1" stop-color="#bf5f00" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect stroke="#000000" stroke-width="2" fill="url(#svg_2)" id="svg_1" height="50" width="50" y="0.75" x="1.25"/>
|
||||
<path stroke-width="2" stroke="#000000" fill="url(#svg_9)" id="svg_2" d="m31.5,0l-8.75,20.25l0.75,24l16.5,-16.5l6,-12.5"/>
|
||||
<path stroke-width="2" stroke="#000000" fill="#fce0a9" id="svg_10" d="m39.5,28.5c-2,-9.25 -10.25,-11.75 -17,-7.4375l0.4843,24.4414z"/>
|
||||
<path id="svg_11" stroke-width="2" stroke="#000000" fill="#000000" d="m26.9318,41.1745c-0.4491,-2.3511 -2.3021,-2.9866 -3.8181,-1.8905l0.1087,6.2126z"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
|
||||
<g id="circle">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54 54" id="svgzoom">
|
||||
<defs>
|
||||
<linearGradient y2="1.0" x2="1.0" y1="0.1875" x1="0.171875" id="svg_4">
|
||||
|
@ -34,13 +170,46 @@
|
|||
<stop stop-opacity="1" stop-color="#ff6666" offset="1.0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g style="pointer-events: all;">
|
||||
<circle stroke-opacity="1" fill-opacity="1" style="pointer-events: all;" stroke-width="2" stroke="#000000" fill="url(#svg_4)" id="svg_1" r="23" cy="27" cx="27"/>
|
||||
<g>
|
||||
<circle stroke-opacity="1" fill-opacity="1" stroke-width="2" stroke="#000000" fill="url(#svg_4)" id="svg_1" r="23" cy="27" cx="27"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
<foreignContent id="pencil">
|
||||
<g id="ellipse">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54 54" id="svgzoom">
|
||||
<defs>
|
||||
<linearGradient y2="1.0" x2="1.0" y1="0.1875" x1="0.171875" id="svg_4">
|
||||
<stop stop-opacity="1" stop-color="#ffffff" offset="0.0"/>
|
||||
<stop stop-opacity="1" stop-color="#ff6666" offset="1.0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<ellipse stroke-opacity="1" fill-opacity="1" stroke-width="2" stroke="#000000" fill="url(#svg_4)" id="svg_1" rx="23" ry="15" cy="27" cx="27"/>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="fh_ellipse">
|
||||
<svg viewBox="0 0 52 52" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<linearGradient id="svg_9" x1="0.3046" y1="0.1093" x2="0.6132" y2="0.3945">
|
||||
<stop offset="0" stop-color="#f9d225" stop-opacity="1"/>
|
||||
<stop offset="1" stop-color="#bf5f00" stop-opacity="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="svg_4" x1="0.17188" y1="0.1875" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
|
||||
<stop offset="1" stop-color="#ff6666" stop-opacity="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<ellipse stroke-width="2" stroke="#000000" fill="url(#svg_4)" id="svg_1" rx="23" ry="12" cy="37" cx="27"/>
|
||||
<path d="m31.5,0l-8.75,20.25l0.75,24l16.5,-16.5l6,-12.5" id="svg_2" fill="url(#svg_9)" stroke="#000000" stroke-width="2"/>
|
||||
<path d="m39.5,28.5c-2,-9.25 -10.25,-11.75 -17,-7.4375l0.4843,24.4414z" id="svg_10" fill="#fce0a9" stroke="#000000" stroke-width="2"/>
|
||||
<path d="m26.9318,41.1745c-0.4491,-2.3511 -2.3021,-2.9866 -3.8181,-1.8905l0.1087,6.2126z" fill="#000000" stroke="#000000" stroke-width="2" id="svg_11"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="pencil">
|
||||
<svg id="svgzoom" viewBox="0 0 48 52" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<linearGradient id="svg_9" x1="0.3046" y1="0.1093" x2="0.6132" y2="0.3945">
|
||||
|
@ -53,11 +222,10 @@
|
|||
<path d="M26.9318,41.1745 c-0.4491,-2.3511 -2.3021,-2.9866 -3.8181,-1.8905 l0.1087,6.2126z" fill="#000000" stroke="#000000" stroke-width="2" fill-opacity="1" stroke-opacity="1" id="svg_11"/>
|
||||
<path d="M2.3132,4.6197 c12.4998,-1.6891 10.4729,7.0945 0,21.6215 c22.9729,-4.0539 12.1620,5.4053 12.1620,13.1756 c-0.3377,4.0539 8.7836,21.9594 26.0135,-1.3513" id="svg_12" fill="none" stroke="#000000" stroke-width="2" fill-opacity="1" stroke-opacity="1"/>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
<foreignContent id="pen">
|
||||
<g id="pen">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<defs>
|
||||
<linearGradient id="svg_16" x1="0.46484" y1="0.15625" x2="0.9375" y2="0.39453">
|
||||
<stop offset="0" stop-color="#f2feff" stop-opacity="1"/>
|
||||
|
@ -68,49 +236,37 @@
|
|||
<stop offset="1" stop-color="#fce564" stop-opacity="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<line x1="0.99844" y1="1.49067" x2="12.97691" y2="21.14149" id="svg_5" stroke="#000000" fill="none"/>
|
||||
<path d="m14.05272,13.68732l-1.46451,7.52632l4.03769,-6.32571" id="svg_6" fill="#a0a0a0" stroke="#000000"/>
|
||||
<path d="m13.61215,10.26563c-0.38567,1.05257 -0.60723,2.40261 -0.50403,3.125l4.33468,1.81452c0.46153,-0.30769 1.6129,-1.71371 1.6129,-2.52016" id="svg_7" fill="url(#svg_19)" stroke="#000000"/>
|
||||
<path d="m16.61335,1.00028l-3.67325,8.60247l7.10285,3.47318l3.17783,-7.20549" id="svg_8" fill="url(#svg_16)" stroke="#000000"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
<foreignContent id="text">
|
||||
<g id="text">
|
||||
<svg id="svgzoom" viewBox="0 0 158 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<text x="58" y="120" id="svg_1" fill="#000000" stroke="#000000" stroke-width="0" font-size="120pt" font-family="sans-serif" text-anchor="middle" fill-opacity="1" stroke-opacity="1" font-weight="bold">A</text>
|
||||
<line x1="136" y1="7" x2="136" y2="121" id="svg_2" stroke="#000000" fill="none" fill-opacity="1" stroke-opacity="1" stroke-width="5"/>
|
||||
<line x1="120" y1="4" x2="152" y2="4" id="svg_3" stroke="#000000" stroke-width="5" fill="none" fill-opacity="1" stroke-opacity="1"/>
|
||||
</g>
|
||||
<line x1="120" y1="124" x2="152" y2="124" stroke="#000000" stroke-width="5" fill="none" fill-opacity="1" stroke-opacity="1" id="svg_4"/>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
|
||||
<foreignContent id="path">
|
||||
<g id="path">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 124 124" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<defs>
|
||||
<linearGradient y2="1" x2="1" y1="0.28125" x1="0.33594" id="svg_4">
|
||||
<stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
|
||||
<stop stop-opacity="1" stop-color="#33a533" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<path stroke-dasharray="null" stroke-width="4" stroke="#000000" fill="url(#svg_4)" id="svg_1" d="m6,103l55,-87c85,33.64 -26,37.12 55,87l-110,0z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<foreignContent id="image">
|
||||
<g id="image">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<defs>
|
||||
<linearGradient y2="1" x2="1" y1="0" x1="1" id="svg_25">
|
||||
<stop stop-opacity="1" stop-color="#10284c" offset="0"/>
|
||||
|
@ -121,65 +277,53 @@
|
|||
<stop stop-opacity="1" stop-color="#97c4ef" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<rect x="1" y="3.83333" width="22" height="17" id="svg_18" fill="#202020" stroke="#ffffff" stroke-width="0"/>
|
||||
<title>Layer 1</title>
|
||||
<rect stroke-width="1.2" stroke="#ffffff" fill="#232947" id="svg_15" height="14" width="19" y="5.33333" x="2.5"/>
|
||||
<rect fill="url(#svg_23)" id="svg_20" height="7.02244" width="15.96424" y="6.7266" x="4"/>
|
||||
<rect fill="url(#svg_25)" id="svg_24" height="4.02393" width="15.96303" y="13.77454" x="4"/>
|
||||
<circle fill="#ffffad" id="svg_26" r="1.83333" cy="9.82002" cx="7.13254"/>
|
||||
<path d="m14.5696,13.77458l0.70243,-4.85313l-3.12899,4.85313l2.42656,0z" id="svg_14" fill="#404040" stroke="#000000" stroke-width="0"/>
|
||||
<path d="m15.27203,8.98531c2.74584,0.06386 2.42657,4.21456 -0.63857,4.85313c0.70243,-1.27714 1.66028,-3.63985 0.63857,-4.85313z" id="svg_17" fill="#404040" stroke="#000000" stroke-width="0"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
<foreignContent id="zoom">
|
||||
<g id="zoom">
|
||||
<svg viewBox="0 0 150 150" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<defs>
|
||||
<linearGradient id="svg_30" x1="0" y1="0" x2="1" y2="0">
|
||||
<stop offset="0" stop-color="#d3d3d3" stop-opacity="1"/>
|
||||
<stop offset="1" stop-color="#424242" stop-opacity="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<path d="m107.14774,101.03477l-0.64774,43.96523c5.00857,4.72089 14.00811,5.27188 19,0l-0.31667,-44.16l-9.61514,-19.84l-8.42046,20.03477z" id="svg_29" fill="url(#svg_30)" stroke="#202020" stroke-width="2" transform="rotate(-45, 116, 114)"/>
|
||||
<circle cx="58" cy="58" r="51" id="svg_22" fill="#c0c0c0" stroke="#202020" stroke-width="5"/>
|
||||
<circle cx="58" cy="58" r="43" id="svg_27" fill="#aaccff" stroke="#202020" stroke-width="0"/>
|
||||
<path d="m15.68604,61.46511c38.13954,17.67442 48.13954,15.34883 85.11628,-0.46511c1.39536,18.60465 -19.30231,41.86047 -42.7907,40.93023c-21.6279,-0.93023 -42.7907,-21.86046 -42.32558,-40.46511z" id="svg_28" fill="#8cbaff" stroke="#202020" stroke-width="0"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
<foreignContent id="arrow_right">
|
||||
<g id="arrow_right">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 50">
|
||||
<path stroke="#000000" fill="#000000" d="m0,0l0,50l25,-25l-25,-25z"/>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
<foreignContent id="arrow_down">
|
||||
<g id="arrow_down">
|
||||
<svg viewBox="0 0 50 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<path transform="rotate(90, 26, 13)" d="m14,-12l0,50l25,-25l-25,-25z" fill="#000000" stroke="#000000"/>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
|
||||
<foreignContent id="new_image">
|
||||
<g id="new_image">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<rect x="2.42792" y="1.6692" width="18" height="21" id="svg_55" fill="#eaeaea" stroke="#606060"/>
|
||||
<circle stroke-width="0" stroke="#a0a0a0" fill="#fff175" id="svg_65" r="3.83333" cy="6.24769" cx="19.16813"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<foreignContent id="save">
|
||||
<g id="save">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<defs>
|
||||
<linearGradient y2="0" x2="1" y1="0" x1="0" id="svg_41">
|
||||
<stop stop-opacity="1" stop-color="#727272" offset="0"/>
|
||||
|
@ -190,29 +334,39 @@
|
|||
<stop stop-opacity="1" stop-color="#376eb7" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<g id="svg_44">
|
||||
<path stroke="#202020" fill="#e0e0e0" id="svg_21" d="m1.51669,22.3458l21.13245,-0.10111l0,-6.06673l-2.62892,-9.80789l-16.27907,0.10111l-2.32558,9.20121l0.10111,6.67341z"/>
|
||||
<rect stroke="#efefef" fill="url(#svg_41)" id="svg_32" height="4.75108" width="19.21031" y="16.58227" x="2.42667"/>
|
||||
<path stroke="#ffffff" fill="#c0c0c0" id="svg_42" d="m4.55005,11.12235l0.70779,-2.83114l13.04348,0l0.70779,3.13448c-0.70779,2.52781 -4.04479,3.84227 -7.17897,3.84227c-2.72977,0 -6.37007,-1.41557 -7.28008,-4.1456z"/>
|
||||
</g>
|
||||
<path stroke="#285582" fill="url(#svg_46)" id="svg_45" d="m7.14286,9.74903l5.21236,5.79151l5.50193,-5.88803l-2.50965,-0.09653l0,-2.79923c0,-2.3166 -2.3166,-5.59846 -6.56371,-5.59846c-4.05405,0 -6.27413,3.37838 -6.56371,6.75676c0.48263,-1.5444 2.7027,-4.53668 4.44015,-4.44015c2.12355,-0.09653 2.79923,1.64093 2.79923,3.37838l0.09653,2.79923l-2.41313,0.09653z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
<foreignContent id="docprops">
|
||||
<g id="open">
|
||||
<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<linearGradient y2="0.91406" x2="0.65234" y1="0.14063" x1="0.42578" id="svg_76">
|
||||
<stop stop-opacity="1" stop-color="#81bbf4" offset="0"/>
|
||||
<stop stop-opacity="1" stop-color="#376eb7" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="1.65" y="3.75" width="9.8" height="16.72712" id="svg_98" fill="#c0c0c0" stroke="#606060"/>
|
||||
<rect stroke-width="0" stroke="#606060" fill="#a0a0a0" id="svg_88" height="14.17459" width="6.39585" y="4.9758" x="2.89542"/>
|
||||
<path d="m18.62576,4.54365l0,6.91443l-9.9395,0l-0.08643,-10.11236l6.828,0l3.19792,3.19793z" id="svg_99" fill="#e0e0e0" stroke="#404040"/>
|
||||
<path d="m2.95,20.53644l1.65,-12.03644l16.2,0l-1.5,12l-16.35,0.03643z" id="svg_97" fill="url(#svg_76)" stroke="#285582"/>
|
||||
<line fill="none" stroke="#606060" id="svg_89" y2="4.28436" x2="13.95851" y1="4.28436" x1="10.32844"/>
|
||||
<line fill="none" stroke="#606060" id="svg_91" y2="6.53155" x2="14.82282" y1="6.53155" x1="10.32844"/>
|
||||
<path stroke-width="0" stroke="#606060" fill="#ffffff" id="svg_100" d="m15.25895,1.95069l-0.00401,2.85225l2.89558,0.00004l-2.89157,-2.85229z"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="docprops">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<defs>
|
||||
<linearGradient y2="1" x2="1" y1="0.5" x1="1" id="svg_53">
|
||||
<stop stop-opacity="1" stop-color="#606060" offset="0"/>
|
||||
<stop stop-opacity="0" stop-color="#5e5e5e" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<rect stroke="#606060" fill="#eaeaea" id="svg_55" height="21" width="18" y="1.6692" x="2.42792"/>
|
||||
<line fill="none" stroke="#a0a0a0" id="svg_56" y2="4.37757" x2="14.89023" y1="4.37757" x1="6.696"/>
|
||||
<line fill="none" stroke="#a0a0a0" id="svg_57" y2="7.10804" x2="12.92026" y1="7.10804" x1="6.6948"/>
|
||||
|
@ -224,15 +378,11 @@
|
|||
<path transform="rotate(-45, 12.5448, 11.7085)" stroke-width="0" stroke="#000000" fill="#606060" id="svg_31" d="m11.24329,8.73944l0,2.79974l2.53499,0.07777l0,-2.95528c1.78134,0.07777 2.26093,1.39987 2.12391,2.95528c-0.06851,1.63318 -1.30175,3.49967 -3.49418,3.26636c-2.19242,-0.31108 -2.87755,-1.39987 -3.15161,-2.72197c-0.27406,-1.39987 0.41108,-3.34413 1.98689,-3.4219z"/>
|
||||
<rect opacity="0.95" transform="rotate(-45, 16.2485, 15.1732)" stroke-width="0" stroke="#000000" fill="url(#svg_53)" id="svg_50" height="4.85445" width="2.57974" y="12.746" x="15.04047"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
<foreignContent id="source">
|
||||
<g id="source">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 55 52">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<text xml:space="preserve" text-anchor="middle" font-family="monospace" font-size="24" stroke-width="0" stroke="#000000" fill="#019191" id="svg_40" y="15" x="28.23" font-weight="bold">s</text>
|
||||
<text xml:space="preserve" text-anchor="middle" font-family="monospace" font-size="24" stroke-width="0" stroke="#000000" fill="#019191" id="svg_47" y="30" x="28.23" font-weight="bold">v</text>
|
||||
<text xml:space="preserve" text-anchor="middle" font-family="monospace" font-size="24" stroke-width="0" stroke="#000000" fill="#019191" id="svg_48" y="44" x="28.23" font-weight="bold">g</text>
|
||||
|
@ -240,56 +390,42 @@
|
|||
<line id="svg_62" stroke-width="3" fill="none" stroke="#aa0000" y2="8" x2="16" y1="26" x1="5"/>
|
||||
<line id="svg_63" stroke-width="3" fill="none" stroke="#aa0000" y2="43" x2="39" y1="25" x1="50"/>
|
||||
<line id="svg_64" stroke-width="3" fill="none" stroke="#aa0000" y2="8" x2="39" y1="26" x1="51"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<foreignContent id="wireframe">
|
||||
<g id="wireframe">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<circle stroke="#000000" fill="none" id="svg_49" r="8" cy="9.5" cx="9.5"/>
|
||||
<rect stroke="#000000" fill="none" id="svg_52" height="14" width="14" y="8.5" x="8.5"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<foreignContent id="undo">
|
||||
<g id="undo">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<defs>
|
||||
<linearGradient id="svg_66" x1="0.04297" y1="0.00391" x2="0.21484" y2="0.875">
|
||||
<stop offset="0" stop-color="#f7f963" stop-opacity="1"/>
|
||||
<stop offset="1" stop-color="#d3c310" stop-opacity="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<path transform="rotate(-90, 10.3017, 11.5526)" d="m6.70188,10.72562l6.55493,-7.13388l6.65817,7.24912l-3.79441,0.03193l0,2.72259c-0.04257,2.74017 -2.76516,5.83068 -7.81235,6.02135c-5.18575,0 -7.1226,-3.75464 -7.49302,-7.41944c0.61736,1.6754 3.14913,3.78397 5.3716,3.67918c2.71635,0.1048 4.41501,-0.61714 4.41501,-2.50184l0,-2.64901l-3.89995,0z" id="svg_45" fill="url(#svg_66)" stroke="#b7a800"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<foreignContent id="redo">
|
||||
<g id="redo">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<defs>
|
||||
<linearGradient y2="1" x2="1" y1="0" x1="1" id="svg_71">
|
||||
<stop stop-opacity="1" stop-color="#98fc46" offset="0"/>
|
||||
<stop stop-opacity="1" stop-color="#56aa25" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<path transform="rotate(-90, 12.7299, 11.5526)" d="m9.11294,12.43144l6.54089,6.84566l6.6439,-6.95624l-3.78628,-0.03064l0,-2.61259c-0.04248,-2.62946 -2.75924,-5.5951 -7.79561,-5.77807c-5.17464,0 -7.10734,3.60294 -7.47697,7.11967c0.61604,-1.60771 3.14238,-3.63109 5.36009,-3.53053c2.71053,-0.10056 4.40555,0.59221 4.40555,2.40076l0,2.54198l-3.89159,0z" id="svg_45" fill="url(#svg_71)" stroke="#44aa00"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<foreignContent id="clone">
|
||||
<g id="clone">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<defs>
|
||||
<linearGradient y2="1" x2="1" y1="0" x1="0" id="svg_36">
|
||||
<stop stop-opacity="1" stop-color="#f9f3de" offset="0"/>
|
||||
|
@ -300,47 +436,36 @@
|
|||
<stop stop-opacity="1" stop-color="#af995b" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<path stroke="#8f5902" fill="url(#svg_69)" id="svg_34" d="m2.11676,16.32061l-0.13787,-5.05515l1.93015,-2.02206l10.11029,0l2.02206,2.29779l0,4.77941l-13.92463,0z"/>
|
||||
<title>Layer 1</title>
|
||||
<rect x="7.85379" y="6.30027" width="2.2932" height="4.3407" id="svg_38" fill="url(#svg_36)" stroke="#8f5902" rx="1" ry="1"/>
|
||||
<circle stroke="#8f5902" fill="url(#svg_36)" id="svg_35" r="2.96392" cy="4.48149" cx="9.11757"/>
|
||||
<line x1="2.44838" y1="12.03512" x2="15.5524" y2="12.03512" id="svg_39" stroke="#f9f3de" fill="none"/>
|
||||
<path d="m6.72427,12.55859l4.74203,0l-2.30831,2.07258l-2.43372,-2.07258z" id="svg_43" fill="#000000" stroke="#8f5902" fill-opacity="0.76" stroke-width="0"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
<foreignContent id="delete">
|
||||
<g id="delete">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<rect ry="3" rx="3" stroke="#800000" fill="#aa0000" id="svg_37" height="20.29514" width="21.17486" y="1.70304" x="1.42011"/>
|
||||
<rect ry="3" rx="3" stroke="#ff5555" fill="#aa0000" id="svg_67" height="18.63022" width="19.61118" y="2.53597" x="2.20258"/>
|
||||
<line stroke-width="2" fill="none" stroke="#ffffff" id="svg_68" y2="16.85127" x2="17.00646" y1="6.85127" x1="7.00646"/>
|
||||
<line stroke-width="2" id="svg_70" fill="none" stroke="#ffffff" y2="16.85127" x2="7.00646" y1="6.85127" x1="17.00646"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<foreignContent id="go_up">
|
||||
<g id="go_up">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
|
||||
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||
<defs>
|
||||
<linearGradient y2="0" x2="0.7" y1="0" x1="0" id="svg_74">
|
||||
<stop stop-opacity="1" stop-color="#afe853" offset="0"/>
|
||||
<stop stop-opacity="1" stop-color="#52a310" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<path stroke="#008000" fill="url(#svg_74)" id="svg_33" d="m5.38492,16.77043l7.07692,0l0,-5.23077l4.15385,0l-7.69231,-10.15385l-7.69231,10.15385l4.15385,0l0,5.23077z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
<foreignContent id="go_down">
|
||||
<g id="go_down">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
|
||||
<defs>
|
||||
<linearGradient y2="0" x2="0.7" y1="0" x1="0" id="svg_75">
|
||||
|
@ -348,14 +473,11 @@
|
|||
<stop stop-opacity="1" stop-color="#52a310" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<path stroke="#008000" fill="url(#svg_75)" id="svg_33" d="m5.3015,1.69202l6.93483,0l0,5.07323l4.07045,0l-7.53786,9.84803l-7.53786,-9.84803l4.07045,0l0,-5.07323z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<foreignContent id="move_bottom">
|
||||
<g id="move_bottom">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 23">
|
||||
<defs>
|
||||
<linearGradient y2="0" x2="1" y1="0" x1="0" id="svg_80">
|
||||
|
@ -363,19 +485,16 @@
|
|||
<stop stop-opacity="1" stop-color="#fcfc9f" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<line stroke-width="2" fill="none" stroke="#000000" id="svg_72" y2="2.5" x2="22" y1="2.5" x1="10.5"/>
|
||||
<line id="svg_73" stroke-width="2" fill="none" stroke="#000000" y2="6.5" x2="21.99844" y1="6.5" x1="10.49844"/>
|
||||
<line id="svg_74" stroke-width="2" fill="none" stroke="#000000" y2="10.5" x2="21.99922" y1="10.5" x1="10.49922"/>
|
||||
<line id="svg_75" stroke-width="2" fill="none" stroke="#000000" y2="14.5" x2="21.99922" y1="14.5" x1="10.49922"/>
|
||||
<rect stroke="#000000" fill="url(#svg_80)" id="svg_77" height="2.2" width="20" y="17.65" x="1.65"/>
|
||||
<path stroke-width="0" stroke="#000000" fill="#000000" id="svg_81" d="m4.25,1.55l2.35,0l0,11.05l2,0l-3.175,3.45l-3.175,-3.45l2,0l0,-11.05z"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<foreignContent id="move_top">
|
||||
<g id="move_top">
|
||||
<svg viewBox="0 0 23 23" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<linearGradient id="svg_86" x1="0" y1="0" x2="1" y2="0">
|
||||
|
@ -383,17 +502,172 @@
|
|||
<stop offset="1" stop-color="#617e96" stop-opacity="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<line x1="1.3" y1="8.19922" x2="12.8" y2="8.19922" id="svg_72" stroke="#000000" fill="none" stroke-width="2"/>
|
||||
<line x1="1.29844" y1="12.19922" x2="12.79844" y2="12.19922" stroke="#000000" fill="none" stroke-width="2" id="svg_73"/>
|
||||
<line x1="1.29922" y1="16.19922" x2="12.79922" y2="16.19922" stroke="#000000" fill="none" stroke-width="2" id="svg_74"/>
|
||||
<line x1="1.29922" y1="20.19922" x2="12.79922" y2="20.19922" stroke="#000000" fill="none" stroke-width="2" id="svg_75"/>
|
||||
<rect x="1.55" y="1.85" width="20" height="3.2" id="svg_77" fill="url(#svg_86)" stroke="#000000"/>
|
||||
<path d="m16.83475,21.14603l2.33207,0l0,-11.04578l1.98474,0l-3.15077,-3.44869l-3.15077,3.44869l1.98474,0l0,11.04578z" id="svg_81" fill="#000000" stroke="#000000" stroke-width="0"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="group">
|
||||
<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<linearGradient id="svg_90" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#ccddff" stop-opacity="1"/>
|
||||
<stop offset="1" stop-color="#789fed" stop-opacity="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="svg_92" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#70a1e5" stop-opacity="1"/>
|
||||
<stop offset="1" stop-color="#4b6baf" stop-opacity="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="13.5" y="0.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_79"/>
|
||||
<rect x="13.5" y="13.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_82"/>
|
||||
<rect x="0.5" y="13.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_83"/>
|
||||
<rect x="2.5" y="2.5" width="8" height="7" fill="#a0a0a0" stroke="#555555" id="svg_85"/>
|
||||
<rect x="2.5" y="2.5" width="8" height="7" fill="url(#svg_90)" stroke="url(#svg_92)" id="svg_87"/>
|
||||
<rect x="5.5" y="6.5" width="8" height="7" id="svg_84" fill="#7399d6" stroke="url(#svg_92)"/>
|
||||
<rect x="0.5" y="0.5" width="2" height="2" id="svg_78" fill="#a0a0a0" stroke="#555555"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="ungroup">
|
||||
<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<linearGradient id="svg_90" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#ccddff" stop-opacity="1"/>
|
||||
<stop offset="1" stop-color="#789fed" stop-opacity="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="svg_92" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#70a1e5" stop-opacity="1"/>
|
||||
<stop offset="1" stop-color="#4b6baf" stop-opacity="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="2.5" y="2.5" width="8" height="7" fill="url(#svg_90)" stroke="url(#svg_92)" id="svg_87"/>
|
||||
<rect x="5.5" y="6.5" width="8" height="7" id="svg_84" fill="#7399d6" stroke="url(#svg_92)"/>
|
||||
<rect x="9.5" y="1.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_79"/>
|
||||
<rect x="1.5" y="8.5" width="2" height="2" fill="#a0a0a0" stroke="#555555" id="svg_83"/>
|
||||
<rect x="1.5" y="1.5" width="2" height="2" id="svg_78" fill="#a0a0a0" stroke="#555555"/>
|
||||
<rect id="svg_93" x="12.5" y="5.5" width="2" height="2" fill="#a0a0a0" stroke="#555555"/>
|
||||
<rect id="svg_94" x="12.5" y="12.5" width="2" height="2" fill="#a0a0a0" stroke="#555555"/>
|
||||
<rect id="svg_95" x="4.5" y="12.5" width="2" height="2" fill="#a0a0a0" stroke="#555555"/>
|
||||
<rect id="svg_96" x="4.5" y="5.5" width="2" height="2" fill="#a0a0a0" stroke="#555555"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="align_left">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
|
||||
<rect stroke="#606060" fill="#ffffff" id="svg_4" height="7" width="12" y="2.5" x="2.5"/>
|
||||
<rect stroke-width="0" stroke="#606060" fill="#c0c0c0" id="svg_5" height="4" width="11" y="4" x="2"/>
|
||||
<rect id="svg_6" stroke="#606060" fill="#ffffff" height="7" width="18" y="12.5" x="2.5"/>
|
||||
<rect id="svg_7" stroke-width="0" stroke="#606060" fill="#c0c0c0" height="4" width="17" y="14" x="2"/>
|
||||
<rect stroke="#c15909" fill="#ef9a23" id="svg_2" height="40" width="2" y="-10" x="1.5"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="align_center">
|
||||
<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<rect x="1.5" y="12.5" width="18" height="7" fill="#c0c0c0" stroke="#606060" id="svg_6"/>
|
||||
<rect x="4.5" y="2.5" width="12" height="7" id="svg_4" fill="#c0c0c0" stroke="#606060"/>
|
||||
<rect x="9.5" y="-10" width="2" height="40" id="svg_2" fill="#ef9a23" stroke="#c15909"/>
|
||||
<rect x="2.5" y="13.5" width="16" height="5" fill="none" stroke="#ffffff" id="svg_7"/>
|
||||
<rect x="5.5" y="3.5" width="10" height="5" id="svg_5" fill="none" stroke="#ffffff"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="align_right">
|
||||
<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<rect x="7.5" y="2.5" width="12" height="7" id="svg_4" fill="#ffffff" stroke="#606060"/>
|
||||
<rect x="9" y="4" width="11" height="4" id="svg_5" fill="#c0c0c0" stroke="#606060" stroke-width="0"/>
|
||||
<rect x="1.5" y="12.5" width="18" height="7" fill="#ffffff" stroke="#606060" id="svg_6"/>
|
||||
<rect x="3" y="14" width="17" height="4" fill="#c0c0c0" stroke="#606060" stroke-width="0" id="svg_7"/>
|
||||
<rect x="18.5" y="-10" width="2" height="40" id="svg_2" fill="#ef9a23" stroke="#c15909"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="align_top">
|
||||
<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g transform="rotate(90, 11, 11)" id="svg_1">
|
||||
<rect x="2.5" y="3.5" width="12" height="7" id="svg_4" fill="#ffffff" stroke="#606060"/>
|
||||
<rect x="2" y="5" width="11" height="4" id="svg_5" fill="#c0c0c0" stroke="#606060" stroke-width="0"/>
|
||||
<rect x="2.5" y="13.5" width="18" height="7" fill="#ffffff" stroke="#606060" id="svg_6"/>
|
||||
<rect x="2" y="15" width="17" height="4" fill="#c0c0c0" stroke="#606060" stroke-width="0" id="svg_7"/>
|
||||
<rect x="1.5" y="-9" width="2" height="40" id="svg_2" fill="#ef9a23" stroke="#c15909"/>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="align_middle">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
|
||||
<g transform="rotate(90, 12, 11.5)" id="svg_1">
|
||||
<rect id="svg_6" stroke="#606060" fill="#c0c0c0" height="7" width="18" y="14" x="3"/>
|
||||
<rect stroke="#606060" fill="#c0c0c0" id="svg_4" height="7" width="12" y="4" x="6"/>
|
||||
<rect stroke="#c15909" fill="#ef9a23" id="svg_2" height="40" width="2" y="-8.5" x="11"/>
|
||||
<rect id="svg_7" stroke="#ffffff" fill="none" height="5" width="16" y="15" x="4"/>
|
||||
<rect stroke="#ffffff" fill="none" id="svg_5" height="5" width="10" y="5" x="7"/>
|
||||
</g>
|
||||
</svg>
|
||||
</foreignContent>
|
||||
</g>
|
||||
|
||||
<g id="align_bottom">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
|
||||
<g transform="rotate(90, 11, 11)" id="svg_1">
|
||||
<rect stroke="#606060" fill="#ffffff" id="svg_4" height="7" width="12" y="2.5" x="7.5"/>
|
||||
<rect stroke-width="0" stroke="#606060" fill="#c0c0c0" id="svg_5" height="4" width="11" y="4" x="9"/>
|
||||
<rect id="svg_6" stroke="#606060" fill="#ffffff" height="7" width="18" y="12.5" x="1.5"/>
|
||||
<rect id="svg_7" stroke-width="0" stroke="#606060" fill="#c0c0c0" height="4" width="17" y="14" x="3"/>
|
||||
<rect stroke="#c15909" fill="#ef9a23" id="svg_2" height="40" width="2" y="-10" x="18.5"/>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="eye">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17">
|
||||
<defs>
|
||||
<linearGradient y2="0.79688" x2="0.5625" y1="0.19141" x1="0.42969" id="svg_91">
|
||||
<stop stop-opacity="1" stop-color="#d3a16b" offset="0"/>
|
||||
<stop stop-opacity="1" stop-color="#a37c53" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path stroke-width="0" stroke="#000000" fill="url(#svg_91)" id="svg_9" d="m0.12852,8.18338c3.59931,-7.71208 13.19749,-7.36932 16.75236,0.08569c-3.02165,7.5407 -13.59741,7.66924 -16.75236,-0.08569z"/>
|
||||
<path id="svg_76" stroke-width="0" stroke="#000000" fill="#ffffff" d="m0.33033,8.2557c3.5173,-4.97159 12.89675,-4.75063 16.37062,0.05524c-2.95279,4.86111 -13.28756,4.94397 -16.37062,-0.05524z"/>
|
||||
<circle stroke-width="0" stroke="#000000" fill="#4f92c1" id="svg_88" r="3.08008" cy="7.71116" cx="8.45861"/>
|
||||
<circle stroke-width="0" stroke="#000000" fill="#000000" id="svg_89" r="1.27539" cy="7.6539" cx="8.43159"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="no_color">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<line fill="none" stroke="#d40000" id="svg_90" y2="24" x2="24" y1="0" x1="0"/>
|
||||
<line id="svg_92" fill="none" stroke="#d40000" y2="24" x2="0" y1="0" x1="24"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="ok">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<defs>
|
||||
<linearGradient y2="0.65625" x2="0.94141" y1="0.43359" x1="0.42969" id="svg_106">
|
||||
<stop stop-opacity="1" stop-color="#38ff45" offset="0"/>
|
||||
<stop stop-opacity="1" stop-color="#127c0c" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path transform="rotate(45, 12, 10)" stroke="#005500" fill="url(#svg_106)" id="svg_101" d="m7.9,15.9l4.9,-0.05l0,-13.75l3.8,0l0,17.6l-8.7,0l0,-3.8z"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="cancel">
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<defs>
|
||||
<linearGradient y2="0.65625" x2="0.94141" y1="0.43359" x1="0.42969" id="svg_9">
|
||||
<stop stop-opacity="1" stop-color="#ff3838" offset="0"/>
|
||||
<stop stop-opacity="1" stop-color="#7a0c0c" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path stroke="#550000" fill="url(#svg_9)" id="svg_101" d="m2.10526,10.52632l7.36842,0l0,-7.36842l3.68421,0l0,7.36842l7.36842,0l0,3.68421l-7.36842,0l0,7.36842l-3.68421,0l0,-7.36842l-7.36842,0l0,-3.68421z" transform="rotate(45, 11.3, 12.3)"/>
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
<g id="svg_eof"/>
|
||||
|
||||
|
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 41 KiB |
Binary file not shown.
|
@ -116,5 +116,19 @@
|
|||
{"id":"tool_node_delete","title":"Delete Node"},
|
||||
{"id":"selLayerLabel","textContent":"Move elements to:"},
|
||||
{"id":"selLayerNames","title":"Move selected elements to a different layer"},
|
||||
{"id":"sidepanel_handle","title":"Drag left/right to resize side panel [X]","textContent":"L a y e r s"}
|
||||
{"id":"sidepanel_handle","title":"Drag left/right to resize side panel [X]","textContent":"L a y e r s"},
|
||||
{"js_strings": {
|
||||
"invalidAttrValGiven":"Invalid value given",
|
||||
"noContentToFitTo":"No content to fit to",
|
||||
'layer':"Layer",
|
||||
"dupeLayerName":"There is already a layer named that!",
|
||||
"enterUniqueLayerName":"Please enter a unique layer name",
|
||||
"enterNewLayerName":"Please enter the new layer name",
|
||||
"layerHasThatName":"Layer already has that name",
|
||||
"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
|
||||
"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
|
||||
"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
|
||||
"QignoreSourceChanges":"Ignore changes made to SVG source?"
|
||||
}
|
||||
}
|
||||
];
|
||||
|
|
|
@ -1,33 +1,43 @@
|
|||
// function GUP is taken from http://www.netlobo.com/url_query_string_javascript.html
|
||||
// gup = get URL parameter
|
||||
function gup( name )
|
||||
{
|
||||
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
|
||||
var regexS = "[\\?&]"+name+"=([^&#]*)";
|
||||
var regex = new RegExp( regexS );
|
||||
var results = regex.exec( window.location.href );
|
||||
if( results == null )
|
||||
return "";
|
||||
else
|
||||
return results[1];
|
||||
}
|
||||
|
||||
var put_locale = function(){
|
||||
var lang_param = gup("lang");
|
||||
var put_locale = function(svgCanvas, given_param){
|
||||
var lang_param;
|
||||
if(given_param) {
|
||||
lang_param = given_param;
|
||||
} else {
|
||||
lang_param = $.pref('lang');
|
||||
if(!lang_param) {
|
||||
if (navigator.userLanguage) // Explorer
|
||||
lang_param = navigator.userLanguage;
|
||||
else if (navigator.language) // FF, Opera, ...
|
||||
lang_param = navigator.language;
|
||||
if (lang_param == "")
|
||||
return;
|
||||
}
|
||||
// don't bother on first run if language is English
|
||||
if(lang_param.indexOf("en") == 0) return;
|
||||
}
|
||||
|
||||
var url = "locale/lang." + lang_param + ".js";
|
||||
$.get(url, function(data){
|
||||
var LangData = eval(data);
|
||||
for (var i=0;i<LangData.length;i++)
|
||||
{
|
||||
var elem = document.getElementById(LangData[i].id);
|
||||
if(elem){
|
||||
if(LangData[i].title)
|
||||
elem.title = LangData[i].title;
|
||||
if(LangData[i].textContent)
|
||||
elem.textContent = LangData[i].textContent;
|
||||
var LangData = eval(data), js_strings;
|
||||
$.each(LangData, function(i, data) {
|
||||
if(data.id) {
|
||||
var elem = $('#'+data.id)[0];
|
||||
if(elem) {
|
||||
if(data.title)
|
||||
elem.title = data.title;
|
||||
if(data.textContent) {
|
||||
// Only replace text nodes, not elements
|
||||
$.each(elem.childNodes, function(j, node) {
|
||||
if(node.nodeType == 3) {
|
||||
node.textContent = data.textContent;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
} else if(data.js_strings) {
|
||||
js_strings = data.js_strings;
|
||||
}
|
||||
});
|
||||
svgCanvas.setLang(lang_param, js_strings);
|
||||
},"json");
|
||||
};
|
||||
|
|
|
@ -81,7 +81,6 @@ $.fn.SpinButton = function(cfg){
|
|||
delay: cfg && cfg.delay ? Number(cfg.delay) : 500,
|
||||
interval: cfg && cfg.interval ? Number(cfg.interval) : 100,
|
||||
_btn_width: 20,
|
||||
_btn_height: 12,
|
||||
_direction: null,
|
||||
_delay: null,
|
||||
_repeat: null,
|
||||
|
@ -112,9 +111,10 @@ $.fn.SpinButton = function(cfg){
|
|||
var x = e.pageX || e.x;
|
||||
var y = e.pageY || e.y;
|
||||
var el = e.target || e.srcElement;
|
||||
var height = $(el).outerHeight()/2;
|
||||
var direction =
|
||||
(x > coord(el,'offsetLeft') + el.offsetWidth - this.spinCfg._btn_width)
|
||||
? ((y < coord(el,'offsetTop') + this.spinCfg._btn_height) ? 1 : -1) : 0;
|
||||
? ((y < coord(el,'offsetTop') + height) ? 1 : -1) : 0;
|
||||
|
||||
if (direction !== this.spinCfg._direction) {
|
||||
// Style up/down buttons:
|
||||
|
|
|
@ -0,0 +1,679 @@
|
|||
body {
|
||||
background: #E8E8E8;
|
||||
}
|
||||
|
||||
#svg_editor {
|
||||
font-size: 8pt;
|
||||
font-family: Verdana, Helvetica, Arial;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#svg_editor a {
|
||||
color: #0000FF;
|
||||
}
|
||||
|
||||
#svg_editor hr {
|
||||
border: none;
|
||||
border-bottom: 1px solid #808080;
|
||||
}
|
||||
|
||||
#svg_editor select {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
#svg_editor #svgroot {
|
||||
-moz-user-select: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
#svg_editor #svgcanvas {
|
||||
background-color: #FFFFFF;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
width: 640px;
|
||||
height: 480px;
|
||||
-apple-dashboard-region:dashboard-region(control rectangle 0px 0px 0px 0px); /* for widget regions that shouldn't react to dragging */
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#svg_editor div#palette_holder {
|
||||
overflow-x: scroll;
|
||||
overflow-y: hidden;
|
||||
height: 31px;
|
||||
border: 1px solid #808080;
|
||||
border-top: none;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
#svg_editor #fill_color, #svg_editor #stroke_color {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
border: 1px solid #808080;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#svg_editor div#palette {
|
||||
float: left;
|
||||
width: 6848px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
#svg_editor div#workarea {
|
||||
display: inline-block;
|
||||
position:absolute;
|
||||
top: 75px;
|
||||
left: 40px;
|
||||
bottom: 60px;
|
||||
right: 14px;
|
||||
background-color: #A0A0A0;
|
||||
border: 1px solid #808080;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#svg_editor #sidepanels {
|
||||
display: inline-block;
|
||||
position:absolute;
|
||||
top: 75px;
|
||||
bottom: 60px;
|
||||
right: 0px;
|
||||
width: 2px;
|
||||
padding: 10px;
|
||||
border-color: #808080;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
#svg_editor #layerpanel {
|
||||
display: inline-block;
|
||||
background-color: #E8E8E8;
|
||||
position:absolute;
|
||||
top: 1px;
|
||||
bottom: 0px;
|
||||
right: 0px;
|
||||
width: 0px;
|
||||
overflow: hidden;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
/*
|
||||
border-style: solid;
|
||||
border-color: #666;
|
||||
border-width: 0px 0px 0px 1px;
|
||||
*/
|
||||
#svg_editor #sidepanel_handle {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: #E8E8E8;
|
||||
left: 0px;
|
||||
top: 40%;
|
||||
width: 1em;
|
||||
padding: 5px 1px 5px 5px;
|
||||
margin-left: 3px;
|
||||
cursor: pointer;
|
||||
border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-user-select: none;
|
||||
}
|
||||
|
||||
#svg_editor #sidepanel_handle:hover {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#svg_editor #sidepanel_handle * {
|
||||
cursor: pointer;
|
||||
-moz-user-select: none;
|
||||
}
|
||||
#svg_editor #layerbuttons {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
width: 106px;
|
||||
height: 20px;
|
||||
border-right: 1px solid #FFFFFF;
|
||||
border-bottom: 1px solid #FFFFFF;
|
||||
border-left: 1px solid #808080;
|
||||
border-top: 1px solid #808080;
|
||||
}
|
||||
|
||||
#svg_editor .layer_button {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
padding: 1px;
|
||||
border-left: 1px solid #FFFFFF;
|
||||
border-top: 1px solid #FFFFFF;
|
||||
border-right: 1px solid #808080;
|
||||
border-bottom: 1px solid #808080;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#svg_editor .layer_buttonpressed {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
padding: 1px;
|
||||
border-right: 1px solid #FFFFFF;
|
||||
border-bottom: 1px solid #FFFFFF;
|
||||
border-left: 1px solid #808080;
|
||||
border-top: 1px solid #808080;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#svg_editor #layerlist {
|
||||
margin: 1px;
|
||||
padding: 0px;
|
||||
width: 110px;
|
||||
border-collapse: collapse;
|
||||
border: 1px solid #808080;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
#svg_editor #layerlist tr.layer {
|
||||
background-color: #FFFFFF;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
#svg_editor #layerlist tr.layersel {
|
||||
border: 1px solid #808080;
|
||||
background-color: #CCCCCC;
|
||||
}
|
||||
|
||||
#svg_editor #layerlist td.layervis {
|
||||
background-image: url('images/eye.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 3px center;
|
||||
width: 22px;
|
||||
cursor:pointer;
|
||||
}
|
||||
#svg_editor #layerlist td.layerinvis {
|
||||
background-image: none;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
#svg_editor #layerlist td.layername {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#svg_editor #layerlist tr.layersel td.layername {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#svg_editor #selLayerLabel {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#svg_editor #selLayerNames {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#svg_editor div.palette_item {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#svg_editor #logo {
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: 4px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
#svg_editor #logo a img {
|
||||
border: 0;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
#svg_editor #tools_top {
|
||||
position: absolute;
|
||||
left: 38px;
|
||||
right: 2px;
|
||||
top: 2px;
|
||||
height: 75px;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
#svg_editor #tools_top > div {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#svg_editor #tools_left {
|
||||
position: absolute;
|
||||
border-right: none;
|
||||
width: 36px;
|
||||
top: 75px;
|
||||
left: 2px;
|
||||
}
|
||||
|
||||
#workarea.wireframe #svgcontent * {
|
||||
fill: none;
|
||||
stroke: #000;
|
||||
stroke-width: 1px;
|
||||
stroke-opacity: 1.0;
|
||||
stroke-dasharray: none;
|
||||
opacity: 1;
|
||||
pointer-events: stroke;
|
||||
}
|
||||
|
||||
#workarea.wireframe #svgcontent text {
|
||||
fill: #000;
|
||||
stroke: none;
|
||||
}
|
||||
|
||||
|
||||
#svg_editor #selected_panel,
|
||||
#svg_editor #multiselected_panel,
|
||||
#svg_editor #g_panel,
|
||||
#svg_editor #rect_panel,
|
||||
#svg_editor #circle_panel,
|
||||
#svg_editor #ellipse_panel,
|
||||
#svg_editor #line_panel,
|
||||
#svg_editor #image_panel,
|
||||
#svg_editor #text_panel,
|
||||
#svg_editor #path_node_panel {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#svg_editor #selected_panel .selected_tool {
|
||||
vertical-align: 12px;
|
||||
}
|
||||
|
||||
#svg_editor #multiselected_panel .selected_tool {
|
||||
vertical-align: 12px;
|
||||
}
|
||||
|
||||
#svg_editor #tools_top > div, #tools_top {
|
||||
float: left;
|
||||
line-height: 26px;
|
||||
}
|
||||
|
||||
#tools_top > div > * {
|
||||
float: left;
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
#tools_top label {
|
||||
margin-top: 3px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#tools_top input {
|
||||
margin-top: 5px;
|
||||
height: 15px;
|
||||
}
|
||||
|
||||
#svg_editor .flyout_arrow_horiz {
|
||||
float: right;
|
||||
position: relative;
|
||||
top: -13px;
|
||||
left: -5px;
|
||||
margin-bottom: -13px;
|
||||
}
|
||||
|
||||
.magic_field > * {
|
||||
float: left;
|
||||
}
|
||||
|
||||
span.zoom_tool {
|
||||
line-height: 26px;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.magic_field input {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.dropdown button {
|
||||
background: transparent 3px 8px url('images/dropdown.gif') no-repeat;
|
||||
width: 15px;
|
||||
height: 21px;
|
||||
margin: 6px 0 0 1px;
|
||||
padding: 0;
|
||||
border-left: 1px solid #FFFFFF;
|
||||
border-top: 1px solid #FFFFFF;
|
||||
border-right: 1px solid #808080;
|
||||
border-bottom: 1px solid #808080;
|
||||
}
|
||||
|
||||
.dropdown button.down {
|
||||
border-left: 1px solid #808080;
|
||||
border-top: 1px solid #808080;
|
||||
border-right: 1px solid #FFFFFF;
|
||||
border-bottom: 1px solid #FFFFFF;
|
||||
background-color: #B0B0B0;
|
||||
}
|
||||
|
||||
.dropdown ul {
|
||||
list-style: none;
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
left: -93px;
|
||||
top: 26px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.dropup ul {
|
||||
top: auto;
|
||||
bottom: 26px;
|
||||
}
|
||||
|
||||
.dropdown li {
|
||||
display: block;
|
||||
width: 120px;
|
||||
padding: 4px;
|
||||
background: #E8E8E8;
|
||||
border: 1px solid #B0B0B0;
|
||||
margin: 0 0 -1px 0;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.dropdown li:hover {
|
||||
background-color: #B0B0B0;
|
||||
}
|
||||
|
||||
.dropdown li.special {
|
||||
padding: 10px 4px;
|
||||
}
|
||||
|
||||
.dropdown li.special:hover {
|
||||
background: #E8E8E8;
|
||||
}
|
||||
|
||||
#opacity_dropdown li {
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
#svg_editor .tool_button,
|
||||
#svg_editor .push_button,
|
||||
#svg_editor .tool_button_current,
|
||||
#svg_editor .tool_button_disabled {
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
margin: 2px;
|
||||
padding: 2px;
|
||||
border-left: 1px solid #FFFFFF;
|
||||
border-top: 1px solid #FFFFFF;
|
||||
border-right: 1px solid #808080;
|
||||
border-bottom: 1px solid #808080;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#svg_editor .tool_button_current,
|
||||
#svg_editor .push_button_pressed {
|
||||
border-left: 1px solid #808080;
|
||||
border-top: 1px solid #808080;
|
||||
border-right: 1px solid #FFFFFF;
|
||||
border-bottom: 1px solid #FFFFFF;
|
||||
background-color: #B0B0B0;
|
||||
}
|
||||
|
||||
#svg_editor .tool_button_disabled {
|
||||
opacity: 0.5;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
#svg_editor .tool_sep {
|
||||
width: 2px;
|
||||
height: 24px;
|
||||
margin: 2px;
|
||||
margin-right: 0;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
#svg_editor #color_picker {
|
||||
position: absolute;
|
||||
display: none;
|
||||
background: #E8E8E8;
|
||||
height: 350px;
|
||||
}
|
||||
|
||||
#svg_editor .tools_flyout {
|
||||
position: absolute;
|
||||
display: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#svg_editor .tools_flyout_v {
|
||||
position: absolute;
|
||||
display: none;
|
||||
cursor: pointer;
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
#svg_editor #tool_square { background: 2px 2px url('images/square.png') no-repeat; }
|
||||
#svg_editor #tool_rect { background: 2px 2px url('images/rect.png') no-repeat; }
|
||||
#svg_editor #tool_fhrect { background: 2px 2px url('images/freehand-square.png') no-repeat; }
|
||||
#svg_editor #tool_circle { background: 2px 2px url('images/circle.png') no-repeat; }
|
||||
#svg_editor #tool_ellipse { background: 2px 2px url('images/ellipse.png') no-repeat; }
|
||||
#svg_editor #tool_fhellipse { background: 2px 2px url('images/freehand-circle.png') no-repeat; }
|
||||
#svg_editor #tool_stacktop { background: 2px 2px url('images/move_top.png') no-repeat; }
|
||||
#svg_editor #tool_stackbottom { background: 2px 2px url('images/move_bottom.png') no-repeat; }
|
||||
#svg_editor #tool_aligntop { background: 2px 2px url('images/align-top.png') no-repeat; }
|
||||
#svg_editor #tool_alignmiddle { background: 2px 2px url('images/align-middle.png') no-repeat; }
|
||||
#svg_editor #tool_alignbottom { background: 2px 2px url('images/align-bottom.png') no-repeat; }
|
||||
#svg_editor #tool_alignleft { background: 2px 2px url('images/align-left.png') no-repeat; }
|
||||
#svg_editor #tool_aligncenter { background: 2px 2px url('images/align-center.png') no-repeat; }
|
||||
#svg_editor #tool_alignright { background: 2px 2px url('images/align-right.png') no-repeat; }
|
||||
#svg_editor .tool_sep { background: 2px 2px url('images/sep.png') no-repeat; }
|
||||
|
||||
/* TODO: figure out what more-specific selector causes me to write this atrocity and not
|
||||
simply .tool_flyout_button */
|
||||
#svg_editor #tools_rect .tool_flyout_button, #svg_editor #tools_ellipse .tool_flyout_button {
|
||||
float: left;
|
||||
background-color: #E8E8E8;
|
||||
border-left: 1px solid #FFFFFF;
|
||||
border-top: 1px solid #FFFFFF;
|
||||
border-right: 1px solid #808080;
|
||||
border-bottom: 1px solid #808080;
|
||||
height: 28px;
|
||||
width: 28px;
|
||||
}
|
||||
|
||||
#svg_editor .tool_button:hover,
|
||||
#svg_editor .push_button:hover {
|
||||
background-color: #FFF;
|
||||
}
|
||||
|
||||
#svg_editor #tools_rect .tool_flyout_button_current, #svg_editor #tools_ellipse .tool_flyout_button_current {
|
||||
border-left: 1px solid #808080;
|
||||
border-top: 1px solid #808080;
|
||||
border-right: 1px solid #FFFFFF;
|
||||
border-bottom: 1px solid #FFFFFF;
|
||||
background-color: #B0B0B0;
|
||||
}
|
||||
|
||||
#svg_editor #tools_bottom {
|
||||
position: absolute;
|
||||
left: 40px;
|
||||
right: 2px;
|
||||
bottom: 2px;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
#svg_editor #tools_bottom_1 {
|
||||
width: 115px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#svg_editor #tools_bottom_2 {
|
||||
width: 250px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#svg_editor #tools_bottom_3 {
|
||||
}
|
||||
|
||||
#svg_editor #copyright {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#svg_source_editor {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#svg_source_editor #svg_source_overlay {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
left: 0px;
|
||||
bottom: 0px;
|
||||
background-color: black;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
#svg_source_editor #svg_source_container {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
left: 30px;
|
||||
right: 30px;
|
||||
bottom: 30px;
|
||||
background-color: #B0B0B0;
|
||||
opacity: 1.0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/*
|
||||
top: 100px;
|
||||
left: 80px;
|
||||
right: 80px;
|
||||
bottom: 100px;
|
||||
*/
|
||||
|
||||
#svg_docprops #svg_docprops_container {
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
padding: 10px;
|
||||
background-color: #B0B0B0;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
#svg_docprops_container fieldset {
|
||||
padding: 5px;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
#svg_docprops_container label {
|
||||
display: block;
|
||||
margin-bottom: .2em;
|
||||
}
|
||||
|
||||
#canvas_title {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#svg_source_editor #svg_source_textarea {
|
||||
position: relative;
|
||||
width: 95%;
|
||||
top: 5px;
|
||||
height: 250px;
|
||||
padding: 5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#svg_source_editor #tool_source_back {
|
||||
text-align: left;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
#svg_docprops_container div.color_block {
|
||||
float: left;
|
||||
margin: 2px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#change_background div.cur_background {
|
||||
border: 2px solid blue;
|
||||
padding: 18px;
|
||||
}
|
||||
|
||||
#change_background input {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
#change_background input.cur_background {
|
||||
border: 2px solid blue;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
#background_img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#svg_source_editor button, #svg_docprops button {
|
||||
padding: 5px 5px 7px 28px;
|
||||
margin: 5px 20px 0 0;
|
||||
}
|
||||
|
||||
#svg_docprops button {
|
||||
margin-top: 0;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#svg_docprops {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#svg_docprops #svg_docprops_overlay {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
left: 0px;
|
||||
bottom: 0px;
|
||||
background-color: black;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
#tool_source_save, #tool_docprops_save {
|
||||
background: #E8E8E8 url(images/save.png) no-repeat 2px 0;
|
||||
}
|
||||
|
||||
#tool_source_cancel, #tool_docprops_cancel {
|
||||
background: #E8E8E8 url(images/cancel.png) no-repeat 2px 0;
|
||||
}
|
||||
|
||||
#tool_source_save, #tool_docprops_save {
|
||||
background: #E8E8E8 url(images/save.png) no-repeat 2px 0;
|
||||
}
|
||||
|
||||
#tool_source_cancel, #tool_docprops_cancel {
|
||||
background: #E8E8E8 url(images/cancel.png) no-repeat 2px 0;
|
||||
}
|
||||
|
||||
/* Slider
|
||||
----------------------------------*/
|
||||
.ui-slider { position: relative; text-align: left; }
|
||||
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
||||
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
|
||||
|
||||
.ui-slider-horizontal { height: .8em; }
|
||||
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
||||
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
||||
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
||||
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
||||
|
||||
.ui-slider-vertical { width: .8em; height: 100px; }
|
||||
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
||||
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
||||
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
||||
.ui-slider-vertical .ui-slider-range-max { top: 0; }
|
||||
|
||||
.ui-slider {
|
||||
border: 1px solid #B0B0B0;
|
||||
}
|
||||
|
||||
.ui-slider-handle {
|
||||
background: #B0B0B0;
|
||||
border: 1px solid #000;
|
||||
}
|
|
@ -0,0 +1,438 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<!-- removed for now, causes problems in Firefox: manifest="svg-editor.manifest" -->
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="chrome=1"/>
|
||||
<link rel="icon" type="image/png" href="images/logo.png">
|
||||
<link rel="stylesheet" href="jgraduate/css/jPicker-1.0.9.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="jgraduate/css/jGraduate-0.2.0.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="svg-editor-classic.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="spinbtn/JQuerySpinBtn.css" type="text/css"/>
|
||||
<!-- Development version of script tags: -->
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="js-hotkeys/jquery.hotkeys.min.js"></script>
|
||||
<script type="text/javascript" src="jgraduate/jquery.jgraduate.js"></script>
|
||||
|
||||
<script type="text/javascript" src="spinbtn/JQuerySpinBtn.js"></script>
|
||||
<script type="text/javascript" src="svgcanvas.js"></script>
|
||||
<script type="text/javascript" src="svg-editor-classic.js"></script>
|
||||
<script type="text/javascript" src="locale/locale.js"></script>
|
||||
|
||||
|
||||
<!-- Release version of script tags: >
|
||||
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="js-hotkeys/jquery.hotkeys-0.7.9.js"></script>
|
||||
<script type="text/javascript" src="jgraduate/jquery.jgraduate.min.js"></script>
|
||||
<script type="text/javascript" src="spinbtn/JQuerySpinBtn.min.js"></script>
|
||||
<script type="text/javascript" src="svgcanvas.min.js"></script>
|
||||
<script type="text/javascript" src="svg-editor.min.js"></script>
|
||||
script type="text/javascript" src="locale/locale.min.js"></script-->
|
||||
|
||||
|
||||
<!-- always minified scripts -->
|
||||
<script type="text/javascript" src="jquery-ui/jquery-ui-1.7.2.custom.min.js"></script>
|
||||
<script type="text/javascript" src="jgraduate/jpicker-1.0.9.min.js"></script>
|
||||
|
||||
<!-- feeds -->
|
||||
<link rel="alternate" type="application/atom+xml" title="SVG-edit General Discussion" href="http://groups.google.com/group/svg-edit/feed/atom_v1_0_msgs.xml" />
|
||||
<link rel="alternate" type="application/atom+xml" title="SVG-edit Updates (Issues/Fixes/Commits)" href="http://code.google.com/feeds/p/svg-edit/updates/basic" />
|
||||
|
||||
<!-- Add script with custom handlers here -->
|
||||
<title>SVG-edit demo (Raster icons)</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="svg_editor">
|
||||
|
||||
<div id="workarea">
|
||||
<style id="styleoverrides" type="text/css" media="screen" scoped="scoped"></style>
|
||||
<div id="svgcanvas"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="sidepanels">
|
||||
<div id="layerpanel">
|
||||
<h3 id="layersLable">Layers</h3>
|
||||
<fieldset id="layerbuttons">
|
||||
<img id="layer_new" class="layer_button" src="images/clear.png" alt="New Layer" title="New Layer"/>
|
||||
<img id="layer_delete" class="layer_button" src="images/delete.png" alt="Delete Layer" title="Delete Layer"/>
|
||||
<img id="layer_rename" class="layer_button" src="images/view-refresh.png" alt="Rename Layer" title="Rename Layer"/>
|
||||
<img id="layer_up" class="layer_button" src="images/go-up.png" alt="Move Layer up" title="Move Layer Up"/>
|
||||
|
||||
<img id="layer_down" class="layer_button" src="images/go-down.png" alt="Move Layer Down" title="Move Layer Down"/>
|
||||
</fieldset>
|
||||
|
||||
<table id="layerlist">
|
||||
<tr class="layer">
|
||||
<td class="layervis"></td>
|
||||
<td class="layername">Layer 1</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<span id="selLayerLabel">Move elements to:</span>
|
||||
<select id="selLayerNames" title="Move selected elements to a different layer" disabled="disabled">
|
||||
<option selected="selected" value="layer1">Layer 1</option>
|
||||
</select>
|
||||
</div>
|
||||
<div id="sidepanel_handle" onselectstart="return false;" title="Drag left/right to resize side panel [X]">L a y e r s</div>
|
||||
</div>
|
||||
|
||||
<div id="logo">
|
||||
<a href="http://svg-edit.googlecode.com/" target="_blank" title="SVG-edit Home Page">
|
||||
<img src="images/logo.png" alt="logo" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="tools_top" class="tools_panel">
|
||||
|
||||
<!-- File-like buttons: New, Save, Source -->
|
||||
<div id="file_panel">
|
||||
<img class="push_button" id="tool_clear" src="images/clear.png" title="New Image [N]" alt="Clear" />
|
||||
<img style="display:none" class="push_button" id="tool_open" src="images/open.png" title="Open Image [O]" alt="Open"/>
|
||||
|
||||
<img class="push_button" id="tool_save" src="images/save.png" title="Save Image [S]" alt="Save"/>
|
||||
<img class="push_button" id="tool_docprops" src="images/document-properties.png" title="Document Properties [I]"/>
|
||||
<img class="push_button" id="tool_source" src="images/source.png" title="Edit Source [U]" alt="Source"/>
|
||||
<img class="tool_button" id="tool_wireframe" src="images/wireframe.png" title="Wireframe Mode [F]" alt="Wireframe"/>
|
||||
</div>
|
||||
|
||||
<!-- History buttons -->
|
||||
<div id="history_panel">
|
||||
<div class="tool_sep"></div>
|
||||
|
||||
<img class="push_button tool_button_disabled" id="tool_undo" src="images/undo.png" title="Undo [Z]"/>
|
||||
<img class="push_button tool_button_disabled" id="tool_redo" src="images/redo.png" title="Redo [Y]"/>
|
||||
</div>
|
||||
|
||||
<!-- Buttons when a single element is selected -->
|
||||
<div id="selected_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<img class="push_button" id="tool_clone" src="images/clone.png" title="Clone Element [C]" alt="Copy"/>
|
||||
<img class="push_button" id="tool_delete" src="images/delete.png" title="Delete Element [Delete/Backspace]" alt="Delete"/>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
|
||||
<img class="push_button" id="tool_move_top" src="images/move_top.png" title="Move to Top [Shift+Up]" alt="Top"/>
|
||||
<img class="push_button" id="tool_move_bottom" src="images/move_bottom.png" title="Move to Bottom [Shift+Down]" alt="Bottom"/>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
|
||||
<label id="group_opacityLabel" class="selected_tool" for="group_opacity">opac:</label>
|
||||
<input id="group_opacity" class="selected_tool" title="Change selected item opacity" size="3" value="100" type="text"/>
|
||||
<div id="opacity_dropdown" class="dropdown">
|
||||
<button></button>
|
||||
<ul>
|
||||
|
||||
<li class="special"><div id="opac_slider"></div></li>
|
||||
<li>100% (no transparency)</li>
|
||||
<li>0%</li>
|
||||
<li>25%</li>
|
||||
<li>50%</li>
|
||||
<li>75%</li>
|
||||
|
||||
<li>100%</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<label id="angleLabel" class="selected_tool">angle:</label>
|
||||
<input id="angle" class="selected_tool" title="Change rotation angle" size="2" value="0" type="text"/>
|
||||
</div>
|
||||
|
||||
<!-- Buttons when multiple elements are selected -->
|
||||
|
||||
<div id="multiselected_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<img class="push_button" id="tool_clone_multi" src="images/clone.png" title="Clone Elements [C]" alt="Clone"/>
|
||||
<img class="push_button" id="tool_delete_multi" src="images/delete.png" title="Delete Selected Elements [Delete/Backspace]" alt="Delete"/>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<img class="push_button" id="tool_group" src="images/shape_group.png" title="Group Elements [G]" alt="Group"/>
|
||||
<div class="push_button" id="tool_alignleft" title="Align Left"></div>
|
||||
<div class="push_button" id="tool_aligncenter" title="Align Center"></div>
|
||||
<div class="push_button" id="tool_alignright" title="Align Right"></div>
|
||||
|
||||
<div class="push_button" id="tool_aligntop" title="Align Top"></div>
|
||||
<div class="push_button" id="tool_alignmiddle" title="Align Middle"></div>
|
||||
<div class="push_button" id="tool_alignbottom" title="Align Bottom"></div>
|
||||
<span id="relativeToLabel" class="selected_tool">relative to:</span>
|
||||
<select id="align_relative_to" class="selected_tool" title="Align relative to ...">
|
||||
<option id="selected_objects" value="selected">selected objects</option>
|
||||
<option id="largest_object" value="largest">largest object</option>
|
||||
|
||||
<option id="smallest_object" value="smallest">smallest object</option>
|
||||
<option id="page" value="page">page</option>
|
||||
</select>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="g_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
|
||||
<img class="push_button" id="tool_ungroup" src="images/shape_ungroup.png" title="Ungroup Elements [G]" alt="Ungroup"/>
|
||||
</div>
|
||||
|
||||
<div id="rect_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<label class="rect_tool">x:</label>
|
||||
<input id="rect_x" class="rect_tool attr_changer" title="Change rectangle X coordinate" size="3" data-attr="x"/>
|
||||
<label class="rect_tool">y:</label>
|
||||
|
||||
<input id="rect_y" class="rect_tool attr_changer" title="Change rectangle Y coordinate" size="3" data-attr="y"/>
|
||||
<label id="rwidthLabel" class="rect_tool">width:</label>
|
||||
<input id="rect_width" class="rect_tool attr_changer" title="Change rectangle width" size="3" data-attr="width"/>
|
||||
<label id="rheightLabel" class="rect_tool">height:</label>
|
||||
<input id="rect_height" class="rect_tool attr_changer" title="Change rectangle height" size="3" data-attr="height"/>
|
||||
<label id="cornerRadiusLabel" class="rect_tool">Corner Radius:</label>
|
||||
<input id="rect_rx" size="3" value="0" class="rect_tool" type="text" title="Change Rectangle Corner Radius" data-attr="Corner Radius"/>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="image_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<label class="image_tool">x:</label>
|
||||
<input id="image_x" class="image_tool attr_changer" title="Change image X coordinate" size="3" data-attr="x"/>
|
||||
<label class="image_tool">y:</label>
|
||||
<input id="image_y" class="image_tool attr_changer" title="Change image Y coordinate" size="3" data-attr="y"/>
|
||||
|
||||
<label id="iwidthLabel" class="image_tool">width:</label>
|
||||
<input id="image_width" class="image_tool attr_changer" title="Change image width" size="3" data-attr="width"/>
|
||||
<label id="iheightLabel" class="image_tool">height:</label>
|
||||
<input id="image_height" class="image_tool attr_changer" title="Change image height" size="3" data-attr="height"/>
|
||||
<label class="image_tool">url:</label>
|
||||
<input id="image_url" class="image_tool" type="text" title="Change URL" size="35"/>
|
||||
</div>
|
||||
|
||||
<div id="circle_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<label class="circle_tool">cx:</label>
|
||||
<input id="circle_cx" class="circle_tool attr_changer" title="Change circle's cx coordinate" size="3" data-attr="cx"/>
|
||||
<label class="circle_tool">cy:</label>
|
||||
<input id="circle_cy" class="circle_tool attr_changer" title="Change circle's cy coordinate" size="3" data-attr="cy"/>
|
||||
<label class="circle_tool">r:</label>
|
||||
|
||||
<input id="circle_r" class="circle_tool attr_changer" title="Change circle's radius" size="3" data-attr="r"/>
|
||||
</div>
|
||||
|
||||
<div id="ellipse_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<label class="ellipse_tool">cx:</label>
|
||||
<input id="ellipse_cx" class="ellipse_tool attr_changer" title="Change ellipse's cx coordinate" size="3" data-attr="cx"/>
|
||||
<label class="ellipse_tool">cy:</label>
|
||||
|
||||
<input id="ellipse_cy" class="ellipse_tool attr_changer" title="Change ellipse's cy coordinate" size="3" data-attr="cy"/>
|
||||
<label class="ellipse_tool">rx:</label>
|
||||
<input id="ellipse_rx" class="ellipse_tool attr_changer" title="Change ellipse's x radius" size="3" data-attr="rx"/>
|
||||
<label class="ellipse_tool">ry:</label>
|
||||
<input id="ellipse_ry" class="ellipse_tool attr_changer" title="Change ellipse's y radius" size="3" data-attr="ry"/>
|
||||
</div>
|
||||
|
||||
<div id="line_panel">
|
||||
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<label class="line_tool">x1:</label>
|
||||
<input id="line_x1" class="line_tool attr_changer" title="Change line's starting x coordinate" size="3" data-attr="x1"/>
|
||||
<label class="line_tool">y1:</label>
|
||||
<input id="line_y1" class="line_tool attr_changer" title="Change line's starting y coordinate" size="3" data-attr="y1"/>
|
||||
<label class="line_tool">x2:</label>
|
||||
<input id="line_x2" class="line_tool attr_changer" title="Change line's ending x coordinate" size="3" data-attr="x2"/>
|
||||
|
||||
<label class="line_tool">y2:</label>
|
||||
<input id="line_y2" class="line_tool attr_changer" title="Change line's ending y coordinate" size="3" data-attr="y2"/>
|
||||
</div>
|
||||
|
||||
<div id="text_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<label class="text_tool">x:</label>
|
||||
<input id="text_x" class="text_tool attr_changer" title="Change text X coordinate" size="3" data-attr="x"/>
|
||||
|
||||
<label class="text_tool">y:</label>
|
||||
<input id="text_y" class="text_tool attr_changer" title="Change text Y coordinate" size="3" data-attr="y"/>
|
||||
<img class="tool_button" id="tool_bold" src="images/bold.png" title="Bold Text [B]" alt="Bold"/>
|
||||
<img class="tool_button" id="tool_italic" src="images/italic.png" title="Italic Text [I]" alt="Italic"/>
|
||||
<select id="font_family" class="text_tool" title="Change Font Family">
|
||||
<option selected="selected" value="serif">serif</option>
|
||||
<option value="sans-serif">sans-serif</option>
|
||||
|
||||
<option value="cursive">cursive</option>
|
||||
<option value="fantasy">fantasy</option>
|
||||
<option value="monospace">monospace</option>
|
||||
</select>
|
||||
<label id="font_sizeLabel" class="text_tool" for="font_size">size:</label>
|
||||
<input id="font_size" class="text_tool" title="Change Font Size" size="3" value="0" type="text"/>
|
||||
<input id="text" class="text_tool" type="text" title="Change text contents" size="35"/>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="path_node_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<label class="path_node_tool">x:</label>
|
||||
<input id="path_node_x" class="path_node_tool attr_changer" title="Change node's x coordinate" size="3" data-attr="x"/>
|
||||
<label class="path_node_tool">y:</label>
|
||||
<input id="path_node_y" class="path_node_tool attr_changer" title="Change node's y coordinate" size="3" data-attr="y"/>
|
||||
<select id="seg_type" class="path_node_tool" title="Change Segment type">
|
||||
|
||||
<option id="straight_segments" selected="selected" value="4">Straight</option>
|
||||
<option id="curve_segments" value="6">Curve</option>
|
||||
</select>
|
||||
<img class="tool_button" id="tool_node_clone" src="images/clone.png" title="Clone Node" alt="Clone"/>
|
||||
<img class="tool_button" id="tool_node_delete" src="images/delete.png" title="Delete Node" alt="Delete"/>
|
||||
</div>
|
||||
|
||||
</div> <!-- tools_top -->
|
||||
|
||||
<div id="tools_left" class="tools_panel">
|
||||
<img class="tool_button_current" id="tool_select" src="images/select.png" title="Select Tool [1]" alt="Select"/><br/>
|
||||
<img class="tool_button" id="tool_fhpath" src="images/fhpath.png" title="Pencil Tool [2]" alt="Pencil"/><br/>
|
||||
<img class="tool_button" id="tool_line" src="images/line.png" title="Line Tool [3]" alt="Line"/><br/>
|
||||
<img class="tool_button" id="tools_rect_show" src="images/square.png" title="Square/Rect Tool [4/Shift+4]" alt="Square"/>
|
||||
<img class="flyout_arrow_horiz" src="images/flyouth.png"/>
|
||||
<img class="tool_button" id="tools_ellipse_show" src="images/circle.png" title="Ellipse/Circle Tool [5/Shift+5]" alt="Circle"/><br/>
|
||||
<img class="flyout_arrow_horiz" src="images/flyouth.png"/>
|
||||
<img class="tool_button" id="tool_path" src="images/path.png" title="Path Tool [6]" alt="Path"/>
|
||||
|
||||
<img class="tool_button" id="tool_text" src="images/text.png" title="Text Tool [7]" alt="Text"/>
|
||||
<img class="tool_button" id="tool_image" src="images/image.png" title="Image Tool [8]" alt="Image"/>
|
||||
<img class="tool_button" id="tool_zoom" src="images/zoom.png" title="Zoom Tool [Ctrl+Up/Down]" alt="Zoom"/>
|
||||
</div> <!-- tools_left -->
|
||||
|
||||
<div id="tools_bottom" class="tools_panel">
|
||||
|
||||
<!-- Zoom buttons -->
|
||||
<div id="zoom_panel" class="magic_field">
|
||||
<span id="zoomLabel" class="zoom_tool">zoom:</span>
|
||||
|
||||
<input id="zoom" class="zoom_tool" title="Change zoom level" size="3" value="100" type="text" />
|
||||
<div id="zoom_dropdown" class="dropdown">
|
||||
<button></button>
|
||||
<ul>
|
||||
<li>100%</li>
|
||||
<li id="fit_to_all" data-val="content">Fit to all content</li>
|
||||
<li id="fit_to_layer_content" data-val="layer">Fit to layer content</li>
|
||||
|
||||
<li id="fit_to_sel" data-val="selection">Fit to selection</li>
|
||||
<li id="fit_to_canvas" data-val="canvas">Fit to canvas</li>
|
||||
<li>25%</li>
|
||||
<li>50%</li>
|
||||
<li>100%</li>
|
||||
<li>200%</li>
|
||||
|
||||
<li>400%</li>
|
||||
<li>1000%</li>
|
||||
</ul>
|
||||
</div>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
</div>
|
||||
|
||||
<div id="tools_bottom_2">
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td id="fill_tool_bottom">fill:</td>
|
||||
<td><div id="fill_color" class="color_block" title="Change fill color"></div></td>
|
||||
<td colspan="3"><div id="fill_opacity">100%</div></td>
|
||||
</tr><tr>
|
||||
<td id="stroke_tool_bottom">stroke:</td>
|
||||
|
||||
<td><div id="stroke_color" class="color_block" title="Change stroke color"></div></td>
|
||||
<td><div id="stroke_opacity">100 %</div></td>
|
||||
<td>
|
||||
<input id="stroke_width" title="Change stroke width" size="2" value="5" type="text" data-attr="Stroke Width"/>
|
||||
</td>
|
||||
<td>
|
||||
<select id="stroke_style" title="Change stroke dash style">
|
||||
<option selected="selected" value="none">---</option>
|
||||
|
||||
<option value="2,2">...</option>
|
||||
<option value="5,5">- -</option>
|
||||
<option value="5,2,2,2">- .</option>
|
||||
<option value="5,2,2,2,2,2">- ..</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id="tools_bottom_3">
|
||||
<div id="palette_holder"><div id="palette" title="Click to change fill color, shift-click to change stroke color"></div></div>
|
||||
</div>
|
||||
<div id="copyright">Powered by <a href="http://svg-edit.googlecode.com/" target="_blank">SVG-edit v2.4-alpha</a></div>
|
||||
</div>
|
||||
|
||||
<!-- hidden divs -->
|
||||
<div id="color_picker"></div>
|
||||
|
||||
<div id="tools_rect" class="tools_flyout">
|
||||
<div id="tool_square" class="tool_flyout_button" title="Square"></div>
|
||||
<div id="tool_rect" class="tool_flyout_button" title="Rectangle"></div>
|
||||
<div id="tool_fhrect" class="tool_flyout_button" title="Free-Hand Rectangle"></div>
|
||||
</div>
|
||||
|
||||
<div id="tools_ellipse" class="tools_flyout">
|
||||
<div id="tool_circle" class="tool_flyout_button" title="Circle"></div>
|
||||
<div id="tool_ellipse" class="tool_flyout_button" title="Ellipse"></div>
|
||||
|
||||
<div id="tool_fhellipse" class="tool_flyout_button" title="Free-Hand Ellipse"></div>
|
||||
</div>
|
||||
|
||||
</div> <!-- svg_editor -->
|
||||
|
||||
<div id="svg_source_editor">
|
||||
<div id="svg_source_overlay"></div>
|
||||
<div id="svg_source_container">
|
||||
<div id="tool_source_back" class="toolbar_button">
|
||||
<button id="tool_source_save">Apply Changes</button>
|
||||
|
||||
<button id="tool_source_cancel">Cancel</button>
|
||||
</div>
|
||||
<form>
|
||||
<textarea id="svg_source_textarea" spellcheck="false"></textarea>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="svg_docprops">
|
||||
|
||||
<div id="svg_docprops_overlay"></div>
|
||||
<div id="svg_docprops_container">
|
||||
<div id="tool_docprops_back" class="toolbar_button">
|
||||
<button id="tool_docprops_save">OK</button>
|
||||
<button id="tool_docprops_cancel">Cancel</button>
|
||||
|
||||
<label><span id="svginfo_title">Image title:</span> <input type="text" id="canvas_title" size="24"></label>
|
||||
|
||||
|
||||
<fieldset id="change_background">
|
||||
<legend id="svginfo_change_background">Editor Background</legend>
|
||||
<div id="bg_blocks"></div>
|
||||
<label><span id="svginfo_bg_url">URL:</span> <input type="text" id="canvas_bg_url" size="17"></label>
|
||||
</fieldset>
|
||||
|
||||
<fieldset id="change_resolution">
|
||||
|
||||
<legend id="svginfo_dim">Canvas Dimensions</legend>
|
||||
|
||||
<label><span id="svginfo_width">Width:</span> <input type="text" id="canvas_width" size="6"></label>
|
||||
|
||||
<label><span id="svginfo_height">Height:</span> <input type="text" id="canvas_height" size="6"></label>
|
||||
|
||||
<label>
|
||||
<select id="resolution">
|
||||
<option id="selectedPredefined" selected="selected">Select predefined:</option>
|
||||
|
||||
<option>640x480</option>
|
||||
<option>800x600</option>
|
||||
<option>1024x768</option>
|
||||
<option>1280x960</option>
|
||||
<option>1600x1200</option>
|
||||
<option id="fitToContent" value="content">Fit to Content</option>
|
||||
|
||||
</select>
|
||||
</label>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
|
@ -11,25 +11,54 @@
|
|||
<link rel="stylesheet" href="spinbtn/JQuerySpinBtn.css" type="text/css"/>
|
||||
<!-- Development version of script tags: -->
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<!-- <script type="text/javascript" src="../../../svg-icon-loader/jquery.svgicons.js"></script> -->
|
||||
<script type="text/javascript" src="http://svg-icon-loader.googlecode.com/svn/trunk/jquery.svgicons.js"></script>
|
||||
<script>
|
||||
setIcons();
|
||||
</script>
|
||||
<script type="text/javascript" src="js-hotkeys/jquery.hotkeys.min.js"></script>
|
||||
<script type="text/javascript" src="jgraduate/jquery.jgraduate.js"></script>
|
||||
<script type="text/javascript" src="spinbtn/JQuerySpinBtn.js"></script>
|
||||
<script type="text/javascript" src="svgcanvas.js"></script>
|
||||
<script type="text/javascript" src="svg-editor.js"></script>
|
||||
<script type="text/javascript" src="locale/locale.js"></script>
|
||||
<!-- <script type="text/javascript" src="../../svg-icon-loader/jquery.svgicons.js"></script> -->
|
||||
<script type="text/javascript" src="http://svg-icon-loader.googlecode.com/svn/trunk/jquery.svgicons.js"></script>
|
||||
|
||||
<style>
|
||||
#svg_editor .tools_panel div.tool_button {
|
||||
/* This CSS replaces parts of/adds to svg-editor.css */
|
||||
#svg_editor .tool_button,
|
||||
#svg_editor #tools_rect .tool_flyout_button,
|
||||
#svg_editor #tools_ellipse .tool_flyout_button {
|
||||
padding: 2px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
#svg_editor .tool_sep {
|
||||
width: 1px;
|
||||
background: #888;
|
||||
background-image: none;
|
||||
border-left: 1px outset #EEE;
|
||||
margin: 2px 3px;
|
||||
padding: 0;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
#layerbuttons {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#svg_editor #layerlist td.layervis {
|
||||
background: none;
|
||||
}
|
||||
|
||||
#layerlist td.layervis .svg_icon {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#layerlist td.layerinvis .svg_icon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.layer_button {
|
||||
display: block;
|
||||
float: left;
|
||||
|
@ -71,130 +100,63 @@
|
|||
border-bottom: 1px solid #808080;
|
||||
}
|
||||
|
||||
/* Adjust size of all tools */
|
||||
body.small_tools #svg_editor .tool_button,
|
||||
body.small_tools #svg_editor .push_button,
|
||||
body.small_tools #svg_editor .tool_button_current,
|
||||
body.small_tools #svg_editor .tool_button_disabled {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
padding: 1px;
|
||||
|
||||
#svg_editor #tool_square,
|
||||
#svg_editor #tool_rect,
|
||||
#svg_editor #tool_fhrect,
|
||||
#svg_editor #tool_circle,
|
||||
#svg_editor #tool_ellipse,
|
||||
#svg_editor #tool_fhellipse,
|
||||
#svg_editor #tool_alignleft,
|
||||
#svg_editor #tool_aligncenter,
|
||||
#svg_editor #tool_alignright,
|
||||
#svg_editor #tool_aligntop,
|
||||
#svg_editor #tool_alignmiddle,
|
||||
#svg_editor #tool_alignbottom {
|
||||
background: none;
|
||||
}
|
||||
|
||||
body.small_tools #svg_editor .tool_sep {
|
||||
height: 16px;
|
||||
button#tool_source_save,
|
||||
button#tool_source_cancel,
|
||||
button#tool_docprops_save,
|
||||
button#tool_docprops_cancel {
|
||||
border:1px solid #dedede;
|
||||
line-height:130%;
|
||||
background: #E8E8E8 none;
|
||||
padding:5px 10px 5px 7px; /* Firefox */
|
||||
line-height:17px; /* Safari */
|
||||
}
|
||||
|
||||
body.small_tools #svg_editor #tools_left {
|
||||
width: 26px;
|
||||
top: 50px;
|
||||
.toolbar_button button .svg_icon {
|
||||
margin:0 3px -3px 0 !important;
|
||||
padding:0;
|
||||
border:none;
|
||||
width:16px;
|
||||
height:16px;
|
||||
}
|
||||
|
||||
body.small_tools #svg_editor div#workarea {
|
||||
left: 27px;
|
||||
top: 50px;
|
||||
}
|
||||
|
||||
body.small_tools #svg_editor #tools_top input {
|
||||
margin-top: 2px;
|
||||
height: 12px;
|
||||
border: 1px solid #555;
|
||||
font-size: .9em;
|
||||
}
|
||||
|
||||
body.small_tools #svg_editor #tools_top > div, #tools_top {
|
||||
line-height: 17px;
|
||||
}
|
||||
|
||||
body.small_tools #tools_top .dropdown button {
|
||||
margin-top: 2px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
body.small_tools #tools_top label {
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
body.small_tools #tool_bold,
|
||||
body.small_tools #tool_italic {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
body.small_tools #svg_editor #sidepanels {
|
||||
top: 50px;
|
||||
}
|
||||
|
||||
|
||||
body.large_tools #svg_editor .tool_button,
|
||||
body.large_tools #svg_editor .push_button,
|
||||
body.large_tools #svg_editor .tool_button_current,
|
||||
body.large_tools #svg_editor .tool_button_disabled {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
body.large_tools #svg_editor .tool_sep {
|
||||
height: 48px;
|
||||
}
|
||||
|
||||
body.large_tools #svg_editor #tools_left {
|
||||
width: 42px;
|
||||
top: 125px;
|
||||
}
|
||||
|
||||
body.large_tools #svg_editor div#workarea {
|
||||
left: 65px;
|
||||
top: 125px;
|
||||
}
|
||||
|
||||
body.large_tools #svg_editor #tools_top input {
|
||||
margin-top: 5px;
|
||||
height: 45px;
|
||||
/* border: 1px solid #555;*/
|
||||
font-size: 2.5em;
|
||||
}
|
||||
|
||||
body.large_tools #svg_editor #tools_top > div, #tools_top {
|
||||
line-height: 50px;
|
||||
}
|
||||
|
||||
body.large_tools #tools_top .dropdown button {
|
||||
margin-top: 4px;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
body.large_tools #tools_top label {
|
||||
font-size: 2em;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
body.large_tools #tool_bold,
|
||||
body.large_tools #tool_italic {
|
||||
font-size: 4.5em;
|
||||
}
|
||||
|
||||
body.large_tools #svg_editor select {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
body.large_tools #svg_editor #sidepanels {
|
||||
top: 125px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
<script>
|
||||
$(function() {
|
||||
/*
|
||||
TODO for SVG icons:
|
||||
|
||||
- More sizing tweaks
|
||||
- Make layer eye SVG icon work when making new layers
|
||||
- Make transparency icon clone to fill/stroke box when clicked
|
||||
|
||||
*/
|
||||
|
||||
function setIcons() {
|
||||
|
||||
$.svgIcons('images/svg_edit_icons.svg', {
|
||||
w:24, h:24,
|
||||
id_match: false,
|
||||
no_img: true,
|
||||
fallback_path:'images/',
|
||||
fallback:{
|
||||
'new_image':'clear.png',
|
||||
'save':'save.png',
|
||||
'open':'open.png',
|
||||
'source':'source.png',
|
||||
'docprops':'document-properties.png',
|
||||
'wireframe':'wireframe.png',
|
||||
|
@ -206,20 +168,45 @@ $(function() {
|
|||
'pencil':'fhpath.png',
|
||||
'pen':'line.png',
|
||||
'square':'square.png',
|
||||
'rect':'rect.png',
|
||||
'fh_rect':'freehand-square.png',
|
||||
'circle':'circle.png',
|
||||
'path':'polygon.png',
|
||||
'ellipse':'ellipse.png',
|
||||
'fh_ellipse':'freehand-circle.png',
|
||||
'path':'path.png',
|
||||
'text':'text.png',
|
||||
'image':'image.png',
|
||||
'zoom':'zoom.png',
|
||||
|
||||
'clone':'clone.png',
|
||||
'delete':'delete.png',
|
||||
'group':'shape_group.png',
|
||||
'ungroup':'shape_ungroup.png',
|
||||
'move_top':'move_top.png',
|
||||
'move_bottom':'move_bottom.png',
|
||||
|
||||
'arrow_right':'flyouth.png'
|
||||
'align_left':'align-left.png',
|
||||
'align_center':'align-center',
|
||||
'align_right':'align-right',
|
||||
'align_top':'align-top',
|
||||
'align_middle':'align-middle',
|
||||
'align_bottom':'align-bottom',
|
||||
|
||||
'go_up':'go-up.png',
|
||||
'go_down':'go-down.png',
|
||||
|
||||
'ok':'save.png',
|
||||
'cancel':'cancel.png',
|
||||
|
||||
'arrow_right':'flyouth.png',
|
||||
'arrow_down':'dropdown.gif'
|
||||
},
|
||||
placement: {
|
||||
'#logo a':'logo',
|
||||
|
||||
'#tool_clear,#layer_new':'new_image',
|
||||
'#tool_save':'save',
|
||||
'#tool_open':'open',
|
||||
'#tool_source':'source',
|
||||
'#tool_docprops':'docprops',
|
||||
'#tool_wireframe':'wireframe',
|
||||
|
@ -230,8 +217,12 @@ $(function() {
|
|||
'#tool_select':'select',
|
||||
'#tool_fhpath':'pencil',
|
||||
'#tool_line':'pen',
|
||||
'#tools_ellipse_show':'circle',
|
||||
'#tools_rect_show':'square',
|
||||
'#tool_square,#tools_rect_show':'square',
|
||||
'#tool_rect':'rect',
|
||||
'#tool_fhrect':'fh_rect',
|
||||
'#tool_circle,#tools_ellipse_show':'circle',
|
||||
'#tool_ellipse':'ellipse',
|
||||
'#tool_fhellipse':'fh_ellipse',
|
||||
'#tool_path':'path',
|
||||
'#tool_text,#layer_rename':'text',
|
||||
'#tool_image':'image',
|
||||
|
@ -241,42 +232,276 @@ $(function() {
|
|||
'#layer_delete,#tool_delete,#tool_delete_multi,#tool_node_delete':'delete',
|
||||
'#tool_move_top':'move_top',
|
||||
'#tool_move_bottom':'move_bottom',
|
||||
'#tool_group':'group',
|
||||
'#tool_ungroup':'ungroup',
|
||||
|
||||
'#tool_alignleft':'align_left',
|
||||
'#tool_aligncenter':'align_center',
|
||||
'#tool_alignright':'align_right',
|
||||
'#tool_aligntop':'align_top',
|
||||
'#tool_alignmiddle':'align_middle',
|
||||
'#tool_alignbottom':'align_bottom',
|
||||
|
||||
'#layer_up':'go_up',
|
||||
'#layer_down':'go_down',
|
||||
'#layerlist td.layervis':'eye',
|
||||
|
||||
'#tool_source_save,#tool_docprops_save':'ok',
|
||||
'#tool_source_cancel,#tool_docprops_cancel':'cancel',
|
||||
|
||||
'.flyout_arrow_horiz':'arrow_right',
|
||||
'.dropdown button':'arrow_down'
|
||||
'.dropdown button':'arrow_down',
|
||||
'#palette .palette_item:first':'no_color'
|
||||
},
|
||||
resize: {
|
||||
'#logo a .svg_icon': 32,
|
||||
'.flyout_arrow_horiz .svg_icon': 5,
|
||||
'.layer_button .svg_icon': 14,
|
||||
'.dropdown button .svg_icon': 7
|
||||
}
|
||||
'.layer_button .svg_icon, #layerlist td.layervis .svg_icon': 14,
|
||||
'.dropdown button .svg_icon': 7,
|
||||
'#palette .svg_icon': 16
|
||||
},
|
||||
callback: function(icons) {
|
||||
$('.toolbar_button button .svg_icon').each(function() {
|
||||
$(this).parent().prepend(this);
|
||||
});
|
||||
|
||||
$('#iconsize').change(function() {
|
||||
var size, size_num;
|
||||
switch ( this.value ) {
|
||||
case 's':
|
||||
size = 'small', size_num = 16;
|
||||
break;
|
||||
case 'm':
|
||||
size = 'medium', size_num = 24;
|
||||
break;
|
||||
case 'l':
|
||||
size = 'large', size_num = 48;
|
||||
break;
|
||||
var tleft = $('#tools_left')
|
||||
var min_height = tleft.offset().top + tleft.outerHeight();
|
||||
if($(window).height() < min_height) {
|
||||
// Make smaller
|
||||
$('#iconsize').val('s').change()
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
$(function() {
|
||||
|
||||
/* Unchanged, just here because they're private methods */
|
||||
var flyoutspeed = 1250;
|
||||
var toolButtonClick = function(button, fadeFlyouts) {
|
||||
if ($(button).hasClass('tool_button_disabled')) return false;
|
||||
var fadeFlyouts = fadeFlyouts || 'normal';
|
||||
$('.tools_flyout').fadeOut(fadeFlyouts);
|
||||
$('#styleoverrides').text('');
|
||||
$('.tool_button_current').removeClass('tool_button_current').addClass('tool_button');
|
||||
$(button).addClass('tool_button_current');
|
||||
// when a tool is selected, we should deselect any currently selected elements
|
||||
svgCanvas.clearSelection();
|
||||
return true;
|
||||
};
|
||||
|
||||
// New function to add
|
||||
var setIcon = function(holder_sel, id) {
|
||||
var icon = $.getSvgIcon(id).clone();
|
||||
var holder = $(holder_sel);
|
||||
icon[0].setAttribute('width',holder.width());
|
||||
icon[0].setAttribute('height',holder.height());
|
||||
holder.empty().append(icon);
|
||||
}
|
||||
|
||||
$('body').removeClass('small_tools large_tools');
|
||||
if(size != 'medium') $('body').addClass(size + '_tools');
|
||||
$('.tool_button, .push_button, .tool_button_current, .tool_button_disabled')
|
||||
.find('.svg_icon').each(function() {
|
||||
$('#palette .palette_item:first').css('background','none');
|
||||
|
||||
// Change in last line of each of these.
|
||||
var clickSquare = function(){
|
||||
if (toolButtonClick('#tools_rect_show', flyoutspeed)) {
|
||||
flyoutspeed = 'normal';
|
||||
svgCanvas.setMode('square');
|
||||
}
|
||||
setIcon('#tools_rect_show','square');
|
||||
};
|
||||
|
||||
var clickRect = function(){
|
||||
if (toolButtonClick('#tools_rect_show')) {
|
||||
svgCanvas.setMode('rect');
|
||||
}
|
||||
setIcon('#tools_rect_show','rect');
|
||||
};
|
||||
|
||||
var clickFHRect = function(){
|
||||
if (toolButtonClick('#tools_rect_show')) {
|
||||
svgCanvas.setMode('fhrect');
|
||||
}
|
||||
setIcon('#tools_rect_show','fh_rect');
|
||||
};
|
||||
|
||||
var clickCircle = function(){
|
||||
if (toolButtonClick('#tools_ellipse_show', flyoutspeed)) {
|
||||
flyoutspeed = 'normal';
|
||||
svgCanvas.setMode('circle');
|
||||
}
|
||||
setIcon('#tools_ellipse_show','circle');
|
||||
};
|
||||
|
||||
var clickEllipse = function(){
|
||||
if (toolButtonClick('#tools_ellipse_show')) {
|
||||
svgCanvas.setMode('ellipse');
|
||||
}
|
||||
setIcon('#tools_ellipse_show','ellipse');
|
||||
};
|
||||
|
||||
var clickFHEllipse = function(){
|
||||
if (toolButtonClick('#tools_ellipse_show')) {
|
||||
svgCanvas.setMode('fhellipse');
|
||||
}
|
||||
setIcon('#tools_ellipse_show','fh_ellipse');
|
||||
};
|
||||
|
||||
// Bind replacements (no need to move over)
|
||||
$('#tool_square').unbind('mouseup').mouseup(clickSquare);
|
||||
$('#tool_rect').unbind('mouseup').mouseup(clickRect);
|
||||
$('#tool_fhrect').unbind('mouseup').mouseup(clickFHRect);
|
||||
$('#tool_circle').unbind('mouseup').mouseup(clickCircle);
|
||||
$('#tool_ellipse').unbind('mouseup').mouseup(clickEllipse);
|
||||
$('#tool_fhellipse').unbind('mouseup').mouseup(clickFHEllipse);
|
||||
|
||||
// This should only occur on docprops "OK", not immediately
|
||||
$('#iconsize').change(function() {
|
||||
var size = this.value;
|
||||
var icon_sizes = { s:16, m:24, l:32, xl:48 };
|
||||
var size_num = icon_sizes[size];
|
||||
|
||||
// Change icon size
|
||||
$('.tool_button, .push_button, .tool_button_current, .tool_button_disabled, .tool_flyout_button')
|
||||
.find('svg').each(function() {
|
||||
this.setAttribute('width',size_num);
|
||||
this.setAttribute('height',size_num);
|
||||
});
|
||||
|
||||
$.resizeSvgIcons({
|
||||
'.flyout_arrow_horiz svg': size_num / 3,
|
||||
'#logo svg': size_num * 1.3
|
||||
});
|
||||
if(size != 's') {
|
||||
$.resizeSvgIcons({'#layerbuttons svg': size_num * .6});
|
||||
}
|
||||
|
||||
// Note that all rules will be prefixed with '#svg_editor' when parsed
|
||||
var cssResizeRules = {
|
||||
".tool_button,\
|
||||
.push_button,\
|
||||
.tool_button_current,\
|
||||
.tool_button_disabled,\
|
||||
#tools_rect .tool_flyout_button,\
|
||||
#tools_ellipse .tool_flyout_button": {
|
||||
'width': {s: '16px', l: '32px', xl: '48px'},
|
||||
'height': {s: '16px', l: '32px', xl: '48px'},
|
||||
'padding': {s: '1px', l: '2px', xl: '3px'}
|
||||
},
|
||||
".tool_sep": {
|
||||
'height': {s: '16px', l: '32px', xl: '48px'},
|
||||
'margin': {s: '2px 2px', l: '2px 5px', xl: '2px 8px'}
|
||||
},
|
||||
"#tools_top": {
|
||||
'left': {s: '27px', l: '50px', xl: '70px'},
|
||||
'height': {s: '50px', l: '88px', xl: '125px'}
|
||||
},
|
||||
"#tools_left": {
|
||||
'width': {s: '26px', l: '34px', xl: '42px'},
|
||||
'top': {s: '50px', l: '87px', xl: '125px'}
|
||||
},
|
||||
"div#workarea": {
|
||||
'left': {s: '27px', l: '46px', xl: '65px'},
|
||||
'top': {s: '50px', l: '88px', xl: '125px'},
|
||||
'bottom': {s: '52px', l: '68px', xl: '75px'}
|
||||
},
|
||||
"#tools_bottom": {
|
||||
'left': {s: '27px', l: '46px', xl: '65px'},
|
||||
'height': {s: '52px', l: '68px', xl: '75px'}
|
||||
},
|
||||
"#tools_top input, #tools_bottom input": {
|
||||
'margin-top': {s: '2px', l: '4px', xl: '5px'},
|
||||
'height': {s: 'auto', l: 'auto', xl: 'auto'},
|
||||
'border': {s: '1px solid #555', l: 'auto', xl: 'auto'},
|
||||
'font-size': {s: '.9em', l: '2em', xl: '2.5em'}
|
||||
},
|
||||
"#tools_bottom input": {
|
||||
'margin-top': {s: '6px', l: '4px', xl: '5px'},
|
||||
},
|
||||
"#tools_bottom span, #copyright, #tools_bottom .label": {
|
||||
'font-size': {l: '1.5em', xl: '2em'}
|
||||
},
|
||||
"#tools_bottom_2": {
|
||||
'width': {l: '295px', xl: '355px'}
|
||||
},
|
||||
"#tools_top > div, #tools_top": {
|
||||
'line-height': {s: '17px', l: '34px', xl: '50px'}
|
||||
},
|
||||
".dropdown button": {
|
||||
'height': {s: '18px', l: '34px', xl: '40px'}
|
||||
},
|
||||
"#tools_top label, #tools_bottom label": {
|
||||
'font-size': {s: '1em', l: '1.5em', xl: '2em'},
|
||||
'margin-top': {s: '1px', l: '3px', xl: '5px'}
|
||||
},
|
||||
"#tool_bold, #tool_italic": {
|
||||
'font-size': {s: '1.5em', l: '3em', xl: '4.5em'}
|
||||
},
|
||||
"#sidepanels": {
|
||||
'top': {s: '50px', l: '88px', xl: '125px'},
|
||||
'bottom': {s: '52px', l: '68px', xl: '65px'},
|
||||
},
|
||||
'#layerbuttons': {
|
||||
'width': {l: '130px', xl: '175px'},
|
||||
'height': {l: '24px', xl: '30px'}
|
||||
},
|
||||
'#layerlist': {
|
||||
'width': {l: '128px', xl: '150px'}
|
||||
},
|
||||
'.layer_button': {
|
||||
'width': {l: '19px', xl: '28px'},
|
||||
'height': {l: '19px', xl: '28px'}
|
||||
},
|
||||
".flyout_arrow_horiz": {
|
||||
'left': {s: '-5px', l: '5px', xl: '14px'},
|
||||
'top': {s: '-13px', l: '-13px', xl: '-20px'}
|
||||
},
|
||||
"input.spin-button": {
|
||||
'background-image': {l: "url('images/spinbtn_updn_big.png')", xl: "url('images/spinbtn_updn_big.png')"},
|
||||
'background-position': {l: '100% -5px', xl: '100% -2px'},
|
||||
'padding-right': {l: '24px', xl: '24px' }
|
||||
},
|
||||
"input.spin-button.up": {
|
||||
'background-position': {l: '100% -45px', xl: '100% -42px'}
|
||||
},
|
||||
"input.spin-button.down": {
|
||||
'background-position': {l: '100% -85px', xl: '100% -82px'}
|
||||
}
|
||||
};
|
||||
|
||||
var rule_elem = $('#tool_size_rules');
|
||||
if(!rule_elem.length) {
|
||||
rule_elem = $('<style id="tool_size_rules"><\/style>').appendTo('head');
|
||||
} else {
|
||||
rule_elem.empty();
|
||||
}
|
||||
|
||||
if(size != 'm') {
|
||||
var style_str = '';
|
||||
$.each(cssResizeRules, function(selector, rules) {
|
||||
selector = '#svg_editor ' + selector.replace(/,/g,', #svg_editor');
|
||||
style_str += selector + '{';
|
||||
$.each(rules, function(prop, values) {
|
||||
if(values[size]) {
|
||||
style_str += (prop + ':' + values[size] + ';');
|
||||
}
|
||||
});
|
||||
style_str += '}';
|
||||
});
|
||||
rule_elem.text(style_str);
|
||||
}
|
||||
|
||||
var pos = $('#tools_rect_show').offset();
|
||||
$('#tools_rect').css({'left': pos.left, 'top': pos.top});
|
||||
pos = $('#tools_ellipse_show').offset();
|
||||
$('#tools_ellipse').css({'left': pos.left, 'top': pos.top});
|
||||
});
|
||||
|
||||
// For quick testing
|
||||
// window.setTimeout(function() {
|
||||
// $('#iconsize').val('s').change();
|
||||
// },1000);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
@ -299,7 +524,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
<link rel="alternate" type="application/atom+xml" title="SVG-edit Updates (Issues/Fixes/Commits)" href="http://code.google.com/feeds/p/svg-edit/updates/basic" />
|
||||
|
||||
<!-- Add script with custom handlers here -->
|
||||
<title>SVG-edit demo (w/SVG icons)</title>
|
||||
<title>SVG-edit demo</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
@ -337,7 +562,6 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
|
||||
<div id="logo">
|
||||
<a href="http://svg-edit.googlecode.com/" target="_blank" title="SVG-edit Home Page">
|
||||
<img src="images/logo.png" alt="logo" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
@ -346,7 +570,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
<!-- File-like buttons: New, Save, Source -->
|
||||
<div id="file_panel">
|
||||
<div class="push_button" id="tool_clear" title="New Image [N]"></div>
|
||||
<img style="display:none" class="push_button" id="tool_open" src="images/open.png" title="Open Image [O]" alt="Open"/>
|
||||
<div class="push_button" id="tool_open" title="Open Image [O]" style="display:none"></div>
|
||||
<div class="push_button" id="tool_save" title="Save Image [S]"></div>
|
||||
<div class="push_button" id="tool_docprops" title="Document Properties [I]"></div>
|
||||
<div class="push_button" id="tool_source" title="Edit Source [U]"></div>
|
||||
|
@ -362,13 +586,13 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
|
||||
<!-- Buttons when a single element is selected -->
|
||||
<div id="selected_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<div class="push_button" id="tool_clone" title="Clone Element [C]"></div>
|
||||
<div class="push_button" id="tool_delete" title="Delete Element [Delete/Backspace]"></div>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<div class="push_button" id="tool_move_top" title="Move to Top [Shift+Up]"></div>
|
||||
<div class="push_button" id="tool_move_bottom" title="Move to Bottom [Shift+Down]"></div>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
|
||||
<label id="group_opacityLabel" class="selected_tool" for="group_opacity">opac:</label>
|
||||
<input id="group_opacity" class="selected_tool" title="Change selected item opacity" size="3" value="100" type="text"/>
|
||||
|
@ -391,11 +615,11 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
|
||||
<!-- Buttons when multiple elements are selected -->
|
||||
<div id="multiselected_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<div class="push_button" id="tool_clone_multi" title="Clone Elements [C]"></div>
|
||||
<div class="push_button" id="tool_delete_multi" title="Delete Selected Elements [Delete/Backspace]"></div>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<img class="push_button" id="tool_group" src="images/shape_group.png" title="Group Elements [G]" alt="Group"/>
|
||||
<div class="tool_sep"></div>
|
||||
<div class="push_button" id="tool_group" title="Group Elements [G]"></div>
|
||||
<div class="push_button" id="tool_alignleft" title="Align Left"></div>
|
||||
<div class="push_button" id="tool_aligncenter" title="Align Center"></div>
|
||||
<div class="push_button" id="tool_alignright" title="Align Right"></div>
|
||||
|
@ -409,17 +633,17 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
<option id="smallest_object" value="smallest">smallest object</option>
|
||||
<option id="page" value="page">page</option>
|
||||
</select>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="g_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<img class="push_button" id="tool_ungroup" src="images/shape_ungroup.png" title="Ungroup Elements [G]" alt="Ungroup"/>
|
||||
<div class="tool_sep"></div>
|
||||
<div class="push_button" id="tool_ungroup" title="Ungroup Elements [G]"></div>
|
||||
</div>
|
||||
|
||||
<div id="rect_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="rect_tool">x:</label>
|
||||
<input id="rect_x" class="rect_tool attr_changer" title="Change rectangle X coordinate" size="3" data-attr="x"/>
|
||||
<label class="rect_tool">y:</label>
|
||||
|
@ -433,7 +657,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
</div>
|
||||
|
||||
<div id="image_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="image_tool">x:</label>
|
||||
<input id="image_x" class="image_tool attr_changer" title="Change image X coordinate" size="3" data-attr="x"/>
|
||||
<label class="image_tool">y:</label>
|
||||
|
@ -447,7 +671,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
</div>
|
||||
|
||||
<div id="circle_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="circle_tool">cx:</label>
|
||||
<input id="circle_cx" class="circle_tool attr_changer" title="Change circle's cx coordinate" size="3" data-attr="cx"/>
|
||||
<label class="circle_tool">cy:</label>
|
||||
|
@ -457,7 +681,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
</div>
|
||||
|
||||
<div id="ellipse_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="ellipse_tool">cx:</label>
|
||||
<input id="ellipse_cx" class="ellipse_tool attr_changer" title="Change ellipse's cx coordinate" size="3" data-attr="cx"/>
|
||||
<label class="ellipse_tool">cy:</label>
|
||||
|
@ -469,7 +693,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
</div>
|
||||
|
||||
<div id="line_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="line_tool">x1:</label>
|
||||
<input id="line_x1" class="line_tool attr_changer" title="Change line's starting x coordinate" size="3" data-attr="x1"/>
|
||||
<label class="line_tool">y1:</label>
|
||||
|
@ -481,7 +705,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
</div>
|
||||
|
||||
<div id="text_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="text_tool">x:</label>
|
||||
<input id="text_x" class="text_tool attr_changer" title="Change text X coordinate" size="3" data-attr="x"/>
|
||||
<label class="text_tool">y:</label>
|
||||
|
@ -501,7 +725,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
</div>
|
||||
|
||||
<div id="path_node_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="path_node_tool">x:</label>
|
||||
<input id="path_node_x" class="path_node_tool attr_changer" title="Change node's x coordinate" size="3" data-attr="x"/>
|
||||
<label class="path_node_tool">y:</label>
|
||||
|
@ -552,19 +776,19 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
<li>1000%</li>
|
||||
</ul>
|
||||
</div>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
</div>
|
||||
|
||||
<div id="tools_bottom_2">
|
||||
<table>
|
||||
<tr>
|
||||
<td id="fill_tool_bottom">fill:</td>
|
||||
<td id="fill_tool_bottom" class="label">fill:</td>
|
||||
<td><div id="fill_color" class="color_block" title="Change fill color"></div></td>
|
||||
<td colspan="3"><div id="fill_opacity">100%</div></td>
|
||||
<td colspan="3"><div id="fill_opacity" class="label">100%</div></td>
|
||||
</tr><tr>
|
||||
<td id="stroke_tool_bottom">stroke:</td>
|
||||
<td id="stroke_tool_bottom" class="label">stroke:</td>
|
||||
<td><div id="stroke_color" class="color_block" title="Change stroke color"></div></td>
|
||||
<td><div id="stroke_opacity">100 %</div></td>
|
||||
<td><div id="stroke_opacity" class="label">100 %</div></td>
|
||||
<td>
|
||||
<input id="stroke_width" title="Change stroke width" size="2" value="5" type="text" data-attr="Stroke Width"/>
|
||||
</td>
|
||||
|
@ -659,6 +883,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
<option id="icon_small" value="s">Small</option>
|
||||
<option id="icon_medium" value="m" selected="selected">Medium</option>
|
||||
<option id="icon_large" value="l">Large</option>
|
||||
<option id="icon_xlarge" value="xl">Extra Large</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
|
|
@ -47,11 +47,20 @@ body {
|
|||
margin-top: 2px;
|
||||
}
|
||||
|
||||
#svg_editor #stroke_bg,
|
||||
#svg_editor #fill_bg {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
#svg_editor #fill_color, #svg_editor #stroke_color {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
border: 1px solid #808080;
|
||||
cursor: pointer;
|
||||
margin-top: -19px;
|
||||
margin-left: 1px;
|
||||
}
|
||||
|
||||
#svg_editor div#palette {
|
||||
|
@ -138,6 +147,7 @@ body {
|
|||
border-bottom: 1px solid #FFFFFF;
|
||||
border-left: 1px solid #808080;
|
||||
border-top: 1px solid #808080;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#svg_editor .layer_button {
|
||||
|
@ -149,6 +159,8 @@ body {
|
|||
border-right: 1px solid #808080;
|
||||
border-bottom: 1px solid #808080;
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
#svg_editor .layer_buttonpressed {
|
||||
|
@ -182,9 +194,6 @@ body {
|
|||
}
|
||||
|
||||
#svg_editor #layerlist td.layervis {
|
||||
background-image: url('images/eye.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 3px center;
|
||||
width: 22px;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
@ -193,6 +202,14 @@ body {
|
|||
cursor:pointer;
|
||||
}
|
||||
|
||||
#svg_editor #layerlist td.layervis * {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#svg_editor #layerlist td.layerinvis * {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#svg_editor #layerlist td.layername {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
@ -311,6 +328,7 @@ body {
|
|||
position: relative;
|
||||
top: -13px;
|
||||
left: -5px;
|
||||
margin-top: -3px;
|
||||
margin-bottom: -13px;
|
||||
}
|
||||
|
||||
|
@ -331,8 +349,7 @@ span.zoom_tool {
|
|||
position: relative;
|
||||
}
|
||||
|
||||
.dropdown button {
|
||||
background: transparent 3px 8px url('images/dropdown.gif') no-repeat;
|
||||
#svg_editor .dropdown button {
|
||||
width: 15px;
|
||||
height: 21px;
|
||||
margin: 6px 0 0 1px;
|
||||
|
@ -422,13 +439,37 @@ span.zoom_tool {
|
|||
}
|
||||
|
||||
#svg_editor .tool_sep {
|
||||
width: 2px;
|
||||
width: 1px;
|
||||
background: #888;
|
||||
border-left: 1px outset #EEE;
|
||||
margin: 2px 3px;
|
||||
padding: 0;
|
||||
height: 24px;
|
||||
margin: 2px;
|
||||
margin-right: 0;
|
||||
padding: 2px;
|
||||
|
||||
}
|
||||
|
||||
#tool_bold, #tool_italic {
|
||||
font: bold 2.1em/1.1em serif;
|
||||
text-align: center;
|
||||
padding-left: 2px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#tool_bold span, #tool_italic span {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0; left: 0;
|
||||
background: #000;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#tool_italic {
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
||||
#svg_editor #color_picker {
|
||||
position: absolute;
|
||||
display: none;
|
||||
|
@ -449,22 +490,6 @@ span.zoom_tool {
|
|||
width: 30px;
|
||||
}
|
||||
|
||||
#svg_editor #tool_square { background: 2px 2px url('images/square.png') no-repeat; }
|
||||
#svg_editor #tool_rect { background: 2px 2px url('images/rect.png') no-repeat; }
|
||||
#svg_editor #tool_fhrect { background: 2px 2px url('images/freehand-square.png') no-repeat; }
|
||||
#svg_editor #tool_circle { background: 2px 2px url('images/circle.png') no-repeat; }
|
||||
#svg_editor #tool_ellipse { background: 2px 2px url('images/ellipse.png') no-repeat; }
|
||||
#svg_editor #tool_fhellipse { background: 2px 2px url('images/freehand-circle.png') no-repeat; }
|
||||
#svg_editor #tool_stacktop { background: 2px 2px url('images/move_top.png') no-repeat; }
|
||||
#svg_editor #tool_stackbottom { background: 2px 2px url('images/move_bottom.png') no-repeat; }
|
||||
#svg_editor #tool_aligntop { background: 2px 2px url('images/align-top.png') no-repeat; }
|
||||
#svg_editor #tool_alignmiddle { background: 2px 2px url('images/align-middle.png') no-repeat; }
|
||||
#svg_editor #tool_alignbottom { background: 2px 2px url('images/align-bottom.png') no-repeat; }
|
||||
#svg_editor #tool_alignleft { background: 2px 2px url('images/align-left.png') no-repeat; }
|
||||
#svg_editor #tool_aligncenter { background: 2px 2px url('images/align-center.png') no-repeat; }
|
||||
#svg_editor #tool_alignright { background: 2px 2px url('images/align-right.png') no-repeat; }
|
||||
#svg_editor .tool_sep { background: 2px 2px url('images/sep.png') no-repeat; }
|
||||
|
||||
/* TODO: figure out what more-specific selector causes me to write this atrocity and not
|
||||
simply .tool_flyout_button */
|
||||
#svg_editor #tools_rect .tool_flyout_button, #svg_editor #tools_ellipse .tool_flyout_button {
|
||||
|
@ -539,6 +564,7 @@ span.zoom_tool {
|
|||
background-color: #B0B0B0;
|
||||
opacity: 1.0;
|
||||
text-align: center;
|
||||
border: 1px outset #777;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -548,22 +574,52 @@ span.zoom_tool {
|
|||
bottom: 100px;
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#svg_docprops #svg_docprops_container {
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
padding: 10px;
|
||||
background-color: #B0B0B0;
|
||||
border: 1px outset #777;
|
||||
opacity: 1.0;
|
||||
/* width: 450px;*/
|
||||
font-family: Verdana, Helvetica, sans-serif;
|
||||
font-size: .8em;
|
||||
}
|
||||
|
||||
#tool_docprops_back {
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
#svg_docprops_container #svg_docprops_docprops,
|
||||
#svg_docprops_container #svg_docprops_prefs {
|
||||
float: left;
|
||||
width: 200px;
|
||||
margin: 5px .7em;
|
||||
}
|
||||
|
||||
#svg_docprops_docprops > legend, #svg_docprops_prefs > legend {
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
|
||||
#svg_docprops_container fieldset {
|
||||
padding: 5px;
|
||||
margin: 5px;
|
||||
border: 1px solid #DDD;
|
||||
}
|
||||
|
||||
#svg_docprops_container label {
|
||||
display: block;
|
||||
margin-bottom: .2em;
|
||||
margin: .5em;
|
||||
}
|
||||
|
||||
#svginfo_bg_note {
|
||||
font-size: .9em;
|
||||
font-style: italic;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
#canvas_title {
|
||||
|
@ -595,15 +651,6 @@ span.zoom_tool {
|
|||
padding: 18px;
|
||||
}
|
||||
|
||||
#change_background input {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
#change_background input.cur_background {
|
||||
border: 2px solid blue;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
#background_img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
|
@ -635,21 +682,25 @@ span.zoom_tool {
|
|||
opacity: 0.6;
|
||||
}
|
||||
|
||||
#tool_source_save, #tool_docprops_save {
|
||||
background: #E8E8E8 url(images/save.png) no-repeat 2px 0;
|
||||
button#tool_source_save,
|
||||
button#tool_source_cancel,
|
||||
button#tool_docprops_save,
|
||||
button#tool_docprops_cancel {
|
||||
border:1px solid #dedede;
|
||||
line-height:130%;
|
||||
background: #E8E8E8 none;
|
||||
padding:5px 10px 5px 7px; /* Firefox */
|
||||
line-height:17px; /* Safari */
|
||||
}
|
||||
|
||||
#tool_source_cancel, #tool_docprops_cancel {
|
||||
background: #E8E8E8 url(images/cancel.png) no-repeat 2px 0;
|
||||
.toolbar_button button .svg_icon {
|
||||
margin:0 3px -3px 0 !important;
|
||||
padding:0;
|
||||
border:none;
|
||||
width:16px;
|
||||
height:16px;
|
||||
}
|
||||
|
||||
#tool_source_save, #tool_docprops_save {
|
||||
background: #E8E8E8 url(images/save.png) no-repeat 2px 0;
|
||||
}
|
||||
|
||||
#tool_source_cancel, #tool_docprops_cancel {
|
||||
background: #E8E8E8 url(images/cancel.png) no-repeat 2px 0;
|
||||
}
|
||||
|
||||
/* Slider
|
||||
----------------------------------*/
|
||||
|
@ -677,3 +728,11 @@ span.zoom_tool {
|
|||
background: #B0B0B0;
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
/* Possibly not necessary */
|
||||
#svg_editor #tools_rect .tool_flyout_button,
|
||||
#svg_editor #tools_ellipse .tool_flyout_button {
|
||||
padding: 2px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="js-hotkeys/jquery.hotkeys.min.js"></script>
|
||||
<script type="text/javascript" src="jgraduate/jquery.jgraduate.js"></script>
|
||||
<script type="text/javascript" src="svgicons/jquery.svgicons.js"></script>
|
||||
<script type="text/javascript" src="spinbtn/JQuerySpinBtn.js"></script>
|
||||
<script type="text/javascript" src="svgcanvas.js"></script>
|
||||
<script type="text/javascript" src="svg-editor.js"></script>
|
||||
<script type="text/javascript" src="locale/locale.js"></script>
|
||||
|
||||
|
||||
<!-- Release version of script tags: >
|
||||
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="js-hotkeys/jquery.hotkeys-0.7.9.js"></script>
|
||||
|
@ -53,11 +53,11 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
<div id="layerpanel">
|
||||
<h3 id="layersLable">Layers</h3>
|
||||
<fieldset id="layerbuttons">
|
||||
<img id="layer_new" class="layer_button" src="images/clear.png" alt="New Layer" title="New Layer"/>
|
||||
<img id="layer_delete" class="layer_button" src="images/delete.png" alt="Delete Layer" title="Delete Layer"/>
|
||||
<img id="layer_rename" class="layer_button" src="images/view-refresh.png" alt="Rename Layer" title="Rename Layer"/>
|
||||
<img id="layer_up" class="layer_button" src="images/go-up.png" alt="Move Layer up" title="Move Layer Up"/>
|
||||
<img id="layer_down" class="layer_button" src="images/go-down.png" alt="Move Layer Down" title="Move Layer Down"/>
|
||||
<div id="layer_new" class="layer_button" title="New Layer"></div>
|
||||
<div id="layer_delete" class="layer_button" title="Delete Layer"></div>
|
||||
<div id="layer_rename" class="layer_button" title="Rename Layer"></div>
|
||||
<div id="layer_up" class="layer_button" title="Move Layer Up"></div>
|
||||
<div id="layer_down" class="layer_button" title="Move Layer Down"></div>
|
||||
</fieldset>
|
||||
|
||||
<table id="layerlist">
|
||||
|
@ -76,7 +76,6 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
|
||||
<div id="logo">
|
||||
<a href="http://svg-edit.googlecode.com/" target="_blank" title="SVG-edit Home Page">
|
||||
<img src="images/logo.png" alt="logo" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
@ -84,30 +83,30 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
|
||||
<!-- File-like buttons: New, Save, Source -->
|
||||
<div id="file_panel">
|
||||
<img class="push_button" id="tool_clear" src="images/clear.png" title="New Image [N]" alt="Clear" />
|
||||
<img style="display:none" class="push_button" id="tool_open" src="images/open.png" title="Open Image [O]" alt="Open"/>
|
||||
<img class="push_button" id="tool_save" src="images/save.png" title="Save Image [S]" alt="Save"/>
|
||||
<img class="push_button" id="tool_docprops" src="images/document-properties.png" title="Document Properties [I]"/>
|
||||
<img class="push_button" id="tool_source" src="images/source.png" title="Edit Source [U]" alt="Source"/>
|
||||
<img class="tool_button" id="tool_wireframe" src="images/wireframe.png" title="Wireframe Mode [F]" alt="Wireframe"/>
|
||||
<div class="push_button" id="tool_clear" title="New Image [N]"></div>
|
||||
<div class="push_button" id="tool_open" title="Open Image [O]" style="display:none"></div>
|
||||
<div class="push_button" id="tool_save" title="Save Image [S]"></div>
|
||||
<div class="push_button" id="tool_docprops" title="Document Properties [I]"></div>
|
||||
<div class="push_button" id="tool_source" title="Edit Source [U]"></div>
|
||||
<div class="tool_button" id="tool_wireframe" title="Wireframe Mode [F]"></div>
|
||||
</div>
|
||||
|
||||
<!-- History buttons -->
|
||||
<div id="history_panel">
|
||||
<div class="tool_sep"></div>
|
||||
<img class="push_button tool_button_disabled" id="tool_undo" src="images/undo.png" title="Undo [Z]"/>
|
||||
<img class="push_button tool_button_disabled" id="tool_redo" src="images/redo.png" title="Redo [Y]"/>
|
||||
<div class="push_button tool_button_disabled" id="tool_undo" title="Undo [Z]"></div>
|
||||
<div class="push_button tool_button_disabled" id="tool_redo" title="Redo [Y]"></div>
|
||||
</div>
|
||||
|
||||
<!-- Buttons when a single element is selected -->
|
||||
<div id="selected_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<img class="push_button" id="tool_clone" src="images/clone.png" title="Clone Element [C]" alt="Copy"/>
|
||||
<img class="push_button" id="tool_delete" src="images/delete.png" title="Delete Element [Delete/Backspace]" alt="Delete"/>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<img class="push_button" id="tool_move_top" src="images/move_top.png" title="Move to Top [Shift+Up]" alt="Top"/>
|
||||
<img class="push_button" id="tool_move_bottom" src="images/move_bottom.png" title="Move to Bottom [Shift+Down]" alt="Bottom"/>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<div class="push_button" id="tool_clone" title="Clone Element [C]"></div>
|
||||
<div class="push_button" id="tool_delete" title="Delete Element [Delete/Backspace]"></div>
|
||||
<div class="tool_sep"></div>
|
||||
<div class="push_button" id="tool_move_top" title="Move to Top [Shift+Up]"></div>
|
||||
<div class="push_button" id="tool_move_bottom" title="Move to Bottom [Shift+Down]"></div>
|
||||
<div class="tool_sep"></div>
|
||||
|
||||
<label id="group_opacityLabel" class="selected_tool" for="group_opacity">opac:</label>
|
||||
<input id="group_opacity" class="selected_tool" title="Change selected item opacity" size="3" value="100" type="text"/>
|
||||
|
@ -130,11 +129,11 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
|
||||
<!-- Buttons when multiple elements are selected -->
|
||||
<div id="multiselected_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<img class="push_button" id="tool_clone_multi" src="images/clone.png" title="Clone Elements [C]" alt="Clone"/>
|
||||
<img class="push_button" id="tool_delete_multi" src="images/delete.png" title="Delete Selected Elements [Delete/Backspace]" alt="Delete"/>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<img class="push_button" id="tool_group" src="images/shape_group.png" title="Group Elements [G]" alt="Group"/>
|
||||
<div class="tool_sep"></div>
|
||||
<div class="push_button" id="tool_clone_multi" title="Clone Elements [C]"></div>
|
||||
<div class="push_button" id="tool_delete_multi" title="Delete Selected Elements [Delete/Backspace]"></div>
|
||||
<div class="tool_sep"></div>
|
||||
<div class="push_button" id="tool_group" title="Group Elements [G]"></div>
|
||||
<div class="push_button" id="tool_alignleft" title="Align Left"></div>
|
||||
<div class="push_button" id="tool_aligncenter" title="Align Center"></div>
|
||||
<div class="push_button" id="tool_alignright" title="Align Right"></div>
|
||||
|
@ -148,17 +147,17 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
<option id="smallest_object" value="smallest">smallest object</option>
|
||||
<option id="page" value="page">page</option>
|
||||
</select>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="g_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<img class="push_button" id="tool_ungroup" src="images/shape_ungroup.png" title="Ungroup Elements [G]" alt="Ungroup"/>
|
||||
<div class="tool_sep"></div>
|
||||
<div class="push_button" id="tool_ungroup" title="Ungroup Elements [G]"></div>
|
||||
</div>
|
||||
|
||||
<div id="rect_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="rect_tool">x:</label>
|
||||
<input id="rect_x" class="rect_tool attr_changer" title="Change rectangle X coordinate" size="3" data-attr="x"/>
|
||||
<label class="rect_tool">y:</label>
|
||||
|
@ -172,7 +171,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
</div>
|
||||
|
||||
<div id="image_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="image_tool">x:</label>
|
||||
<input id="image_x" class="image_tool attr_changer" title="Change image X coordinate" size="3" data-attr="x"/>
|
||||
<label class="image_tool">y:</label>
|
||||
|
@ -186,7 +185,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
</div>
|
||||
|
||||
<div id="circle_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="circle_tool">cx:</label>
|
||||
<input id="circle_cx" class="circle_tool attr_changer" title="Change circle's cx coordinate" size="3" data-attr="cx"/>
|
||||
<label class="circle_tool">cy:</label>
|
||||
|
@ -196,7 +195,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
</div>
|
||||
|
||||
<div id="ellipse_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="ellipse_tool">cx:</label>
|
||||
<input id="ellipse_cx" class="ellipse_tool attr_changer" title="Change ellipse's cx coordinate" size="3" data-attr="cx"/>
|
||||
<label class="ellipse_tool">cy:</label>
|
||||
|
@ -208,7 +207,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
</div>
|
||||
|
||||
<div id="line_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="line_tool">x1:</label>
|
||||
<input id="line_x1" class="line_tool attr_changer" title="Change line's starting x coordinate" size="3" data-attr="x1"/>
|
||||
<label class="line_tool">y1:</label>
|
||||
|
@ -220,13 +219,13 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
</div>
|
||||
|
||||
<div id="text_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="text_tool">x:</label>
|
||||
<input id="text_x" class="text_tool attr_changer" title="Change text X coordinate" size="3" data-attr="x"/>
|
||||
<label class="text_tool">y:</label>
|
||||
<input id="text_y" class="text_tool attr_changer" title="Change text Y coordinate" size="3" data-attr="y"/>
|
||||
<img class="tool_button" id="tool_bold" src="images/bold.png" title="Bold Text [B]" alt="Bold"/>
|
||||
<img class="tool_button" id="tool_italic" src="images/italic.png" title="Italic Text [I]" alt="Italic"/>
|
||||
<div class="tool_button" id="tool_bold" title="Bold Text [B]"><span></span>B</div>
|
||||
<div class="tool_button" id="tool_italic" title="Italic Text [I]"><span></span>i</div>
|
||||
<select id="font_family" class="text_tool" title="Change Font Family">
|
||||
<option selected="selected" value="serif">serif</option>
|
||||
<option value="sans-serif">sans-serif</option>
|
||||
|
@ -240,7 +239,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
</div>
|
||||
|
||||
<div id="path_node_panel">
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
<label class="path_node_tool">x:</label>
|
||||
<input id="path_node_x" class="path_node_tool attr_changer" title="Change node's x coordinate" size="3" data-attr="x"/>
|
||||
<label class="path_node_tool">y:</label>
|
||||
|
@ -249,24 +248,24 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
<option id="straight_segments" selected="selected" value="4">Straight</option>
|
||||
<option id="curve_segments" value="6">Curve</option>
|
||||
</select>
|
||||
<img class="tool_button" id="tool_node_clone" src="images/clone.png" title="Clone Node" alt="Clone"/>
|
||||
<img class="tool_button" id="tool_node_delete" src="images/delete.png" title="Delete Node" alt="Delete"/>
|
||||
<div class="tool_button" id="tool_node_clone" title="Clone Node"></div>
|
||||
<div class="tool_button" id="tool_node_delete" title="Delete Node"></div>
|
||||
</div>
|
||||
|
||||
</div> <!-- tools_top -->
|
||||
|
||||
<div id="tools_left" class="tools_panel">
|
||||
<img class="tool_button_current" id="tool_select" src="images/select.png" title="Select Tool [1]" alt="Select"/><br/>
|
||||
<img class="tool_button" id="tool_fhpath" src="images/fhpath.png" title="Pencil Tool [2]" alt="Pencil"/><br/>
|
||||
<img class="tool_button" id="tool_line" src="images/line.png" title="Line Tool [3]" alt="Line"/><br/>
|
||||
<img class="tool_button" id="tools_rect_show" src="images/square.png" title="Square/Rect Tool [4/Shift+4]" alt="Square"/>
|
||||
<img class="flyout_arrow_horiz" src="images/flyouth.png"/>
|
||||
<img class="tool_button" id="tools_ellipse_show" src="images/circle.png" title="Ellipse/Circle Tool [5/Shift+5]" alt="Circle"/><br/>
|
||||
<img class="flyout_arrow_horiz" src="images/flyouth.png"/>
|
||||
<img class="tool_button" id="tool_path" src="images/path.png" title="Path Tool [6]" alt="Path"/>
|
||||
<img class="tool_button" id="tool_text" src="images/text.png" title="Text Tool [7]" alt="Text"/>
|
||||
<img class="tool_button" id="tool_image" src="images/image.png" title="Image Tool [8]" alt="Image"/>
|
||||
<img class="tool_button" id="tool_zoom" src="images/zoom.png" title="Zoom Tool [Ctrl+Up/Down]" alt="Zoom"/>
|
||||
<div class="tool_button_current" id="tool_select" title="Select Tool [1]"></div>
|
||||
<div class="tool_button" id="tool_fhpath" title="Pencil Tool [2]"></div>
|
||||
<div class="tool_button" id="tool_line" title="Line Tool [3]"></div>
|
||||
<div class="tool_button" id="tools_rect_show" title="Square/Rect Tool [4/Shift+4]"></div>
|
||||
<div class="flyout_arrow_horiz"></div>
|
||||
<div class="tool_button" id="tools_ellipse_show" title="Ellipse/Circle Tool [5/Shift+5]"></div>
|
||||
<div class="flyout_arrow_horiz"></div>
|
||||
<div class="tool_button" id="tool_path" title="Path Tool [7]"></div>
|
||||
<div class="tool_button" id="tool_text" title="Text Tool [6]"></div>
|
||||
<div class="tool_button" id="tool_image" title="Image Tool [8]"></div>
|
||||
<div class="tool_button" id="tool_zoom" title="Zoom Tool [Ctrl+Up/Down]"></div>
|
||||
</div> <!-- tools_left -->
|
||||
|
||||
<div id="tools_bottom" class="tools_panel">
|
||||
|
@ -291,19 +290,19 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
<li>1000%</li>
|
||||
</ul>
|
||||
</div>
|
||||
<img class="tool_sep" src="images/sep.png" alt="|"/>
|
||||
<div class="tool_sep"></div>
|
||||
</div>
|
||||
|
||||
<div id="tools_bottom_2">
|
||||
<table>
|
||||
<tr>
|
||||
<td id="fill_tool_bottom">fill:</td>
|
||||
<td><div id="fill_color" class="color_block" title="Change fill color"></div></td>
|
||||
<td colspan="3"><div id="fill_opacity">100%</div></td>
|
||||
<td id="fill_tool_bottom" class="label">fill:</td>
|
||||
<td><div id="fill_bg"></div><div id="fill_color" class="color_block" title="Change fill color"></div></td>
|
||||
<td colspan="3"><div id="fill_opacity" class="label">100%</div></td>
|
||||
</tr><tr>
|
||||
<td id="stroke_tool_bottom">stroke:</td>
|
||||
<td><div id="stroke_color" class="color_block" title="Change stroke color"></div></td>
|
||||
<td><div id="stroke_opacity">100 %</div></td>
|
||||
<td id="stroke_tool_bottom" class="label">stroke:</td>
|
||||
<td><div id="stroke_bg"></div><div id="stroke_color" class="color_block" title="Change stroke color"></div></td>
|
||||
<td><div id="stroke_opacity" class="label">100 %</div></td>
|
||||
<td>
|
||||
<input id="stroke_width" title="Change stroke width" size="2" value="5" type="text" data-attr="Stroke Width"/>
|
||||
</td>
|
||||
|
@ -330,14 +329,14 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
<div id="color_picker"></div>
|
||||
|
||||
<div id="tools_rect" class="tools_flyout">
|
||||
<div id="tool_square" class="tool_flyout_button" title="Square"></div>
|
||||
<div id="tool_rect" class="tool_flyout_button" title="Rectangle"></div>
|
||||
<div id="tool_square" class="tool_flyout_button" title="Square"></div>
|
||||
<div id="tool_fhrect" class="tool_flyout_button" title="Free-Hand Rectangle"></div>
|
||||
</div>
|
||||
|
||||
<div id="tools_ellipse" class="tools_flyout">
|
||||
<div id="tool_circle" class="tool_flyout_button" title="Circle"></div>
|
||||
<div id="tool_ellipse" class="tool_flyout_button" title="Ellipse"></div>
|
||||
<div id="tool_circle" class="tool_flyout_button" title="Circle"></div>
|
||||
<div id="tool_fhellipse" class="tool_flyout_button" title="Free-Hand Ellipse"></div>
|
||||
</div>
|
||||
|
||||
|
@ -362,15 +361,15 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
<div id="tool_docprops_back" class="toolbar_button">
|
||||
<button id="tool_docprops_save">OK</button>
|
||||
<button id="tool_docprops_cancel">Cancel</button>
|
||||
|
||||
<label><span id="svginfo_title">Image title:</span> <input type="text" id="canvas_title" size="24"></label>
|
||||
</div>
|
||||
|
||||
|
||||
<fieldset id="change_background">
|
||||
<legend id="svginfo_change_background">Editor Background</legend>
|
||||
<div id="bg_blocks"></div>
|
||||
<label><span id="svginfo_bg_url">URL:</span> <input type="text" id="canvas_bg_url" size="17"></label>
|
||||
</fieldset>
|
||||
<fieldset id="svg_docprops_docprops">
|
||||
<legend id="svginfo_image_props">Image Properties</legend>
|
||||
<label>
|
||||
<span id="svginfo_title">Title:</span>
|
||||
<input type="text" id="canvas_title" size="24">
|
||||
</label>
|
||||
|
||||
<fieldset id="change_resolution">
|
||||
<legend id="svginfo_dim">Canvas Dimensions</legend>
|
||||
|
@ -390,9 +389,43 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
|||
<option id="fitToContent" value="content">Fit to Content</option>
|
||||
</select>
|
||||
</label>
|
||||
</fieldset>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<fieldset id="svg_docprops_prefs">
|
||||
<legend id="svginfo_editor_profs">Editor Preferences</legend>
|
||||
|
||||
<label><span id="svginfo_lang">Language:</span>
|
||||
<select id="lang_select">
|
||||
<option value="cs">Czech</option>
|
||||
<option value="nl">Dutch</option>
|
||||
<option value="en" selected="selected">English</option>
|
||||
<option value="fr">French</option>
|
||||
<option value="de">German</option>
|
||||
<option value="ro">Romanian</option>
|
||||
<option value="sk">Slovak</option>
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<label><span id="svginfo_icons">Icon size:</span>
|
||||
<select id="iconsize">
|
||||
<option id="icon_small" value="s">Small</option>
|
||||
<option id="icon_medium" value="m" selected="selected">Medium</option>
|
||||
<option id="icon_large" value="l">Large</option>
|
||||
<option id="icon_xlarge" value="xl">Extra Large</option>
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<fieldset id="change_background">
|
||||
<legend id="svginfo_change_background">Editor Background</legend>
|
||||
<div id="bg_blocks"></div>
|
||||
<label><span id="svginfo_bg_url">URL:</span> <input type="text" id="canvas_bg_url" size="21"></label>
|
||||
<p id="svginfo_bg_note">Note: Background will not be saved with image.</p>
|
||||
</fieldset>
|
||||
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -8,12 +8,72 @@ if(!window.console) {
|
|||
*/
|
||||
|
||||
function svg_edit_setup() {
|
||||
var uiStrings = {
|
||||
'invalidAttrValGiven':'Invalid value given',
|
||||
'noContentToFitTo':'No content to fit to',
|
||||
'layer':"Layer",
|
||||
'dupeLayerName':"There is already a layer named that!",
|
||||
'enterUniqueLayerName':"Please enter a unique layer name",
|
||||
'enterNewLayerName':"Please enter the new layer name",
|
||||
'layerHasThatName':"Layer already has that name",
|
||||
'QmoveElemsToLayer':"Move selected elements to layer '%s'?",
|
||||
'QwantToClear':'Do you want to clear the drawing?\nThis will also erase your undo history!',
|
||||
'QerrorsRevertToSource':'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
|
||||
'QignoreSourceChanges':'Ignore changes made to SVG source?'
|
||||
};
|
||||
|
||||
var palette = ["#000000","#202020","#404040","#606060","#808080","#a0a0a0","#c0c0c0","#e0e0e0","#ffffff","#800000","#ff0000","#808000","#ffff00","#008000","#00ff00","#008080","#00ffff","#000080","#0000ff","#800080","#ff00ff","#2b0000","#550000","#800000","#aa0000","#d40000","#ff0000","#ff2a2a","#ff5555","#ff8080","#ffaaaa","#ffd5d5","#280b0b","#501616","#782121","#a02c2c","#c83737","#d35f5f","#de8787","#e9afaf","#f4d7d7","#241c1c","#483737","#6c5353","#916f6f","#ac9393","#c8b7b7","#e3dbdb","#2b1100","#552200","#803300","#aa4400","#d45500","#ff6600","#ff7f2a","#ff9955","#ffb380","#ffccaa","#ffe6d5","#28170b","#502d16","#784421","#a05a2c","#c87137","#d38d5f","#deaa87","#e9c6af","#f4e3d7","#241f1c","#483e37","#6c5d53","#917c6f","#ac9d93","#c8beb7","#e3dedb","#2b2200","#554400","#806600","#aa8800","#d4aa00","#ffcc00","#ffd42a","#ffdd55","#ffe680","#ffeeaa","#fff6d5","#28220b","#504416","#786721","#a0892c","#c8ab37","#d3bc5f","#decd87","#e9ddaf","#f4eed7","#24221c","#484537","#6c6753","#918a6f","#aca793","#c8c4b7","#e3e2db","#222b00","#445500","#668000","#88aa00","#aad400","#ccff00","#d4ff2a","#ddff55","#e5ff80","#eeffaa","#f6ffd5","#22280b","#445016","#677821","#89a02c","#abc837","#bcd35f","#cdde87","#dde9af","#eef4d7","#22241c","#454837","#676c53","#8a916f","#a7ac93","#c4c8b7","#e2e3db","#112b00","#225500","#338000","#44aa00","#55d400","#66ff00","#7fff2a","#99ff55","#b3ff80","#ccffaa","#e5ffd5","#17280b","#2d5016","#447821","#5aa02c","#71c837","#8dd35f","#aade87","#c6e9af","#e3f4d7","#1f241c","#3e4837","#5d6c53","#7c916f","#9dac93","#bec8b7","#dee3db","#002b00","#005500","#008000","#00aa00","#00d400","#00ff00","#2aff2a","#55ff55","#80ff80","#aaffaa","#d5ffd5","#0b280b","#165016","#217821","#2ca02c","#37c837","#5fd35f","#87de87","#afe9af","#d7f4d7","#1c241c","#374837","#536c53","#6f916f","#93ac93","#b7c8b7","#dbe3db","#002b11","#005522","#008033","#00aa44","#00d455","#00ff66","#2aff80","#55ff99","#80ffb3","#aaffcc","#d5ffe6","#0b2817","#16502d","#217844","#2ca05a","#37c871","#5fd38d","#87deaa","#afe9c6","#d7f4e3","#1c241f","#37483e","#536c5d","#6f917c","#93ac9d","#b7c8be","#dbe3de","#002b22","#005544","#008066","#00aa88","#00d4aa","#00ffcc","#2affd5","#55ffdd","#80ffe6","#aaffee","#d5fff6","#0b2822","#165044","#217867","#2ca089","#37c8ab","#5fd3bc","#87decd","#afe9dd","#d7f4ee","#1c2422","#374845","#536c67","#6f918a","#93aca7","#b7c8c4","#dbe3e2","#00222b","#004455","#006680","#0088aa","#00aad4","#00ccff","#2ad4ff","#55ddff","#80e5ff","#aaeeff","#d5f6ff","#0b2228","#164450","#216778","#2c89a0","#37abc8","#5fbcd3","#87cdde","#afdde9","#d7eef4","#1c2224","#374548","#53676c","#6f8a91","#93a7ac","#b7c4c8","#dbe2e3","#00112b","#002255","#003380","#0044aa","#0055d4","#0066ff","#2a7fff","#5599ff","#80b3ff","#aaccff","#d5e5ff","#0b1728","#162d50","#214478","#2c5aa0","#3771c8","#5f8dd3","#87aade","#afc6e9","#d7e3f4","#1c1f24","#373e48","#535d6c","#6f7c91","#939dac","#b7bec8","#dbdee3","#00002b","#000055","#000080","#0000aa","#0000d4","#0000ff","#2a2aff","#5555ff","#8080ff","#aaaaff","#d5d5ff","#0b0b28","#161650","#212178","#2c2ca0","#3737c8","#5f5fd3","#8787de","#afafe9","#d7d7f4","#1c1c24","#373748","#53536c","#6f6f91","#9393ac","#b7b7c8","#dbdbe3","#11002b","#220055","#330080","#4400aa","#5500d4","#6600ff","#7f2aff","#9955ff","#b380ff","#ccaaff","#e5d5ff","#170b28","#2d1650","#442178","#5a2ca0","#7137c8","#8d5fd3","#aa87de","#c6afe9","#e3d7f4","#1f1c24","#3e3748","#5d536c","#7c6f91","#9d93ac","#beb7c8","#dedbe3","#22002b","#440055","#660080","#8800aa","#aa00d4","#cc00ff","#d42aff","#dd55ff","#e580ff","#eeaaff","#f6d5ff","#220b28","#441650","#672178","#892ca0","#ab37c8","#bc5fd3","#cd87de","#ddafe9","#eed7f4","#221c24","#453748","#67536c","#8a6f91","#a793ac","#c4b7c8","#e2dbe3","#2b0022","#550044","#800066","#aa0088","#d400aa","#ff00cc","#ff2ad4","#ff55dd","#ff80e5","#ffaaee","#ffd5f6","#280b22","#501644","#782167","#a02c89","#c837ab","#d35fbc","#de87cd","#e9afdd","#f4d7ee","#241c22","#483745","#6c5367","#916f8a","#ac93a7","#c8b7c4","#e3dbe2","#2b0011","#550022","#800033","#aa0044","#d40055","#ff0066","#ff2a7f","#ff5599","#ff80b2","#ffaacc","#ffd5e5","#280b17","#50162d","#782144","#a02c5a","#c83771","#d35f8d","#de87aa","#e9afc6","#f4d7e3","#241c1f","#48373e","#6c535d","#916f7c","#ac939d","#c8b7be","#e3dbde"]
|
||||
|
||||
var isMac = false; //(navigator.platform.indexOf("Mac") != -1);
|
||||
var modKey = ""; //(isMac ? "meta+" : "ctrl+");
|
||||
var svgCanvas = new SvgCanvas(document.getElementById("svgcanvas"));
|
||||
|
||||
// Store and retrieve preferences
|
||||
$.pref = function(key, val) {
|
||||
curPrefs[key] = val;
|
||||
key = 'svg-edit-'+key;
|
||||
var host = location.hostname;
|
||||
var onweb = host && host.indexOf('.') != -1;
|
||||
var store = (val != undefined);
|
||||
var storage = false;
|
||||
// Some FF versions throw security errors here
|
||||
try {
|
||||
if(window.localStorage && onweb) {
|
||||
storage = localStorage;
|
||||
}
|
||||
} catch(e) {}
|
||||
try {
|
||||
if(window.globalStorage && onweb) {
|
||||
storage = globalStorage[host];
|
||||
}
|
||||
} catch(e) {}
|
||||
|
||||
if(storage) {
|
||||
if(store) storage.setItem(key, val);
|
||||
else return storage.getItem(key);
|
||||
} else if(window.widget) {
|
||||
if(store) widget.setPreferenceForKey(val, key);
|
||||
else return widget.preferenceForKey(key);
|
||||
} else {
|
||||
if(store) {
|
||||
var d = new Date();
|
||||
d.setTime(d.getTime() + 31536000000);
|
||||
val = encodeURIComponent(val);
|
||||
document.cookie = key+'='+val+'; expires='+d.toUTCString();
|
||||
} else {
|
||||
var result = document.cookie.match(new RegExp(key + "=([^;]+)"));
|
||||
return result?decodeURIComponent(result[1]):'';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var curPrefs = {
|
||||
lang:'en',
|
||||
iconsize:'m',
|
||||
bg_color:'#FFF',
|
||||
bg_url:''
|
||||
};
|
||||
|
||||
var setSelectMode = function() {
|
||||
$('.tool_button_current').removeClass('tool_button_current').addClass('tool_button');
|
||||
$('#tool_select').addClass('tool_button_current');
|
||||
|
@ -66,14 +126,16 @@ function svg_edit_setup() {
|
|||
// Deal with pathedit mode
|
||||
$('#path_node_panel').toggle(is_node);
|
||||
$('#tools_bottom_2,#tools_bottom_3').toggle(!is_node);
|
||||
var size = $('#tool_select > svg')[0].getAttribute('width');
|
||||
if(is_node) {
|
||||
// Change select icon
|
||||
$('.tool_button').removeClass('tool_button_current');
|
||||
$('#tool_select').attr('src','images/select_node.png').addClass('tool_button_current');
|
||||
$('#tool_select').addClass('tool_button_current')
|
||||
.empty().append($.getSvgIcon('select_node'));
|
||||
} else {
|
||||
$('#tool_select').attr('src','images/select.png');
|
||||
|
||||
$('#tool_select').empty().append($.getSvgIcon('select'));
|
||||
}
|
||||
$.resizeSvgIcons({'#tool_select .svg_icon':size});
|
||||
|
||||
updateContextPanel();
|
||||
};
|
||||
|
@ -194,7 +256,6 @@ function svg_edit_setup() {
|
|||
fillOpacity = "N/A";
|
||||
}
|
||||
document.getElementById("gradbox_fill").parentNode.firstChild.setAttribute("fill", fillColor);
|
||||
|
||||
if (strokeColor == null || strokeColor == "" || strokeColor == "none") {
|
||||
strokeColor = "none";
|
||||
strokeOpacity = "N/A";
|
||||
|
@ -322,20 +383,10 @@ function svg_edit_setup() {
|
|||
|
||||
if ( (elem && !is_node) || multiselected) {
|
||||
// update the selected elements' layer
|
||||
$('#selLayerNames')[0].removeAttribute('disabled');
|
||||
var opts = $('#selLayerNames option');
|
||||
for (var i = 0; i < opts.length; ++i) {
|
||||
var opt = opts[i];
|
||||
if (currentLayer == opt.textContent) {
|
||||
opt.setAttribute('selected', 'selected');
|
||||
$('#selLayerNames').removeAttr('disabled').val(currentLayer);
|
||||
}
|
||||
else {
|
||||
opt.removeAttribute('selected');
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$('#selLayerNames')[0].setAttribute('disabled', 'disabled');
|
||||
$('#selLayerNames').attr('disabled', 'disabled');
|
||||
}
|
||||
|
||||
};
|
||||
|
@ -349,7 +400,7 @@ function svg_edit_setup() {
|
|||
svgCanvas.bind("saved", saveHandler);
|
||||
svgCanvas.bind("zoomed", zoomChanged);
|
||||
|
||||
var str = '<div class="palette_item" style="background-image: url(\'images/none.png\');" data-rgb="none"></div>'
|
||||
var str = '<div class="palette_item" data-rgb="none"></div>'
|
||||
$.each(palette, function(i,item){
|
||||
str += '<div class="palette_item" style="background-color: ' + item + ';" data-rgb="' + item + '"></div>';
|
||||
});
|
||||
|
@ -369,13 +420,12 @@ function svg_edit_setup() {
|
|||
blk.click(function() {
|
||||
blocks.removeClass(cur_bg);
|
||||
$(this).addClass(cur_bg);
|
||||
$('#canvas_bg_url').removeClass(cur_bg);
|
||||
});
|
||||
});
|
||||
$('#canvas_bg_url').focus(function() {
|
||||
blocks.removeClass(cur_bg);
|
||||
$(this).addClass(cur_bg);
|
||||
});
|
||||
|
||||
if($.pref('bg_color')) {
|
||||
setBackground($.pref('bg_color'), $.pref('bg_url'));
|
||||
}
|
||||
|
||||
var pos = $('#tools_rect_show').position();
|
||||
$('#tools_rect').css({'left': pos.left+4, 'top': pos.top+77});
|
||||
|
@ -435,8 +485,8 @@ function svg_edit_setup() {
|
|||
var promptMoveLayerOnce = false;
|
||||
$('#selLayerNames').change(function(){
|
||||
var destLayer = this.options[this.selectedIndex].value;
|
||||
// TODO: localize this prompt
|
||||
if (destLayer && (promptMoveLayerOnce || confirm('Move selected elements to layer \'' + destLayer + '\'?'))) {
|
||||
var confirm_str = uiStrings.QmoveElemsToLayer.replace('%s',destLayer);
|
||||
if (destLayer && (promptMoveLayerOnce || confirm(confirm_str))) {
|
||||
promptMoveLayerOnce = true;
|
||||
svgCanvas.moveSelectedToLayer(destLayer);
|
||||
svgCanvas.clearSelection();
|
||||
|
@ -480,9 +530,7 @@ function svg_edit_setup() {
|
|||
} else valid = true;
|
||||
|
||||
if(!valid) {
|
||||
// TODO: localize this
|
||||
alert('Invalid value given for' + $(this).attr('title').replace('Change','')
|
||||
+ '.');
|
||||
alert(uiStrings.invalidAttrValGiven);
|
||||
this.value = selectedElement.getAttribute(attr);
|
||||
return false;
|
||||
}
|
||||
|
@ -616,6 +664,14 @@ function svg_edit_setup() {
|
|||
}
|
||||
}, true);
|
||||
|
||||
var setIcon = function(holder_sel, id) {
|
||||
var icon = $.getSvgIcon(id).clone();
|
||||
var holder = $(holder_sel);
|
||||
icon[0].setAttribute('width',holder.width());
|
||||
icon[0].setAttribute('height',holder.height());
|
||||
holder.empty().append(icon);
|
||||
}
|
||||
|
||||
var clickSelect = function() {
|
||||
if (toolButtonClick('#tool_select')) {
|
||||
svgCanvas.setMode('select');
|
||||
|
@ -640,14 +696,43 @@ function svg_edit_setup() {
|
|||
flyoutspeed = 'normal';
|
||||
svgCanvas.setMode('square');
|
||||
}
|
||||
$('#tools_rect_show').attr('src', 'images/square.png');
|
||||
setIcon('#tools_rect_show','square');
|
||||
};
|
||||
|
||||
var clickRect = function(){
|
||||
if (toolButtonClick('#tools_rect_show')) {
|
||||
svgCanvas.setMode('rect');
|
||||
}
|
||||
$('#tools_rect_show').attr('src', 'images/rect.png');
|
||||
setIcon('#tools_rect_show','rect');
|
||||
};
|
||||
|
||||
var clickFHRect = function(){
|
||||
if (toolButtonClick('#tools_rect_show')) {
|
||||
svgCanvas.setMode('fhrect');
|
||||
}
|
||||
setIcon('#tools_rect_show','fh_rect');
|
||||
};
|
||||
|
||||
var clickCircle = function(){
|
||||
if (toolButtonClick('#tools_ellipse_show', flyoutspeed)) {
|
||||
flyoutspeed = 'normal';
|
||||
svgCanvas.setMode('circle');
|
||||
}
|
||||
setIcon('#tools_ellipse_show','circle');
|
||||
};
|
||||
|
||||
var clickEllipse = function(){
|
||||
if (toolButtonClick('#tools_ellipse_show')) {
|
||||
svgCanvas.setMode('ellipse');
|
||||
}
|
||||
setIcon('#tools_ellipse_show','ellipse');
|
||||
};
|
||||
|
||||
var clickFHEllipse = function(){
|
||||
if (toolButtonClick('#tools_ellipse_show')) {
|
||||
svgCanvas.setMode('fhellipse');
|
||||
}
|
||||
setIcon('#tools_ellipse_show','fh_ellipse');
|
||||
};
|
||||
|
||||
var clickImage = function(){
|
||||
|
@ -673,35 +758,6 @@ function svg_edit_setup() {
|
|||
}
|
||||
};
|
||||
|
||||
var clickFHRect = function(){
|
||||
if (toolButtonClick('#tools_rect_show')) {
|
||||
svgCanvas.setMode('fhrect');
|
||||
}
|
||||
$('#tools_rect_show').attr('src', 'images/freehand-square.png');
|
||||
};
|
||||
|
||||
var clickCircle = function(){
|
||||
if (toolButtonClick('#tools_ellipse_show', flyoutspeed)) {
|
||||
flyoutspeed = 'normal';
|
||||
svgCanvas.setMode('circle');
|
||||
}
|
||||
$('#tools_ellipse_show').attr('src', 'images/circle.png');
|
||||
};
|
||||
|
||||
var clickEllipse = function(){
|
||||
if (toolButtonClick('#tools_ellipse_show')) {
|
||||
svgCanvas.setMode('ellipse');
|
||||
}
|
||||
$('#tools_ellipse_show').attr('src', 'images/ellipse.png');
|
||||
};
|
||||
|
||||
var clickFHEllipse = function(){
|
||||
if (toolButtonClick('#tools_ellipse_show')) {
|
||||
svgCanvas.setMode('fhellipse');
|
||||
}
|
||||
$('#tools_ellipse_show').attr('src', 'images/freehand-circle.png');
|
||||
};
|
||||
|
||||
var clickText = function(){
|
||||
toolButtonClick('#tool_text');
|
||||
svgCanvas.setMode('text');
|
||||
|
@ -767,8 +823,7 @@ function svg_edit_setup() {
|
|||
}
|
||||
|
||||
var clickClear = function(){
|
||||
// TODO: localize this prompt
|
||||
if( confirm('Do you want to clear the drawing?\nThis will also erase your undo history!') ) {
|
||||
if( confirm(uiStrings.QwantToClear) ) {
|
||||
svgCanvas.clear();
|
||||
updateContextPanel();
|
||||
}
|
||||
|
@ -863,6 +918,8 @@ function svg_edit_setup() {
|
|||
$('#svg_source_textarea').focus();
|
||||
};
|
||||
|
||||
$('#svg_docprops_container').draggable({cancel:'button,fieldset'});
|
||||
|
||||
var showDocProperties = function(){
|
||||
if (docprops) return;
|
||||
docprops = true;
|
||||
|
@ -904,19 +961,27 @@ function svg_edit_setup() {
|
|||
if (!editingsource) return;
|
||||
|
||||
if (!svgCanvas.setSvgString($('#svg_source_textarea').val())) {
|
||||
// TODO: localize this prompt
|
||||
if( !confirm('There were parsing errors in your SVG source.\nRevert back to original SVG source?') ) {
|
||||
if( !confirm(uiStrings.QerrorsRevertToSource) ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
svgCanvas.clearSelection();
|
||||
hideSourceEditor();
|
||||
populateLayers();
|
||||
setTitle(svgCanvas.getImageTitle());
|
||||
};
|
||||
|
||||
var setTitle = function(title) {
|
||||
var editor_title = $('title:first').text().split(':')[0];
|
||||
var new_title = editor_title + (title?': ' + title:'');
|
||||
$('title:first').text(new_title);
|
||||
}
|
||||
|
||||
var saveDocProperties = function(){
|
||||
// set title
|
||||
svgCanvas.setImageTitle($('#canvas_title').val());
|
||||
var new_title = $('#canvas_title').val();
|
||||
setTitle(new_title);
|
||||
svgCanvas.setImageTitle(new_title);
|
||||
|
||||
// update resolution
|
||||
var x = parseInt($('#canvas_width').val());
|
||||
|
@ -925,41 +990,193 @@ function svg_edit_setup() {
|
|||
x ='fit';
|
||||
}
|
||||
if(!svgCanvas.setResolution(x,y)) {
|
||||
alert('No content to fit to');
|
||||
alert(uiStrings.noContentToFitTo);
|
||||
return false;
|
||||
}
|
||||
|
||||
// set background
|
||||
var new_bg, bg_url = $('#canvas_bg_url').val();
|
||||
var bg_blk = $('#bg_blocks div.cur_background');
|
||||
if(bg_blk.length) {
|
||||
new_bg = bg_blk.css('background');
|
||||
$('#svgcanvas').css('background',new_bg);
|
||||
$('#background_img').remove();
|
||||
} else if(bg_url) {
|
||||
if(!$('#background_img').length) {
|
||||
$('<div id="background_img"><img src="'+bg_url+'" style="width:100%"></div>')
|
||||
.prependTo('#svgcanvas');
|
||||
} else {
|
||||
$('#background_img img').attr('src',bg_url);
|
||||
}
|
||||
} else {
|
||||
new_bg = '#FFF';
|
||||
$('#svgcanvas').css('background',new_bg);
|
||||
$('#background_img').remove();
|
||||
var color = $('#bg_blocks div.cur_background').css('background') || '#FFF';
|
||||
setBackground(color, $('#canvas_bg_url').val());
|
||||
|
||||
// set language
|
||||
var lang = $('#lang_select').val();
|
||||
if(lang != curPrefs.lang) {
|
||||
put_locale(svgCanvas, lang);
|
||||
}
|
||||
|
||||
// set icon size
|
||||
setIconSize($('#iconsize').val());
|
||||
|
||||
hideDocProperties();
|
||||
};
|
||||
|
||||
function setBackground(color, url) {
|
||||
if(color == curPrefs.bg_color && url == curPrefs.bg_url) return;
|
||||
$.pref('bg_color', color);
|
||||
$.pref('bg_url', url);
|
||||
$('#svgcanvas').css('background',color);
|
||||
if(url) {
|
||||
if(!$('#background_img').length) {
|
||||
$('<div id="background_img"><img src="'+url+'" style="width:100%"></div>')
|
||||
.prependTo('#svgcanvas');
|
||||
} else {
|
||||
$('#background_img img').attr('src',url);
|
||||
}
|
||||
} else {
|
||||
$('#background_img').remove();
|
||||
}
|
||||
}
|
||||
|
||||
var setIconSize = function(size) {
|
||||
if(size == curPrefs.size) return;
|
||||
$.pref('iconsize', size);
|
||||
$('#iconsize').val(size);
|
||||
var icon_sizes = { s:16, m:24, l:32, xl:48 };
|
||||
var size_num = icon_sizes[size];
|
||||
|
||||
// Change icon size
|
||||
$('.tool_button, .push_button, .tool_button_current, .tool_button_disabled, .tool_flyout_button')
|
||||
.find('> svg').each(function() {
|
||||
this.setAttribute('width',size_num);
|
||||
this.setAttribute('height',size_num);
|
||||
});
|
||||
|
||||
$.resizeSvgIcons({
|
||||
'.flyout_arrow_horiz svg': size_num / 3,
|
||||
'#logo a > svg': size_num * 1.3
|
||||
});
|
||||
if(size != 's') {
|
||||
$.resizeSvgIcons({'#layerbuttons svg': size_num * .6});
|
||||
}
|
||||
|
||||
// Note that all rules will be prefixed with '#svg_editor' when parsed
|
||||
var cssResizeRules = {
|
||||
".tool_button,\
|
||||
.push_button,\
|
||||
.tool_button_current,\
|
||||
.tool_button_disabled,\
|
||||
#tools_rect .tool_flyout_button,\
|
||||
#tools_ellipse .tool_flyout_button": {
|
||||
'width': {s: '16px', l: '32px', xl: '48px'},
|
||||
'height': {s: '16px', l: '32px', xl: '48px'},
|
||||
'padding': {s: '1px', l: '2px', xl: '3px'}
|
||||
},
|
||||
".tool_sep": {
|
||||
'height': {s: '16px', l: '32px', xl: '48px'},
|
||||
'margin': {s: '2px 2px', l: '2px 5px', xl: '2px 8px'}
|
||||
},
|
||||
"#tools_top": {
|
||||
'left': {s: '27px', l: '50px', xl: '70px'},
|
||||
'height': {s: '50px', l: '88px', xl: '125px'}
|
||||
},
|
||||
"#tools_left": {
|
||||
'width': {s: '26px', l: '34px', xl: '42px'},
|
||||
'top': {s: '50px', l: '87px', xl: '125px'}
|
||||
},
|
||||
"div#workarea": {
|
||||
'left': {s: '27px', l: '46px', xl: '65px'},
|
||||
'top': {s: '50px', l: '88px', xl: '125px'},
|
||||
'bottom': {s: '52px', l: '68px', xl: '75px'}
|
||||
},
|
||||
"#tools_bottom": {
|
||||
'left': {s: '27px', l: '46px', xl: '65px'},
|
||||
'height': {s: '52px', l: '68px', xl: '75px'}
|
||||
},
|
||||
"#tools_top input, #tools_bottom input": {
|
||||
'margin-top': {s: '2px', l: '4px', xl: '5px'},
|
||||
'height': {s: 'auto', l: 'auto', xl: 'auto'},
|
||||
'border': {s: '1px solid #555', l: 'auto', xl: 'auto'},
|
||||
'font-size': {s: '.9em', l: '2em', xl: '2.5em'}
|
||||
},
|
||||
"#tools_bottom input": {
|
||||
'margin-top': {s: '6px', l: '4px', xl: '5px'},
|
||||
},
|
||||
"#tools_bottom span, #copyright, #tools_bottom .label": {
|
||||
'font-size': {l: '1.5em', xl: '2em'}
|
||||
},
|
||||
"#tools_bottom_2": {
|
||||
'width': {l: '295px', xl: '355px'}
|
||||
},
|
||||
"#tools_top > div, #tools_top": {
|
||||
'line-height': {s: '17px', l: '34px', xl: '50px'}
|
||||
},
|
||||
".dropdown button": {
|
||||
'height': {s: '18px', l: '34px', xl: '40px'}
|
||||
},
|
||||
"#tools_top label, #tools_bottom label": {
|
||||
'font-size': {s: '1em', l: '1.5em', xl: '2em'},
|
||||
'margin-top': {s: '1px', l: '3px', xl: '5px'}
|
||||
},
|
||||
"#tool_bold, #tool_italic": {
|
||||
'font-size': {s: '1.5em', l: '3em', xl: '4.5em'}
|
||||
},
|
||||
"#sidepanels": {
|
||||
'top': {s: '50px', l: '88px', xl: '125px'},
|
||||
'bottom': {s: '52px', l: '68px', xl: '65px'},
|
||||
},
|
||||
'#layerbuttons': {
|
||||
'width': {l: '130px', xl: '175px'},
|
||||
'height': {l: '24px', xl: '30px'}
|
||||
},
|
||||
'#layerlist': {
|
||||
'width': {l: '128px', xl: '150px'}
|
||||
},
|
||||
'.layer_button': {
|
||||
'width': {l: '19px', xl: '28px'},
|
||||
'height': {l: '19px', xl: '28px'}
|
||||
},
|
||||
".flyout_arrow_horiz": {
|
||||
'left': {s: '-5px', l: '5px', xl: '14px'},
|
||||
'top': {s: '-13px', l: '-13px', xl: '-20px'}
|
||||
},
|
||||
"input.spin-button": {
|
||||
'background-image': {l: "url('images/spinbtn_updn_big.png')", xl: "url('images/spinbtn_updn_big.png')"},
|
||||
'background-position': {l: '100% -5px', xl: '100% -2px'},
|
||||
'padding-right': {l: '24px', xl: '24px' }
|
||||
},
|
||||
"input.spin-button.up": {
|
||||
'background-position': {l: '100% -45px', xl: '100% -42px'}
|
||||
},
|
||||
"input.spin-button.down": {
|
||||
'background-position': {l: '100% -85px', xl: '100% -82px'}
|
||||
}
|
||||
};
|
||||
|
||||
var rule_elem = $('#tool_size_rules');
|
||||
if(!rule_elem.length) {
|
||||
rule_elem = $('<style id="tool_size_rules"><\/style>').appendTo('head');
|
||||
} else {
|
||||
rule_elem.empty();
|
||||
}
|
||||
|
||||
if(size != 'm') {
|
||||
var style_str = '';
|
||||
$.each(cssResizeRules, function(selector, rules) {
|
||||
selector = '#svg_editor ' + selector.replace(/,/g,', #svg_editor');
|
||||
style_str += selector + '{';
|
||||
$.each(rules, function(prop, values) {
|
||||
if(values[size]) {
|
||||
style_str += (prop + ':' + values[size] + ';');
|
||||
}
|
||||
});
|
||||
style_str += '}';
|
||||
});
|
||||
rule_elem.text(style_str);
|
||||
}
|
||||
|
||||
var pos = $('#tools_rect_show').offset();
|
||||
$('#tools_rect').css({'left': pos.left, 'top': pos.top});
|
||||
pos = $('#tools_ellipse_show').offset();
|
||||
$('#tools_ellipse').css({'left': pos.left, 'top': pos.top});
|
||||
}
|
||||
|
||||
var cancelOverlays = function() {
|
||||
if (!editingsource && !docprops) return;
|
||||
|
||||
if (editingsource) {
|
||||
var oldString = svgCanvas.getSvgString();
|
||||
if (oldString != $('#svg_source_textarea').val()) {
|
||||
// TODO: localize this prompt
|
||||
if( !confirm('Ignore changes made to SVG source?') ) {
|
||||
if( !confirm(uiStrings.QignoreSourceChanges) ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -1328,16 +1545,15 @@ function svg_edit_setup() {
|
|||
for (var i = 0; i < curNames.length; ++i) { curNames[i] = svgCanvas.getLayer(i); }
|
||||
|
||||
var j = (curNames.length+1);
|
||||
var uniqName = "Layer " + j;
|
||||
while (jQuery.inArray(uniqName, curNames) != -1) {
|
||||
var uniqName = uiStrings.layer + " " + j;
|
||||
while ($.inArray(uniqName, curNames) != -1) {
|
||||
j++;
|
||||
uniqName = "Layer " + j;
|
||||
uniqName = uiStrings.layer + " " + j;
|
||||
}
|
||||
// TODO: localize this
|
||||
var newName = prompt("Please enter a unique layer name",uniqName);
|
||||
var newName = prompt(uiStrings.enterUniqueLayerName,uniqName);
|
||||
if (!newName) return;
|
||||
if (jQuery.inArray(newName, curNames) != -1) {
|
||||
alert("There is already a layer named that!");
|
||||
if ($.inArray(newName, curNames) != -1) {
|
||||
alert(uiStrings.dupeLayerName);
|
||||
return;
|
||||
}
|
||||
svgCanvas.createLayer(newName);
|
||||
|
@ -1388,18 +1604,17 @@ function svg_edit_setup() {
|
|||
$('#layer_rename').click(function() {
|
||||
var curIndex = $('#layerlist tr.layersel').prevAll().length;
|
||||
var oldName = $('#layerlist tr.layersel td.layername').text();
|
||||
// TODO: localize this
|
||||
var newName = prompt("Please enter the new layer name","");
|
||||
var newName = prompt(uiStrings.enterNewLayerName,"");
|
||||
if (!newName) return;
|
||||
if (oldName == newName) {
|
||||
alert("Layer already has that name");
|
||||
alert(uiStrings.layerHasThatName);
|
||||
return;
|
||||
}
|
||||
|
||||
var curNames = new Array(svgCanvas.getNumLayers());
|
||||
for (var i = 0; i < curNames.length; ++i) { curNames[i] = svgCanvas.getLayer(i); }
|
||||
if (jQuery.inArray(newName, curNames) != -1) {
|
||||
alert("There is already a layer named that!");
|
||||
if ($.inArray(newName, curNames) != -1) {
|
||||
alert(uiStrings.layerHasThatName);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1498,6 +1713,7 @@ function svg_edit_setup() {
|
|||
selLayerNames.empty();
|
||||
var currentlayer = svgCanvas.getCurrentLayer();
|
||||
var layer = svgCanvas.getNumLayers();
|
||||
var icon = $.getSvgIcon('eye');
|
||||
// we get the layers in the reverse z-order (the layer rendered on top is listed first)
|
||||
while (layer--) {
|
||||
var name = svgCanvas.getLayer(layer);
|
||||
|
@ -1515,7 +1731,12 @@ function svg_edit_setup() {
|
|||
appendstr += "<td class=\"layervis layerinvis\"/><td class=\"layername\" >" + name + "</td></tr>";
|
||||
}
|
||||
layerlist.append(appendstr);
|
||||
selLayerNames.append("<option values=\"" + name + "\">" + name + "</option>");
|
||||
selLayerNames.append("<option value=\"" + name + "\">" + name + "</option>");
|
||||
}
|
||||
if(icon !== undefined) {
|
||||
var copy = icon.clone();
|
||||
$('td.layervis',layerlist).append(icon.clone());
|
||||
$.resizeSvgIcons({'td.layervis .svg_icon':14});
|
||||
}
|
||||
// handle selection of layer
|
||||
$('#layerlist td.layername')
|
||||
|
@ -1661,6 +1882,18 @@ function svg_edit_setup() {
|
|||
$('#group_opacity').SpinButton({ step: 5, min: 0, max: 100, callback: changeOpacity });
|
||||
$('#zoom').SpinButton({ min: 0.001, max: 10000, step: 50, stepfunc: stepZoom, callback: changeZoom });
|
||||
|
||||
svgCanvas.setIconSize = setIconSize;
|
||||
|
||||
svgCanvas.setLang = function(lang, strings) {
|
||||
curPrefs.lang = lang;
|
||||
$.pref('lang', lang);
|
||||
$('#lang_select').val(lang);
|
||||
if(strings) {
|
||||
// $.extend will only replace the given strings
|
||||
$.extend(uiStrings,strings);
|
||||
}
|
||||
};
|
||||
|
||||
svgCanvas.setCustomHandlers = function(opts) {
|
||||
if(opts.open) {
|
||||
$('#tool_open').show();
|
||||
|
@ -1681,10 +1914,147 @@ function svg_edit_setup() {
|
|||
return svgCanvas;
|
||||
};
|
||||
|
||||
// This process starts before document.ready so the icons appear ASAP
|
||||
setSVGIcons();
|
||||
|
||||
function setSVGIcons() {
|
||||
|
||||
$.svgIcons('images/svg_edit_icons.svg', {
|
||||
w:24, h:24,
|
||||
id_match: false,
|
||||
no_img: true,
|
||||
fallback_path:'images/',
|
||||
fallback:{
|
||||
'new_image':'clear.png',
|
||||
'save':'save.png',
|
||||
'open':'open.png',
|
||||
'source':'source.png',
|
||||
'docprops':'document-properties.png',
|
||||
'wireframe':'wireframe.png',
|
||||
|
||||
'undo':'undo.png',
|
||||
'redo':'redo.png',
|
||||
|
||||
'select':'select.png',
|
||||
'pencil':'fhpath.png',
|
||||
'pen':'line.png',
|
||||
'square':'square.png',
|
||||
'rect':'rect.png',
|
||||
'fh_rect':'freehand-square.png',
|
||||
'circle':'circle.png',
|
||||
'ellipse':'ellipse.png',
|
||||
'fh_ellipse':'freehand-circle.png',
|
||||
'path':'path.png',
|
||||
'text':'text.png',
|
||||
'image':'image.png',
|
||||
'zoom':'zoom.png',
|
||||
|
||||
'clone':'clone.png',
|
||||
'delete':'delete.png',
|
||||
'group':'shape_group.png',
|
||||
'ungroup':'shape_ungroup.png',
|
||||
'move_top':'move_top.png',
|
||||
'move_bottom':'move_bottom.png',
|
||||
|
||||
'align_left':'align-left.png',
|
||||
'align_center':'align-center',
|
||||
'align_right':'align-right',
|
||||
'align_top':'align-top',
|
||||
'align_middle':'align-middle',
|
||||
'align_bottom':'align-bottom',
|
||||
|
||||
'go_up':'go-up.png',
|
||||
'go_down':'go-down.png',
|
||||
|
||||
'ok':'save.png',
|
||||
'cancel':'cancel.png',
|
||||
|
||||
'arrow_right':'flyouth.png',
|
||||
'arrow_down':'dropdown.gif'
|
||||
},
|
||||
placement: {
|
||||
'#logo a':'logo',
|
||||
|
||||
'#tool_clear,#layer_new':'new_image',
|
||||
'#tool_save':'save',
|
||||
'#tool_open':'open',
|
||||
'#tool_source':'source',
|
||||
'#tool_docprops':'docprops',
|
||||
'#tool_wireframe':'wireframe',
|
||||
|
||||
'#tool_undo':'undo',
|
||||
'#tool_redo':'redo',
|
||||
|
||||
'#tool_select':'select',
|
||||
'#tool_fhpath':'pencil',
|
||||
'#tool_line':'pen',
|
||||
'#tool_rect,#tools_rect_show':'rect',
|
||||
'#tool_square':'square',
|
||||
'#tool_fhrect':'fh_rect',
|
||||
'#tool_ellipse,#tools_ellipse_show':'ellipse',
|
||||
'#tool_circle':'circle',
|
||||
'#tool_fhellipse':'fh_ellipse',
|
||||
'#tool_path':'path',
|
||||
'#tool_text,#layer_rename':'text',
|
||||
'#tool_image':'image',
|
||||
'#tool_zoom':'zoom',
|
||||
|
||||
'#tool_clone,#tool_clone_multi,#tool_node_clone':'clone',
|
||||
'#layer_delete,#tool_delete,#tool_delete_multi,#tool_node_delete':'delete',
|
||||
'#tool_move_top':'move_top',
|
||||
'#tool_move_bottom':'move_bottom',
|
||||
'#tool_group':'group',
|
||||
'#tool_ungroup':'ungroup',
|
||||
|
||||
'#tool_alignleft':'align_left',
|
||||
'#tool_aligncenter':'align_center',
|
||||
'#tool_alignright':'align_right',
|
||||
'#tool_aligntop':'align_top',
|
||||
'#tool_alignmiddle':'align_middle',
|
||||
'#tool_alignbottom':'align_bottom',
|
||||
|
||||
'#layer_up':'go_up',
|
||||
'#layer_down':'go_down',
|
||||
'#layerlist td.layervis':'eye',
|
||||
|
||||
'#tool_source_save,#tool_docprops_save':'ok',
|
||||
'#tool_source_cancel,#tool_docprops_cancel':'cancel',
|
||||
|
||||
'.flyout_arrow_horiz':'arrow_right',
|
||||
'.dropdown button':'arrow_down',
|
||||
'#palette .palette_item:first, #fill_bg, #stroke_bg':'no_color'
|
||||
},
|
||||
resize: {
|
||||
'#logo a .svg_icon': 32,
|
||||
'.flyout_arrow_horiz .svg_icon': 5,
|
||||
'.layer_button .svg_icon, #layerlist td.layervis .svg_icon': 14,
|
||||
'.dropdown button .svg_icon': 7,
|
||||
'.palette_item:first .svg_icon, #fill_bg .svg_icon, #stroke_bg .svg_icon': 16,
|
||||
'.toolbar_button button .svg_icon':16
|
||||
},
|
||||
callback: function(icons) {
|
||||
$('.toolbar_button button > svg').each(function() {
|
||||
$(this).parent().prepend(this);
|
||||
});
|
||||
|
||||
// Use small icons by default if not all left tools are visible
|
||||
var tleft = $('#tools_left');
|
||||
var min_height = tleft.offset().top + tleft.outerHeight();
|
||||
var size = $.pref('iconsize');
|
||||
if(size && size != 'm') {
|
||||
svgCanvas.setIconSize(size);
|
||||
} else if($(window).height() < min_height) {
|
||||
// Make smaller
|
||||
svgCanvas.setIconSize('s');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// This happens when the page is loaded
|
||||
$(function() {
|
||||
put_locale();
|
||||
svgCanvas = svg_edit_setup();
|
||||
put_locale(svgCanvas);
|
||||
|
||||
try{
|
||||
window.addEventListener("message", function(e){
|
||||
|
|
1239
editor/svgcanvas.js
1239
editor/svgcanvas.js
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,422 @@
|
|||
/*
|
||||
* SVG Icon Loader
|
||||
*
|
||||
* jQuery Plugin for loading SVG icons from a single file
|
||||
*
|
||||
* Copyright (c) 2009 Alexis Deveria
|
||||
* http://a.deveria.com
|
||||
*
|
||||
* Apache 2 License
|
||||
|
||||
How to use:
|
||||
|
||||
1. Create the SVG master file that includes all icons:
|
||||
|
||||
The master SVG icon-containing file is an SVG file that contains
|
||||
<foreignContent> elements. Each <foreignContent> element should contain the markup of an SVG
|
||||
icon. The <foreignContent> element has an ID that should
|
||||
correspond with the ID of the HTML element used on the page that should contain
|
||||
or optionally be replaced by the icon. Additionally, one empty element should be
|
||||
added at the end with id "svg_eof".
|
||||
|
||||
2. Optionally create fallback raster images for each SVG icon.
|
||||
|
||||
3. Include the jQuery and the SVG Icon Loader scripts on your page.
|
||||
|
||||
4. Run $.svgIcons() when the document is ready:
|
||||
|
||||
$.svgIcons( file [string], options [object literal]);
|
||||
|
||||
File is the location of a local SVG or SVGz file.
|
||||
|
||||
All options are optional and can include:
|
||||
|
||||
- 'w (number)': The icon widths
|
||||
|
||||
- 'h (number)': The icon heights
|
||||
|
||||
- 'fallback (object literal)': List of raster images with each
|
||||
key being the SVG icon ID to replace, and the value the image file name.
|
||||
|
||||
- 'fallback_path (string)': The path to use for all images
|
||||
listed under "fallback"
|
||||
|
||||
- 'replace (boolean)': If set to true, HTML elements will be replaced by,
|
||||
rather than include the SVG icon.
|
||||
|
||||
- 'placement (object literal)': List with selectors for keys and SVG icon ids
|
||||
as values. This provides a custom method of adding icons.
|
||||
|
||||
- 'resize (object literal)': List with selectors for keys and numbers
|
||||
as values. This allows an easy way to resize specific icons.
|
||||
|
||||
- 'callback (function)': A function to call when all icons have been loaded.
|
||||
Includes an object literal as its argument with as keys all icon IDs and the
|
||||
icon as a jQuery object as its value.
|
||||
|
||||
- 'id_match (boolean)': Automatically attempt to match SVG icon ids with
|
||||
corresponding HTML id (default: true)
|
||||
|
||||
- 'no_img (boolean)': Prevent attempting to convert the icon into an <img> element (may be faster, help for browser consistency)
|
||||
|
||||
5. To access an icon at a later point without using the callback, use this:
|
||||
$.getSvgIcon(id (string));
|
||||
|
||||
This will return the icon (as jQuery object) with a given ID.
|
||||
|
||||
6. To resize icons at a later point without using the callback, use this:
|
||||
$.resizeSvgIcons(resizeOptions) (use the same way as the "resize" parameter)
|
||||
|
||||
|
||||
Example usage #1:
|
||||
|
||||
$(function() {
|
||||
$.svgIcons('my_icon_set.svg'); // The SVG file that contains all icons
|
||||
// No options have been set, so all icons will automatically be inserted
|
||||
// into HTML elements that match the same IDs.
|
||||
});
|
||||
|
||||
Example usage #2:
|
||||
|
||||
$(function() {
|
||||
$.svgIcons('my_icon_set.svg', { // The SVG file that contains all icons
|
||||
callback: function(icons) { // Custom callback function that sets click
|
||||
// events for each icon
|
||||
$.each(icons, function(id, icon) {
|
||||
icon.click(function() {
|
||||
alert('You clicked on the icon with id ' + id);
|
||||
});
|
||||
});
|
||||
}
|
||||
}); //The SVG file that contains all icons
|
||||
});
|
||||
|
||||
Example usage #3:
|
||||
|
||||
$(function() {
|
||||
$.svgIcons('my_icon_set.svgz', { // The SVGZ file that contains all icons
|
||||
w: 32, // All icons will be 32px wide
|
||||
h: 32, // All icons will be 32px high
|
||||
fallback_path: 'icons/', // All fallback files can be found here
|
||||
fallback: {
|
||||
'#open_icon': 'open.png', // The "open.png" will be appended to the
|
||||
// HTML element with ID "open_icon"
|
||||
'#close_icon': 'close.png',
|
||||
'#save_icon': 'save.png'
|
||||
},
|
||||
placement: {'.open_icon','open'}, // The "open" icon will be added
|
||||
// to all elements with class "open_icon"
|
||||
resize: function() {
|
||||
'#save_icon .svg_icon': 64 // The "save" icon will be resized to 64 x 64px
|
||||
},
|
||||
|
||||
callback: function(icons) { // Sets background color for "close" icon
|
||||
icons['close'].css('background','red');
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
*/
|
||||
|
||||
|
||||
(function($) {
|
||||
var svg_icons = {};
|
||||
|
||||
$.svgIcons = function(file, opts) {
|
||||
var svgns = "http://www.w3.org/2000/svg",
|
||||
xlinkns = "http://www.w3.org/1999/xlink",
|
||||
icon_w = opts.w?opts.w : 24,
|
||||
icon_h = opts.h?opts.h : 24,
|
||||
elems, svgdoc, testImg,
|
||||
icons_made = false, data_loaded = false, load_attempts = 0,
|
||||
ua = navigator.userAgent, isOpera = !!window.opera, isSafari = (ua.indexOf('Safari/') > -1 && ua.indexOf('Chrome/')==-1),
|
||||
data_pre = 'data:image/svg+xml;charset=utf-8;base64,';
|
||||
|
||||
if(opts.svgz) {
|
||||
var data_el = $('<object data="' + file + '" type=image/svg+xml>').appendTo('body').hide();
|
||||
try {
|
||||
svgdoc = data_el[0].contentDocument;
|
||||
// TODO: IE still loads this, shouldn't even bother.
|
||||
data_el.load(getIcons);
|
||||
getIcons(0, true); // Opera will not run "load" event if file is already cached
|
||||
} catch(err1) {
|
||||
useFallback();
|
||||
}
|
||||
} else {
|
||||
$.ajax({
|
||||
url: file,
|
||||
dataType: 'xml',
|
||||
success: function(data) {
|
||||
svgdoc = data;
|
||||
$(function() {
|
||||
getIcons('ajax');
|
||||
});
|
||||
},
|
||||
error: function() {
|
||||
$(function() {
|
||||
useFallback();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getIcons(evt, no_wait) {
|
||||
if(evt !== 'ajax') {
|
||||
if(data_loaded) return;
|
||||
// Webkit sometimes says svgdoc is undefined, other times
|
||||
// it fails to load all nodes. Thus we must make sure the "eof"
|
||||
// element is loaded.
|
||||
svgdoc = data_el[0].contentDocument; // Needed again for Webkit
|
||||
var isReady = (svgdoc && svgdoc.getElementById('svg_eof'));
|
||||
if(!isReady && !(no_wait && isReady)) {
|
||||
load_attempts++;
|
||||
if(load_attempts < 50) {
|
||||
setTimeout(getIcons, 20);
|
||||
} else {
|
||||
useFallback();
|
||||
data_loaded = true;
|
||||
}
|
||||
return;
|
||||
}
|
||||
data_loaded = true;
|
||||
}
|
||||
// Clean source SVGs (mostly for Inkscape files)
|
||||
// TODO: Find a way to do this without crashing Safari (when converting to IMG)
|
||||
$(svgdoc).find('metadata').remove().end()
|
||||
.find('*').each(function(i, el) {
|
||||
if(el.nodeName.indexOf(':') != -1) {
|
||||
$(el).remove();
|
||||
}
|
||||
var attrs = $.extend(false, el.attributes, {});
|
||||
for(i in attrs) {
|
||||
var attr = attrs[i];
|
||||
var fullattr = attr.prefix?attr.prefix + ':' + attr.localName:'';
|
||||
if(attr.prefix) {
|
||||
el.removeAttribute(attr.localName); // for Opera
|
||||
el.removeAttribute(fullattr); // for Webkit
|
||||
}
|
||||
if(fullattr == 'xlink:href') {
|
||||
el.setAttribute('xlink:href', attr.nodeValue);
|
||||
}
|
||||
}
|
||||
});
|
||||
elems = $(svgdoc.firstChild).children(); //.getElementsByTagName('foreignContent');
|
||||
var testSrc = data_pre + 'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNzUiIGhlaWdodD0iMjc1Ij48L3N2Zz4%3D';
|
||||
|
||||
testImg = $(new Image()).attr({
|
||||
src: testSrc,
|
||||
width: 0,
|
||||
height: 0
|
||||
}).appendTo('body')
|
||||
.load(function () {
|
||||
// Safari 4 crashes, Opera and Chrome don't
|
||||
makeIcons(!isSafari);
|
||||
}).error(function () {
|
||||
makeIcons();
|
||||
});
|
||||
}
|
||||
|
||||
function makeIcons(toImage, fallback) {
|
||||
if(icons_made) return;
|
||||
if(opts.no_img) toImage = false;
|
||||
var holder;
|
||||
|
||||
var setIcon = function(target, icon, id, setID) {
|
||||
if(isOpera) icon.css('visibility','hidden');
|
||||
if(opts.replace) {
|
||||
if(setID) icon.attr('id',id);
|
||||
var cl = target.attr('class');
|
||||
if(cl) icon.attr('class','svg_icon '+cl);
|
||||
target.replaceWith(icon);
|
||||
} else {
|
||||
|
||||
target.append(icon);
|
||||
}
|
||||
if(isOpera) {
|
||||
setTimeout(function() {
|
||||
icon.attr('style','visibility:visible;');
|
||||
},1);
|
||||
}
|
||||
}
|
||||
|
||||
var addIcon = function(icon, id) {
|
||||
if(opts.id_match === undefined || opts.id_match !== false) {
|
||||
setIcon(holder, icon, id, true);
|
||||
}
|
||||
svg_icons[id] = icon;
|
||||
}
|
||||
|
||||
if(toImage) {
|
||||
var temp_holder = $(document.createElement('div'));
|
||||
temp_holder.hide().appendTo('body');
|
||||
}
|
||||
if(fallback) {
|
||||
var path = opts.fallback_path?opts.fallback_path:'';
|
||||
$.each(fallback, function(id, imgsrc) {
|
||||
holder = $('#' + id);
|
||||
var icon = $(new Image())
|
||||
.attr({
|
||||
'class':'svg_icon',
|
||||
src: path + imgsrc,
|
||||
'width': icon_w,
|
||||
'height': icon_h,
|
||||
'alt': 'icon'
|
||||
});
|
||||
|
||||
addIcon(icon, id);
|
||||
});
|
||||
} else {
|
||||
$.each(elems, function(i, elem) {
|
||||
var id = elem.getAttribute('id');
|
||||
if(id == 'svg_eof') return;
|
||||
holder = $('#' + id);
|
||||
|
||||
var svg = elem.getElementsByTagNameNS(svgns, 'svg')[0];
|
||||
var svgroot = svgdoc.createElementNS(svgns, "svg");
|
||||
svgroot.setAttributeNS(svgns, 'viewBox', [0,0,icon_w,icon_h].join(' '));
|
||||
|
||||
$(svgroot).attr({
|
||||
"xmlns": svgns,
|
||||
"width": icon_w,
|
||||
"height": icon_h,
|
||||
"xmlns:xlink": xlinkns,
|
||||
"class": 'svg_icon'
|
||||
});
|
||||
|
||||
// Without cloning, Firefox will make another GET request.
|
||||
// With cloning, causes issue in Opera/Win/Non-EN
|
||||
if(!isOpera) svg = svg.cloneNode(true);
|
||||
|
||||
svgroot.appendChild(svg);
|
||||
|
||||
if(toImage) {
|
||||
// Without cloning, Safari will crash
|
||||
// With cloning, causes issue in Opera/Win/Non-EN
|
||||
var svgcontent = isOpera?svgroot:svgroot.cloneNode(true);
|
||||
temp_holder.empty().append(svgroot);
|
||||
var str = data_pre + encode64(temp_holder.html());
|
||||
var icon = $(new Image())
|
||||
.attr({'class':'svg_icon', src:str});
|
||||
} else {
|
||||
var icon = fixIDs($(svgroot), i);
|
||||
}
|
||||
addIcon(icon, id);
|
||||
});
|
||||
}
|
||||
|
||||
if(opts.placement) {
|
||||
$.each(opts.placement, function(sel, id) {
|
||||
if(!svg_icons[id]) return;
|
||||
$(sel).each(function(i) {
|
||||
var copy = svg_icons[id].clone();
|
||||
if(i > 0 && !toImage) copy = fixIDs(copy, i, true);
|
||||
setIcon($(this), copy, id);
|
||||
})
|
||||
});
|
||||
}
|
||||
if(!fallback) {
|
||||
if(toImage) temp_holder.remove();
|
||||
if(data_el) data_el.remove();
|
||||
testImg.remove();
|
||||
}
|
||||
|
||||
if(opts.resize) $.resizeSvgIcons(opts.resize);
|
||||
|
||||
icons_made = true;
|
||||
|
||||
if(opts.callback) opts.callback(svg_icons);
|
||||
|
||||
}
|
||||
|
||||
function fixIDs(svg_el, svg_num, force) {
|
||||
var defs = svg_el.find('defs');
|
||||
if(!defs.length) return svg_el;
|
||||
|
||||
defs.find('[id]').each(function(i) {
|
||||
var id = this.id;
|
||||
var no_dupes = ($(svgdoc).find('#' + id).length <= 1);
|
||||
if(isOpera) no_dupes = false; // Opera didn't clone svg_el, so not reliable
|
||||
if(!force && no_dupes) return;
|
||||
var new_id = id + svg_num + i;
|
||||
$(this).attr('id', new_id);
|
||||
|
||||
svg_el.find('[fill="url(#' + id + ')"]').each(function() {
|
||||
$(this).attr('fill', 'url(#' + new_id + ')');
|
||||
}).end().find('[stroke="url(#' + id + ')"]').each(function() {
|
||||
$(this).attr('stroke', 'url(#' + new_id + ')');
|
||||
}).end().find('use').each(function() {
|
||||
if(this.getAttribute('xlink:href') == '#' + id) {
|
||||
this.setAttributeNS(xlinkns,'href','#' + new_id);
|
||||
}
|
||||
});
|
||||
});
|
||||
return svg_el;
|
||||
}
|
||||
|
||||
function useFallback() {
|
||||
if(file.indexOf('.svgz') != -1) {
|
||||
var reg_file = file.replace('.svgz','.svg');
|
||||
if(window.console) {
|
||||
console.log('.svgz failed, trying with .svg');
|
||||
}
|
||||
$.svgIcons(reg_file, opts);
|
||||
} else if(opts.fallback) {
|
||||
makeIcons(false, opts.fallback);
|
||||
}
|
||||
}
|
||||
|
||||
function encode64(input) {
|
||||
// base64 strings are 4/3 larger than the original string
|
||||
if(window.btoa) return window.btoa(input);
|
||||
var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
||||
var output = new Array( Math.floor( (input.length + 2) / 3 ) * 4 );
|
||||
var chr1, chr2, chr3;
|
||||
var enc1, enc2, enc3, enc4;
|
||||
var i = 0, p = 0;
|
||||
|
||||
do {
|
||||
chr1 = input.charCodeAt(i++);
|
||||
chr2 = input.charCodeAt(i++);
|
||||
chr3 = input.charCodeAt(i++);
|
||||
|
||||
enc1 = chr1 >> 2;
|
||||
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
|
||||
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
|
||||
enc4 = chr3 & 63;
|
||||
|
||||
if (isNaN(chr2)) {
|
||||
enc3 = enc4 = 64;
|
||||
} else if (isNaN(chr3)) {
|
||||
enc4 = 64;
|
||||
}
|
||||
|
||||
output[p++] = _keyStr.charAt(enc1);
|
||||
output[p++] = _keyStr.charAt(enc2);
|
||||
output[p++] = _keyStr.charAt(enc3);
|
||||
output[p++] = _keyStr.charAt(enc4);
|
||||
} while (i < input.length);
|
||||
|
||||
return output.join('');
|
||||
}
|
||||
}
|
||||
|
||||
$.getSvgIcon = function(id) { return svg_icons[id]; }
|
||||
|
||||
$.resizeSvgIcons = function(obj) {
|
||||
// FF2 and older don't detect .svg_icon, so we change it detect svg elems instead
|
||||
var change_sel = !$('.svg_icon:first').length;
|
||||
$.each(obj, function(sel, size) {
|
||||
var arr = $.isArray(size);
|
||||
var w = arr?size[0]:size,
|
||||
h = arr?size[1]:size;
|
||||
if(change_sel) {
|
||||
sel = sel.replace(/\.svg_icon/g,'svg');
|
||||
}
|
||||
$(sel).each(function() {
|
||||
this.setAttribute('width', w);
|
||||
this.setAttribute('height', h);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
})(jQuery);
|
Loading…
Reference in New Issue