| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /**
- * WHITEBOPHIR
- *********************************************************
- * @licstart The following is the entire license notice for the
- * JavaScript code in this page.
- *
- * Copyright (C) 2013 Ophir LOJKINE
- *
- *
- * The JavaScript code in this page is free software: you can
- * redistribute it and/or modify it under the terms of the GNU
- * General Public License (GNU GPL) as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option)
- * any later version. The code is distributed WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
- *
- * As additional permission under GNU GPL version 3 section 7, you
- * may distribute non-source (e.g., minimized or compacted) forms of
- * that code without the copy of the GNU GPL normally required by
- * section 4, provided you include this license notice and a URL
- * through which recipients can access the Corresponding Source.
- *
- * @licend
- */
-
- (function eraser (){ //Code isolation
-
- var erasing = false;
-
- function startErasing (x,y, evt) {
- //Prevent the press from being interpreted by the browser
- evt.preventDefault();
- erasing = true;
- erase(x,y,evt);
- }
-
- var msg = {
- "type" : "delete",
- "id" : ""
- };
- function erase (x,y, evt){
- /*evt.target is the element over which the mouse is.*/
- if (erasing && evt.target !== Tools.svg) {
- msg.id = evt.target.id;
- Tools.drawAndSend(msg);
- }
- }
-
- function stopErasing (){
- erasing = false;
- }
-
- function draw(data) {
- var elem;
- switch(data.type) {
- //TODO: add the ability to erase only some points in a line
- case "delete":
- elem = svg.getElementById(data.id);
- if (elem === null) console.error("Eraser: Tried to delete an element that does not exist.");
- else svg.removeChild(elem);
- break;
- default:
- console.error("Eraser: 'delete' instruction with unknown type. ", data);
- break;
- }
- }
-
- var svg = Tools.svg;
-
- Tools.add({ //The new tool
- "name" : "Eraser",
- "icon" : "fa-eraser",
- "listeners" : {
- "press" : startErasing,
- "move" : erase,
- "release" : stopErasing,
- },
- "draw" : draw,
- "mouseCursor" : "crosshair",
- });
-
- })(); //End of code isolation
|