svg-editor.php 37 KB

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