svg-editor.html 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802
  1. <!DOCTYPE html>
  2. <html>
  3. <!-- removed for now, causes problems in Firefox: manifest="svg-editor.manifest" -->
  4. <head>
  5. <meta charset="utf-8" />
  6. <meta http-equiv="X-UA-Compatible" content="IE=Edge, chrome=1"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
  8. <meta name="apple-mobile-web-app-capable" content="yes"/>
  9. <link rel="icon" type="image/png" href="images/logo.png"/>
  10. <link rel="stylesheet" href="jgraduate/css/jPicker.css" type="text/css"/>
  11. <link rel="stylesheet" href="jgraduate/css/jgraduate.css" type="text/css"/>
  12. <link rel="stylesheet" href="svg-editor.css" type="text/css"/>
  13. <link rel="stylesheet" href="spinbtn/JQuerySpinBtn.css" type="text/css"/>
  14. <link rel="stylesheet" href="custom.css" type="text/css"/>
  15. <!--{if jquery_release}>
  16. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  17. <!{else}-->
  18. <script src="jquery.js"></script>
  19. <!--{endif}-->
  20. <script src="js-hotkeys/jquery.hotkeys.min.js"></script>
  21. <script src="jquerybbq/jquery.bbq.min.js"></script>
  22. <script src="svgicons/jquery.svgicons.js"></script>
  23. <script src="jgraduate/jquery.jgraduate.min.js"></script>
  24. <script src="spinbtn/JQuerySpinBtn.min.js"></script>
  25. <script src="touch.js"></script>
  26. <!--{if svg_edit_release}-->
  27. <script src="svgedit.compiled.js"></script>
  28. <!--{else}>
  29. <script src="svgedit.js"></script>
  30. <script src="jquery-svg.js"></script>
  31. <script src="contextmenu/jquery.contextMenu.js"></script>
  32. <script src="pathseg.js"></script>
  33. <script src="browser.js"></script>
  34. <script src="svgtransformlist.js"></script>
  35. <script src="math.js"></script>
  36. <script src="units.js"></script>
  37. <script src="svgutils.js"></script>
  38. <script src="sanitize.js"></script>
  39. <script src="history.js"></script>
  40. <script src="coords.js"></script>
  41. <script src="recalculate.js"></script>
  42. <script src="select.js"></script>
  43. <script src="draw.js"></script>
  44. <script src="path.js"></script>
  45. <script src="svgcanvas.js"></script>
  46. <script src="svg-editor.js"></script>
  47. <script src="locale/locale.js"></script>
  48. <script src="contextmenu.js"></script>
  49. <!{endif}-->
  50. <!-- always minified scripts -->
  51. <script src="jquery-ui/jquery-ui-1.8.17.custom.min.js"></script>
  52. <script src="jgraduate/jpicker.js"></script>
  53. <!-- If you do not wish to add extensions by URL, you can load them
  54. by creating the following file and adding by calls to svgEditor.setConfig -->
  55. <script src="config.js"></script>
  56. <!-- feeds -->
  57. <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" />
  58. <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" />
  59. <!-- Add script with custom handlers here -->
  60. <title>SVG-edit</title>
  61. </head>
  62. <body>
  63. <div id="svg_editor">
  64. <div id="rulers">
  65. <div id="ruler_corner"></div>
  66. <div id="ruler_x">
  67. <div>
  68. <canvas height="15"></canvas>
  69. </div>
  70. </div>
  71. <div id="ruler_y">
  72. <div>
  73. <canvas width="15"></canvas>
  74. </div>
  75. </div>
  76. </div>
  77. <div id="workarea">
  78. <style id="styleoverrides" type="text/css" media="screen" scoped="scoped"></style>
  79. <div id="svgcanvas" style="position:relative">
  80. </div>
  81. </div>
  82. <div id="sidepanels">
  83. <div id="layerpanel">
  84. <h3 id="layersLabel">Layers</h3>
  85. <fieldset id="layerbuttons">
  86. <div id="layer_new" class="layer_button" title="New Layer"></div>
  87. <div id="layer_delete" class="layer_button" title="Delete Layer"></div>
  88. <div id="layer_rename" class="layer_button" title="Rename Layer"></div>
  89. <div id="layer_up" class="layer_button" title="Move Layer Up"></div>
  90. <div id="layer_down" class="layer_button" title="Move Layer Down"></div>
  91. <div id="layer_moreopts" class="layer_button" title="More Options"></div>
  92. </fieldset>
  93. <table id="layerlist">
  94. <tr class="layer">
  95. <td class="layervis"></td>
  96. <td class="layername">Layer 1</td>
  97. </tr>
  98. </table>
  99. <span id="selLayerLabel">Move elements to:</span>
  100. <select id="selLayerNames" title="Move selected elements to a different layer" disabled="disabled">
  101. <option selected="selected" value="layer1">Layer 1</option>
  102. </select>
  103. </div>
  104. <div id="sidepanel_handle" title="Drag left/right to resize side panel [X]">L a y e r s</div>
  105. </div>
  106. <div id="main_button">
  107. <div id="main_icon" class="tool_button" title="Main Menu">
  108. <span>SVG-Edit</span>
  109. <div id="logo"></div>
  110. <div class="dropdown"></div>
  111. </div>
  112. <div id="main_menu">
  113. <!-- File-like buttons: New, Save, Source -->
  114. <ul>
  115. <li id="tool_clear">
  116. <div></div>
  117. New Image (N)
  118. </li>
  119. <li id="tool_open" style="display:none;">
  120. <div id="fileinputs">
  121. <div></div>
  122. </div>
  123. Open SVG
  124. </li>
  125. <li id="tool_import" style="display:none;">
  126. <div id="fileinputs_import">
  127. <div></div>
  128. </div>
  129. Import Image
  130. </li>
  131. <li id="tool_save">
  132. <div></div>
  133. Save Image (S)
  134. </li>
  135. <li id="tool_export">
  136. <div></div>
  137. Export
  138. </li>
  139. <li id="tool_docprops">
  140. <div></div>
  141. Document Properties (D)
  142. </li>
  143. </ul>
  144. <p>
  145. <a href="http://svg-edit.googlecode.com/" target="_blank">
  146. SVG-edit Home Page
  147. </a>
  148. </p>
  149. <button id="tool_prefs_option">
  150. Editor Options
  151. </button>
  152. </div>
  153. </div>
  154. <div id="tools_top" class="tools_panel">
  155. <div id="editor_panel">
  156. <div class="tool_sep"></div>
  157. <div class="push_button" id="tool_source" title="Edit Source [U]"></div>
  158. <div class="tool_button" id="tool_wireframe" title="Wireframe Mode [F]"></div>
  159. </div>
  160. <!-- History buttons -->
  161. <div id="history_panel">
  162. <div class="tool_sep"></div>
  163. <div class="push_button tool_button_disabled" id="tool_undo" title="Undo [Z]"></div>
  164. <div class="push_button tool_button_disabled" id="tool_redo" title="Redo [Y]"></div>
  165. </div>
  166. <!-- Buttons when a single element is selected -->
  167. <div id="selected_panel">
  168. <div class="toolset">
  169. <div class="tool_sep"></div>
  170. <div class="push_button" id="tool_clone" title="Duplicate Element [D]"></div>
  171. <div class="push_button" id="tool_delete" title="Delete Element [Delete/Backspace]"></div>
  172. <div class="tool_sep"></div>
  173. <div class="push_button" id="tool_move_top" title="Bring to Front [ Ctrl+Shift+] ]"></div>
  174. <div class="push_button" id="tool_move_bottom" title="Send to Back [ Ctrl+Shift+[ ]"></div>
  175. <div class="push_button" id="tool_topath" title="Convert to Path"></div>
  176. <div class="push_button" id="tool_reorient" title="Reorient path"></div>
  177. <div class="push_button" id="tool_make_link" title="Make (hyper)link"></div>
  178. <div class="tool_sep"></div>
  179. <label id="idLabel" title="Identify the element">
  180. <span>id:</span>
  181. <input id="elem_id" class="attr_changer" data-attr="id" size="10" type="text"/>
  182. </label>
  183. <label id="classLabel" title="Element class">
  184. <span>class:</span>
  185. <input id="elem_class" class="attr_changer" data-attr="class" size="10" type="text"/>
  186. </label>
  187. </div>
  188. <label id="tool_angle" title="Change rotation angle" class="toolset">
  189. <span id="angleLabel" class="icon_label"></span>
  190. <input id="angle" size="2" value="0" type="text"/>
  191. </label>
  192. <div class="toolset" id="tool_blur" title="Change gaussian blur value">
  193. <label>
  194. <span id="blurLabel" class="icon_label"></span>
  195. <input id="blur" size="2" value="0" type="text"/>
  196. </label>
  197. <div id="blur_dropdown" class="dropdown">
  198. <button></button>
  199. <ul>
  200. <li class="special"><div id="blur_slider"></div></li>
  201. </ul>
  202. </div>
  203. </div>
  204. <div class="dropdown toolset" id="tool_position" title="Align Element to Page">
  205. <div id="cur_position" class="icon_label"></div>
  206. <button></button>
  207. </div>
  208. <div id="xy_panel" class="toolset">
  209. <label>
  210. x: <input id="selected_x" class="attr_changer" title="Change X coordinate" size="3" data-attr="x"/>
  211. </label>
  212. <label>
  213. y: <input id="selected_y" class="attr_changer" title="Change Y coordinate" size="3" data-attr="y"/>
  214. </label>
  215. </div>
  216. </div>
  217. <!-- Buttons when multiple elements are selected -->
  218. <div id="multiselected_panel">
  219. <div class="tool_sep"></div>
  220. <div class="push_button" id="tool_clone_multi" title="Clone Elements [C]"></div>
  221. <div class="push_button" id="tool_delete_multi" title="Delete Selected Elements [Delete/Backspace]"></div>
  222. <div class="tool_sep"></div>
  223. <div class="push_button" id="tool_group_elements" title="Group Elements [G]"></div>
  224. <div class="push_button" id="tool_make_link_multi" title="Make (hyper)link"></div>
  225. <div class="push_button" id="tool_alignleft" title="Align Left"></div>
  226. <div class="push_button" id="tool_aligncenter" title="Align Center"></div>
  227. <div class="push_button" id="tool_alignright" title="Align Right"></div>
  228. <div class="push_button" id="tool_aligntop" title="Align Top"></div>
  229. <div class="push_button" id="tool_alignmiddle" title="Align Middle"></div>
  230. <div class="push_button" id="tool_alignbottom" title="Align Bottom"></div>
  231. <label id="tool_align_relative">
  232. <span id="relativeToLabel">relative to:</span>
  233. <select id="align_relative_to" title="Align relative to ...">
  234. <option id="selected_objects" value="selected">selected objects</option>
  235. <option id="largest_object" value="largest">largest object</option>
  236. <option id="smallest_object" value="smallest">smallest object</option>
  237. <option id="page" value="page">page</option>
  238. </select>
  239. </label>
  240. <div class="tool_sep"></div>
  241. </div>
  242. <div id="rect_panel">
  243. <div class="toolset">
  244. <label id="rect_width_tool" title="Change rectangle width">
  245. <span id="rwidthLabel" class="icon_label"></span>
  246. <input id="rect_width" class="attr_changer" size="3" data-attr="width"/>
  247. </label>
  248. <label id="rect_height_tool" title="Change rectangle height">
  249. <span id="rheightLabel" class="icon_label"></span>
  250. <input id="rect_height" class="attr_changer" size="3" data-attr="height"/>
  251. </label>
  252. </div>
  253. <label id="cornerRadiusLabel" title="Change Rectangle Corner Radius" class="toolset">
  254. <span class="icon_label"></span>
  255. <input id="rect_rx" size="3" value="0" type="text" data-attr="Corner Radius"/>
  256. </label>
  257. </div>
  258. <div id="image_panel">
  259. <div class="toolset">
  260. <label><span id="iwidthLabel" class="icon_label"></span>
  261. <input id="image_width" class="attr_changer" title="Change image width" size="3" data-attr="width"/>
  262. </label>
  263. <label><span id="iheightLabel" class="icon_label"></span>
  264. <input id="image_height" class="attr_changer" title="Change image height" size="3" data-attr="height"/>
  265. </label>
  266. </div>
  267. <div class="toolset">
  268. <label id="tool_image_url">url:
  269. <input id="image_url" type="text" title="Change URL" size="35"/>
  270. </label>
  271. <label id="tool_change_image">
  272. <button id="change_image_url" style="display:none;">Change Image</button>
  273. <span id="url_notice" title="NOTE: This image cannot be embedded. It will depend on this path to be displayed"></span>
  274. </label>
  275. </div>
  276. </div>
  277. <div id="circle_panel">
  278. <div class="toolset">
  279. <label id="tool_circle_cx">cx:
  280. <input id="circle_cx" class="attr_changer" title="Change circle's cx coordinate" size="3" data-attr="cx"/>
  281. </label>
  282. <label id="tool_circle_cy">cy:
  283. <input id="circle_cy" class="attr_changer" title="Change circle's cy coordinate" size="3" data-attr="cy"/>
  284. </label>
  285. </div>
  286. <div class="toolset">
  287. <label id="tool_circle_r">r:
  288. <input id="circle_r" class="attr_changer" title="Change circle's radius" size="3" data-attr="r"/>
  289. </label>
  290. </div>
  291. </div>
  292. <div id="ellipse_panel">
  293. <div class="toolset">
  294. <label id="tool_ellipse_cx">cx:
  295. <input id="ellipse_cx" class="attr_changer" title="Change ellipse's cx coordinate" size="3" data-attr="cx"/>
  296. </label>
  297. <label id="tool_ellipse_cy">cy:
  298. <input id="ellipse_cy" class="attr_changer" title="Change ellipse's cy coordinate" size="3" data-attr="cy"/>
  299. </label>
  300. </div>
  301. <div class="toolset">
  302. <label id="tool_ellipse_rx">rx:
  303. <input id="ellipse_rx" class="attr_changer" title="Change ellipse's x radius" size="3" data-attr="rx"/>
  304. </label>
  305. <label id="tool_ellipse_ry">ry:
  306. <input id="ellipse_ry" class="attr_changer" title="Change ellipse's y radius" size="3" data-attr="ry"/>
  307. </label>
  308. </div>
  309. </div>
  310. <div id="line_panel">
  311. <div class="toolset">
  312. <label id="tool_line_x1">x1:
  313. <input id="line_x1" class="attr_changer" title="Change line's starting x coordinate" size="3" data-attr="x1"/>
  314. </label>
  315. <label id="tool_line_y1">y1:
  316. <input id="line_y1" class="attr_changer" title="Change line's starting y coordinate" size="3" data-attr="y1"/>
  317. </label>
  318. </div>
  319. <div class="toolset">
  320. <label id="tool_line_x2">x2:
  321. <input id="line_x2" class="attr_changer" title="Change line's ending x coordinate" size="3" data-attr="x2"/>
  322. </label>
  323. <label id="tool_line_y2">y2:
  324. <input id="line_y2" class="attr_changer" title="Change line's ending y coordinate" size="3" data-attr="y2"/>
  325. </label>
  326. </div>
  327. </div>
  328. <div id="text_panel">
  329. <div class="toolset">
  330. <div class="tool_button" id="tool_bold" title="Bold Text [B]"><span></span>B</div>
  331. <div class="tool_button" id="tool_italic" title="Italic Text [I]"><span></span>i</div>
  332. </div>
  333. <div class="toolset" id="tool_font_family">
  334. <label>
  335. <!-- Font family -->
  336. <input id="font_family" type="text" title="Change Font Family" size="12"/>
  337. </label>
  338. <div id="font_family_dropdown" class="dropdown">
  339. <button></button>
  340. <ul>
  341. <li style="font-family:serif">Serif</li>
  342. <li style="font-family:sans-serif">Sans-serif</li>
  343. <li style="font-family:cursive">Cursive</li>
  344. <li style="font-family:fantasy">Fantasy</li>
  345. <li style="font-family:monospace">Monospace</li>
  346. </ul>
  347. </div>
  348. </div>
  349. <label id="tool_font_size" title="Change Font Size">
  350. <span id="font_sizeLabel" class="icon_label"></span>
  351. <input id="font_size" size="3" value="0" type="text"/>
  352. </label>
  353. <!-- Not visible, but still used -->
  354. <input id="text" type="text" size="35"/>
  355. </div>
  356. <!-- formerly gsvg_panel -->
  357. <div id="container_panel">
  358. <div class="tool_sep"></div>
  359. <!-- Add viewBox field here? -->
  360. <label id="group_title" title="Group identification label">
  361. <span>label:</span>
  362. <input id="g_title" data-attr="title" size="10" type="text"/>
  363. </label>
  364. </div>
  365. <div id="use_panel">
  366. <div class="push_button" id="tool_unlink_use" title="Break link to reference element (make unique)"></div>
  367. </div>
  368. <div id="g_panel">
  369. <div class="push_button" id="tool_ungroup" title="Ungroup Elements [G]"></div>
  370. </div>
  371. <!-- For anchor elements -->
  372. <div id="a_panel">
  373. <label id="tool_link_url" title="Set link URL (leave empty to remove)">
  374. <span id="linkLabel" class="icon_label"></span>
  375. <input id="link_url" type="text" size="35"/>
  376. </label>
  377. </div>
  378. <div id="path_node_panel">
  379. <div class="tool_sep"></div>
  380. <div class="tool_button push_button_pressed" id="tool_node_link" title="Link Control Points"></div>
  381. <div class="tool_sep"></div>
  382. <label id="tool_node_x">x:
  383. <input id="path_node_x" class="attr_changer" title="Change node's x coordinate" size="3" data-attr="x"/>
  384. </label>
  385. <label id="tool_node_y">y:
  386. <input id="path_node_y" class="attr_changer" title="Change node's y coordinate" size="3" data-attr="y"/>
  387. </label>
  388. <select id="seg_type" title="Change Segment type">
  389. <option id="straight_segments" selected="selected" value="4">Straight</option>
  390. <option id="curve_segments" value="6">Curve</option>
  391. </select>
  392. <div class="tool_button" id="tool_node_clone" title="Clone Node"></div>
  393. <div class="tool_button" id="tool_node_delete" title="Delete Node"></div>
  394. <div class="tool_button" id="tool_openclose_path" title="Open/close sub-path"></div>
  395. <div class="tool_button" id="tool_add_subpath" title="Add sub-path"></div>
  396. </div>
  397. </div> <!-- tools_top -->
  398. <div id="cur_context_panel">
  399. </div>
  400. <div id="tools_left" class="tools_panel">
  401. <div class="tool_button" id="tool_select" title="Select Tool"></div>
  402. <div class="tool_button" id="tool_fhpath" title="Pencil Tool"></div>
  403. <div class="tool_button" id="tool_line" title="Line Tool"></div>
  404. <div class="tool_button flyout_current" id="tools_rect_show" title="Square/Rect Tool">
  405. <div class="flyout_arrow_horiz"></div>
  406. </div>
  407. <div class="tool_button flyout_current" id="tools_ellipse_show" title="Ellipse/Circle Tool">
  408. <div class="flyout_arrow_horiz"></div>
  409. </div>
  410. <div class="tool_button" id="tool_path" title="Path Tool"></div>
  411. <div class="tool_button" id="tool_text" title="Text Tool"></div>
  412. <div class="tool_button" id="tool_image" title="Image Tool"></div>
  413. <div class="tool_button" id="tool_zoom" title="Zoom Tool [Ctrl+Up/Down]"></div>
  414. <div style="display: none">
  415. <div id="tool_rect" title="Rectangle"></div>
  416. <div id="tool_square" title="Square"></div>
  417. <div id="tool_fhrect" title="Free-Hand Rectangle"></div>
  418. <div id="tool_ellipse" title="Ellipse"></div>
  419. <div id="tool_circle" title="Circle"></div>
  420. <div id="tool_fhellipse" title="Free-Hand Ellipse"></div>
  421. </div>
  422. </div> <!-- tools_left -->
  423. <div id="tools_bottom" class="tools_panel">
  424. <!-- Zoom buttons -->
  425. <div id="zoom_panel" class="toolset" title="Change zoom level">
  426. <label>
  427. <span id="zoomLabel" class="zoom_tool icon_label"></span>
  428. <input id="zoom" size="3" value="100" type="text" />
  429. </label>
  430. <div id="zoom_dropdown" class="dropdown">
  431. <button></button>
  432. <ul>
  433. <li>1000%</li>
  434. <li>400%</li>
  435. <li>200%</li>
  436. <li>100%</li>
  437. <li>50%</li>
  438. <li>25%</li>
  439. <li id="fit_to_canvas" data-val="canvas">Fit to canvas</li>
  440. <li id="fit_to_sel" data-val="selection">Fit to selection</li>
  441. <li id="fit_to_layer_content" data-val="layer">Fit to layer content</li>
  442. <li id="fit_to_all" data-val="content">Fit to all content</li>
  443. <li>100%</li>
  444. </ul>
  445. </div>
  446. <div class="tool_sep"></div>
  447. </div>
  448. <div id="tools_bottom_2">
  449. <div id="color_tools">
  450. <div class="color_tool" id="tool_fill">
  451. <label class="icon_label" for="fill_color" title="Change fill color"></label>
  452. <div class="color_block">
  453. <div id="fill_bg"></div>
  454. <div id="fill_color" class="color_block"></div>
  455. </div>
  456. </div>
  457. <div class="color_tool" id="tool_stroke">
  458. <label class="icon_label" title="Change stroke color"></label>
  459. <div class="color_block">
  460. <div id="stroke_bg"></div>
  461. <div id="stroke_color" class="color_block" title="Change stroke color"></div>
  462. </div>
  463. <label class="stroke_label">
  464. <input id="stroke_width" title="Change stroke width by 1, shift-click to change by 0.1" size="2" value="5" type="text" data-attr="Stroke Width"/>
  465. </label>
  466. <div id="toggle_stroke_tools" title="Show/hide more stroke tools"></div>
  467. <label class="stroke_tool">
  468. <select id="stroke_style" title="Change stroke dash style">
  469. <option selected="selected" value="none">&#8212;</option>
  470. <option value="2,2">...</option>
  471. <option value="5,5">- -</option>
  472. <option value="5,2,2,2">- .</option>
  473. <option value="5,2,2,2,2,2">- ..</option>
  474. </select>
  475. </label>
  476. <div class="stroke_tool dropdown" id="stroke_linejoin">
  477. <div id="cur_linejoin" title="Linejoin: Miter"></div>
  478. <button></button>
  479. </div>
  480. <div class="stroke_tool dropdown" id="stroke_linecap">
  481. <div id="cur_linecap" title="Linecap: Butt"></div>
  482. <button></button>
  483. </div>
  484. </div>
  485. <div class="color_tool" id="tool_opacity" title="Change selected item opacity">
  486. <label>
  487. <span id="group_opacityLabel" class="icon_label"></span>
  488. <input id="group_opacity" size="3" value="100" type="text"/>
  489. </label>
  490. <div id="opacity_dropdown" class="dropdown">
  491. <button></button>
  492. <ul>
  493. <li>0%</li>
  494. <li>25%</li>
  495. <li>50%</li>
  496. <li>75%</li>
  497. <li>100%</li>
  498. <li class="special"><div id="opac_slider"></div></li>
  499. </ul>
  500. </div>
  501. </div>
  502. </div>
  503. </div>
  504. <div id="tools_bottom_3">
  505. <div id="palette_holder"><div id="palette" title="Click to change fill color, shift-click to change stroke color"></div></div>
  506. </div>
  507. <!-- <div id="copyright"><span id="copyrightLabel">Powered by</span> <a href="http://svg-edit.googlecode.com/" target="_blank">SVG-edit v2.6-beta</a></div> -->
  508. </div>
  509. <div id="option_lists" class="dropdown">
  510. <ul id="linejoin_opts">
  511. <li class="tool_button current" id="linejoin_miter" title="Linejoin: Miter"></li>
  512. <li class="tool_button" id="linejoin_round" title="Linejoin: Round"></li>
  513. <li class="tool_button" id="linejoin_bevel" title="Linejoin: Bevel"></li>
  514. </ul>
  515. <ul id="linecap_opts">
  516. <li class="tool_button current" id="linecap_butt" title="Linecap: Butt"></li>
  517. <li class="tool_button" id="linecap_square" title="Linecap: Square"></li>
  518. <li class="tool_button" id="linecap_round" title="Linecap: Round"></li>
  519. </ul>
  520. <ul id="position_opts" class="optcols3">
  521. <li class="push_button" id="tool_posleft" title="Align Left"></li>
  522. <li class="push_button" id="tool_poscenter" title="Align Center"></li>
  523. <li class="push_button" id="tool_posright" title="Align Right"></li>
  524. <li class="push_button" id="tool_postop" title="Align Top"></li>
  525. <li class="push_button" id="tool_posmiddle" title="Align Middle"></li>
  526. <li class="push_button" id="tool_posbottom" title="Align Bottom"></li>
  527. </ul>
  528. </div>
  529. <!-- hidden divs -->
  530. <div id="color_picker"></div>
  531. </div> <!-- svg_editor -->
  532. <div id="svg_source_editor">
  533. <div class="overlay"></div>
  534. <div id="svg_source_container">
  535. <div id="tool_source_back" class="toolbar_button">
  536. <button id="tool_source_save">Apply Changes</button>
  537. <button id="tool_source_cancel">Cancel</button>
  538. </div>
  539. <div id="save_output_btns">
  540. <p id="copy_save_note">Copy the contents of this box into a text editor, then save the file with a .svg extension.</p>
  541. <button id="copy_save_done">Done</button>
  542. </div>
  543. <form>
  544. <textarea id="svg_source_textarea" spellcheck="false"></textarea>
  545. </form>
  546. </div>
  547. </div>
  548. <div id="svg_docprops">
  549. <div class="overlay"></div>
  550. <div id="svg_docprops_container">
  551. <div id="tool_docprops_back" class="toolbar_button">
  552. <button id="tool_docprops_save">OK</button>
  553. <button id="tool_docprops_cancel">Cancel</button>
  554. </div>
  555. <fieldset id="svg_docprops_docprops">
  556. <legend id="svginfo_image_props">Image Properties</legend>
  557. <label>
  558. <span id="svginfo_title">Title:</span>
  559. <input type="text" id="canvas_title"/>
  560. </label>
  561. <fieldset id="change_resolution">
  562. <legend id="svginfo_dim">Canvas Dimensions</legend>
  563. <label><span id="svginfo_width">width:</span> <input type="text" id="canvas_width" size="6"/></label>
  564. <label><span id="svginfo_height">height:</span> <input type="text" id="canvas_height" size="6"/></label>
  565. <label>
  566. <select id="resolution">
  567. <option id="selectedPredefined" selected="selected">Select predefined:</option>
  568. <option>640x480</option>
  569. <option>800x600</option>
  570. <option>1024x768</option>
  571. <option>1280x960</option>
  572. <option>1600x1200</option>
  573. <option id="fitToContent" value="content">Fit to Content</option>
  574. </select>
  575. </label>
  576. </fieldset>
  577. <fieldset id="image_save_opts">
  578. <legend id="includedImages">Included Images</legend>
  579. <label><input type="radio" name="image_opt" value="embed" checked="checked"/> <span id="image_opt_embed">Embed data (local files)</span> </label>
  580. <label><input type="radio" name="image_opt" value="ref"/> <span id="image_opt_ref">Use file reference</span> </label>
  581. </fieldset>
  582. </fieldset>
  583. </div>
  584. </div>
  585. <div id="svg_prefs">
  586. <div class="overlay"></div>
  587. <div id="svg_prefs_container">
  588. <div id="tool_prefs_back" class="toolbar_button">
  589. <button id="tool_prefs_save">OK</button>
  590. <button id="tool_prefs_cancel">Cancel</button>
  591. </div>
  592. <fieldset>
  593. <legend id="svginfo_editor_prefs">Editor Preferences</legend>
  594. <label><span id="svginfo_lang">Language:</span>
  595. <!-- Source: http://en.wikipedia.org/wiki/Language_names -->
  596. <select id="lang_select">
  597. <option id="lang_ar" value="ar">العربية</option>
  598. <option id="lang_cs" value="cs">Čeština</option>
  599. <option id="lang_de" value="de">Deutsch</option>
  600. <option id="lang_en" value="en" selected="selected">English</option>
  601. <option id="lang_es" value="es">Español</option>
  602. <option id="lang_fa" value="fa">فارسی</option>
  603. <option id="lang_fr" value="fr">Français</option>
  604. <option id="lang_fy" value="fy">Frysk</option>
  605. <option id="lang_hi" value="hi">&#2361;&#2367;&#2344;&#2381;&#2342;&#2368;, &#2361;&#2367;&#2306;&#2342;&#2368;</option>
  606. <option id="lang_it" value="it">Italiano</option>
  607. <option id="lang_ja" value="ja">日本語</option>
  608. <option id="lang_nl" value="nl">Nederlands</option>
  609. <option id="lang_pl" value="pl">Polski</option>
  610. <option id="lang_pt-BR" value="pt-BR">Português (BR)</option>
  611. <option id="lang_ro" value="ro">Română</option>
  612. <option id="lang_ru" value="ru">Русский</option>
  613. <option id="lang_sk" value="sk">Slovenčina</option>
  614. <option id="lang_sl" value="sl">Slovenščina</option>
  615. <option id="lang_zh-TW" value="zh-TW">繁體中文</option>
  616. </select>
  617. </label>
  618. <label><span id="svginfo_icons">Icon size:</span>
  619. <select id="iconsize">
  620. <option id="icon_small" value="s">Small</option>
  621. <option id="icon_medium" value="m" selected="selected">Medium</option>
  622. <option id="icon_large" value="l">Large</option>
  623. <option id="icon_xlarge" value="xl">Extra Large</option>
  624. </select>
  625. </label>
  626. <fieldset id="change_background">
  627. <legend id="svginfo_change_background">Editor Background</legend>
  628. <div id="bg_blocks"></div>
  629. <label><span id="svginfo_bg_url">URL:</span> <input type="text" id="canvas_bg_url"/></label>
  630. <p id="svginfo_bg_note">Note: Background will not be saved with image.</p>
  631. </fieldset>
  632. <fieldset id="change_grid">
  633. <legend id="svginfo_grid_settings">Grid</legend>
  634. <label><span id="svginfo_snap_onoff">Snapping on/off</span><input type="checkbox" value="snapping_on" id="grid_snapping_on"/></label>
  635. <label><span id="svginfo_snap_step">Snapping Step-Size:</span> <input type="text" id="grid_snapping_step" size="3" value="10"/></label>
  636. <label><span id="svginfo_grid_color">Grid color:</span> <input type="text" id="grid_color" size="3" value="#000"/></label>
  637. </fieldset>
  638. <fieldset id="units_rulers">
  639. <legend id="svginfo_units_rulers">Units &amp; Rulers</legend>
  640. <label><span id="svginfo_rulers_onoff">Show rulers</span><input type="checkbox" value="show_rulers" id="show_rulers" checked="checked"/></label>
  641. <label>
  642. <span id="svginfo_unit">Base Unit:</span>
  643. <select id="base_unit">
  644. <option value="px">Pixels</option>
  645. <option value="cm">Centimeters</option>
  646. <option value="mm">Millimeters</option>
  647. <option value="in">Inches</option>
  648. <option value="pt">Points</option>
  649. <option value="pc">Picas</option>
  650. <option value="em">Ems</option>
  651. <option value="ex">Exs</option>
  652. </select>
  653. </label>
  654. <!-- Should this be an export option instead? -->
  655. <!--
  656. <span id="svginfo_unit_system">Unit System:</span>
  657. <label>
  658. <input type="radio" name="unit_system" value="single" checked="checked"/>
  659. <span id="svginfo_single_type_unit">Single type unit</span>
  660. <small id="svginfo_single_type_unit_sub">CSS unit type is set on root element. If a different unit type is entered in a text field, it is converted back to user units on export.</small>
  661. </label>
  662. <label>
  663. <input type="radio" name="unit_system" value="multi"/>
  664. <span id="svginfo_multi_units">Multiple CSS units</span>
  665. <small id="svginfo_single_type_unit_sub">Attributes can be given different CSS units, which may lead to inconsistant results among viewers.</small>
  666. </label>
  667. -->
  668. </fieldset>
  669. </fieldset>
  670. </div>
  671. </div>
  672. <div id="dialog_box">
  673. <div class="overlay"></div>
  674. <div id="dialog_container">
  675. <div id="dialog_content"></div>
  676. <div id="dialog_buttons"></div>
  677. </div>
  678. </div>
  679. <ul id="cmenu_canvas" class="contextMenu">
  680. <li><a href="#cut">Cut</a></li>
  681. <li><a href="#copy">Copy</a></li>
  682. <li><a href="#paste">Paste</a></li>
  683. <li><a href="#paste_in_place">Paste in Place</a></li>
  684. <li class="separator"><a href="#delete">Delete</a></li>
  685. <li class="separator"><a href="#group">Group<span class="shortcut">G</span></a></li>
  686. <li><a href="#ungroup">Ungroup<span class="shortcut">G</span></a></li>
  687. <li class="separator"><a href="#move_front">Bring to Front<span class="shortcut">SHFT+CTRL+]</span></a></li>
  688. <li><a href="#move_up">Bring Forward<span class="shortcut">CTRL+]</span></a></li>
  689. <li><a href="#move_down">Send Backward<span class="shortcut">CTRL+[</span></a></li>
  690. <li><a href="#move_back">Send to Back<span class="shortcut">SHFT+CTRL+[</span></a></li>
  691. </ul>
  692. <ul id="cmenu_layers" class="contextMenu">
  693. <li><a href="#dupe">Duplicate Layer...</a></li>
  694. <li><a href="#delete">Delete Layer</a></li>
  695. <li><a href="#merge_down">Merge Down</a></li>
  696. <li><a href="#merge_all">Merge All</a></li>
  697. </ul>
  698. </body>
  699. </html>