From 35a96bde514a8897f6f0fcc41c5833bf63df2e2a Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 18:29:01 +0200 Subject: Adding upstream version 1.0.2. Signed-off-by: Daniel Baumann --- share/extensions/inkweb.js | 216 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 share/extensions/inkweb.js (limited to 'share/extensions/inkweb.js') diff --git a/share/extensions/inkweb.js b/share/extensions/inkweb.js new file mode 100644 index 0000000..acdf3e2 --- /dev/null +++ b/share/extensions/inkweb.js @@ -0,0 +1,216 @@ +/* +** InkWeb - Inkscape's Javscript features for the open vector web +** +** Copyright (C) 2009 Aurelio A. Heckert, aurium (a) gmail dot com +** +** ********* Bugs and New Fetures ************************************* +** If you found any bug on this script or if you want to propose a +** new feature, please report it in the inkscape bug tracker +** https://bugs.launchpad.net/inkscape/+filebug +** and assign that to Aurium. +** ******************************************************************** +** +** This program is free software: you can redistribute it and/or modify +** it under the terms of the GNU Lesser General Public License as published +** by the Free Software Foundation, either version 3 of the License, or +** (at your option) any later version. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU Lesser General Public License for more details. +** +** You should have received a copy of the GNU Lesser General Public License +** along with this program. If not, see . +*/ + +var InkWeb = { + + version: 0.04, + + NS: { + svg: "http://www.w3.org/2000/svg", + sodipodi: "http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd", + inkscape: "http://www.inkscape.org/namespaces/inkscape", + cc: "http://creativecommons.org/ns#", + dc: "http://purl.org/dc/elements/1.1/", + rdf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace" + } + +}; + +InkWeb.el = function (tag, attributes) { + // A helper to create SVG elements + var element = document.createElementNS( this.NS.svg, tag ); + for ( var att in attributes ) { + switch ( att ) { + case "parent": + attributes.parent.appendChild( element ); + break; + case "text": + element.appendChild( document.createTextNode( attributes.text ) ); + break; + default: + element.setAttribute( att, attributes[att] ); + } + } + return element; +} + +InkWeb.reGetStyleAttVal = function (att) { + return new RegExp( "(^|.*;)[ ]*"+ att +":([^;]*)(;.*|$)" ) +} + +InkWeb.getStyle = function (el, att) { + // This method is needed because el.style is only working + // to HTML style in the Firefox 3.0 + if ( typeof(el) == "string" ) + el = document.getElementById(el); + var style = el.getAttribute("style"); + var match = this.reGetStyleAttVal(att).exec(style); + if ( match ) { + return match[2]; + } else { + return false; + } +} + +InkWeb.setStyle = function (el, att, val) { + if ( typeof(el) == "string" ) + el = document.getElementById(el); + var style = el.getAttribute("style"); + re = this.reGetStyleAttVal(att); + if ( re.test(style) ) { + style = style.replace( re, "$1"+ att +":"+ val +"$3" ); + } else { + style += ";"+ att +":"+ val; + } + el.setAttribute( "style", style ); + return val +} + +InkWeb.transmitAtt = function (conf) { + conf.att = conf.att.split( /\s+/ ); + if ( typeof(conf.from) == "string" ) + conf.from = document.getElementById( conf.from ); + if ( ! conf.to.join ) + conf.to = [ conf.to ]; + for ( var toEl,elN=0; toEl=conf.to[elN]; elN++ ) { + if ( typeof(toEl) == "string" ) + toEl = document.getElementById( toEl ); + for ( var i=0; i