svg-editor.php 37 KB

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