From 176f506d56989fd9befc77c1c56d050f2dea2600 Mon Sep 17 00:00:00 2001 From: aurium Date: Thu, 26 Mar 2009 23:57:32 +0000 Subject: [PATCH] first version of web-set-att extension --- share/extensions/inkweb.js | 28 ++++++++++- share/extensions/web-set-att.inx | 43 +++++++++++++++++ share/extensions/web-set-att.py | 69 +++++++++++++++++++++++++++ share/extensions/web-transmit-att.inx | 8 ++-- 4 files changed, 143 insertions(+), 5 deletions(-) create mode 100644 share/extensions/web-set-att.inx create mode 100755 share/extensions/web-set-att.py diff --git a/share/extensions/inkweb.js b/share/extensions/inkweb.js index dfadd4a7f..7b53153e7 100644 --- a/share/extensions/inkweb.js +++ b/share/extensions/inkweb.js @@ -71,7 +71,7 @@ InkWeb.transmitAtt = function (conf) { conf.from = document.getElementById( conf.from ); if ( typeof(conf.to) == "string" ) conf.to = document.getElementById( conf.to ); - conf.att = conf.att.split( /\s+/ ) + conf.att = conf.att.split( /\s+/ ); for ( var i=0; i + + <_name>Set Atributes + org.inkscape.web.set-att + web-set-att.py + inkex.py + <_param name="intro" type="description">This effect adds a feature visible (or usable) only on a SVG enabled web browser (like Firefox). + <_param name="sep1" type="description">•••••••••••••••••••••••••••••••••••••••••••••••• + <_param name="help" type="description">This effect sets one or more atributes in the second selected element, when a defined event occurs on the first selected element. + <_param name="sep2" type="description">•••••••••••••••••••••••••••••••••••••••••••••••• + <_param name="help" type="description">If you want to set more then one attribute, you must separate this with a space, and only with a space. + fill stroke stroke-width + + <_item value="onclick">on click + <_item value="onfocusin">on focus + <_item value="onfocusout">on blur + <_item value="onactivate">on activate + <_item value="onmousedown">on mouse down + <_item value="onmouseup">on mouse up + <_item value="onmouseover">on mouse over + <_item value="onmousemove">on mouse move + <_item value="onmouseout">on mouse out + <_item value="onload">on element loaded + + <_param name="help" type="description">The list of values must have the same size of the attributes list. + red black 5px + + <_item value="append">Run it after + <_item value="prepend">Run it before + <_item value="replace">Replace + + + all + + + + + + + + diff --git a/share/extensions/web-set-att.py b/share/extensions/web-set-att.py new file mode 100755 index 000000000..520120f7e --- /dev/null +++ b/share/extensions/web-set-att.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python +''' +Copyright (C) 2009 Aurelio A. Heckert, aurium (a) gmail dot com + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 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 General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +''' +import inkwebeffect, gettext + +_ = gettext.gettext + +class InkWebTransmitAtt(inkwebeffect.InkWebEffect): + + def __init__(self): + inkwebeffect.InkWebEffect.__init__(self) + self.OptionParser.add_option("-a", "--att", + action="store", type="string", + dest="att", default="fill", + help="Attribute to set.") + self.OptionParser.add_option("-v", "--val", + action="store", type="string", + dest="val", default="red", + help="Values to set.") + self.OptionParser.add_option("-w", "--when", + action="store", type="string", + dest="when", default="onclick", + help="When it must to set?") + self.OptionParser.add_option("-c", "--compatibility", + action="store", type="string", + dest="compatibility", default="append", + help="Compatibility with previews code to this event.") + + def effect(self): + self.ensureInkWebSupport() + + if len(self.options.ids) < 2: + inkwebeffect.inkex.errormsg(_("You must to select at least two elements.")) + exit(1) + + elFrom = self.selected[ self.options.ids[0] ] + idTo = self.options.ids[1] + + prevEvCode = elFrom.get( self.options.when ) + if prevEvCode == None: prevEvCode = "" + + evCode = "InkWeb.setAtt({el:'"+idTo+"', att:'"+self.options.att+"', val:'"+self.options.val+"'})" + + if self.options.compatibility == 'append': + evCode = prevEvCode +";\n"+ evCode + if self.options.compatibility == 'prepend': + evCode = evCode +";\n"+ prevEvCode + + elFrom.set( self.options.when, evCode ) + +if __name__ == '__main__': + e = InkWebTransmitAtt() + e.affect() + diff --git a/share/extensions/web-transmit-att.inx b/share/extensions/web-transmit-att.inx index 9df45264b..5d5a52a63 100644 --- a/share/extensions/web-transmit-att.inx +++ b/share/extensions/web-transmit-att.inx @@ -4,11 +4,11 @@ org.inkscape.web.transmit-att web-transmit-att.py inkex.py - <_param name="intro1" type="description">This effect adds a feature visible (or usable) only on a SVG enabled web browser (like Firefox). + <_param name="intro" type="description">This effect adds a feature visible (or usable) only on a SVG enabled web browser (like Firefox). <_param name="sep1" type="description">•••••••••••••••••••••••••••••••••••••••••••••••• - <_param name="intro2" type="description">This effect transmit one or more atributes from the first selected element to the second when a event occurs. + <_param name="help" type="description">This effect transmit one or more atributes from the first selected element to the second when a event occurs. <_param name="sep2" type="description">•••••••••••••••••••••••••••••••••••••••••••••••• - <_param name="intro2" type="description">If you want to transmit more then one attribute, you must separate this with a space, and only with a space. + <_param name="help" type="description">If you want to transmit more then one attribute, you must separate this with a space, and only with a space. fill <_item value="onclick">on click @@ -38,4 +38,4 @@ - \ No newline at end of file + -- 2.30.2