Quentin | 5 Sep 11:49 2006
Picon

Bug with various letter spacings in static textfield.

Hi !
I experienced a bug yesterday when placing a Flash generated SWF that had a TextField on the stage. This TextField was not being rendered entirely after I placed it in a new SWF generated by swfmill.
I searched a bit, and found that this field was having various "letter spacings" in it : a part of the text had a letter spacing of 0, and another part had 3, and that other part was the one that was not rendered.
I finally understood that the bug was only there when you have 2 or more different values inside one TextField.

You'll find a Flash generated SWF attached, with a field that has 2 different values for its letter spacing : the first (on the "Normal" text) is 0 and the second (on the "Wide" text) is 8.
Do you want me to add a Trac entry ?

Hope you can fix it !
See ya.

Quentin.
dasp.free.fr

Attachment (buggy-tf.swf): application/x-shockwave-flash, 1240 bytes
_______________________________________________
swfmill mailing list
swfmill@...
http://osflash.org/mailman/listinfo/swfmill_osflash.org
jarzack | 8 Sep 12:24 2006
Picon
Picon

Problem with swfmill+mtasc+FP8 for fonts

 Hello swfmill people!

 I have a problem with embeded fonts in FP8 (only in FP8!);  Maybe you
would agree to have
 a look at this problem, it is very simple and rapid to understand (but
maybe not to solve?)

  I create the file "font.swf" with the following xml:

  <?xml version="1.0" encoding="iso-8859-1" ?>
  <movie width="320" height="240" framerate="12">
    <background color="#ffffff"/>
    <frame>
      <font id="papyrus" import="library/PAPYRUS.TTF"
  <glyphs="0123456789"/>
    </frame>
  </movie>

  and I create another swf file "gal.swf" where I want to use the font
  in "font.swf", whit the xml:

  <?xml version="1.0" encoding="iso-8859-1" ?>
  <movie width="2800" height="2000" framerate="60">
    <background color="#ffffff"/>
    <frame>
      <import file="font.swf" url="font.swf"/>
  </frame>
  </movie>

  Then I re-compile the file "gal.swf" with mtasc (without ant "header"
  parameter, for sure) and the following actionscript code:

 _level0.createTextField("essai",0,0,0,100,20)
        _level0.essai.text="blablabla"

        _level0.essai.embedFonts=true
        var my_fmt:TextFormat = new TextFormat();
        my_fmt.font = "papyrus";
  my_fmt.size=20;
  _level0.essai.setTextFormat(my_fmt);

  This works when I compile for FP 6 or 7 (mtasc parameter -version) but
  not for FP8...
 However, compiling the last actionscript code directly in the file
  "font.swf" works even with FP8. But I don't want to include the font in
 every swf file I use...I could load the file "font.swf" with actionscript
 in "gal.swf" without embeding to font but doing this I can't use the
 "advanced"
 anti-aliasing mode for the text.. Have you a solution to this problem??

 I also tried the exact example shown in
 http://www.v-i-a.net/blog/archives/000043.html and it didn't worked.
 In this example, I just changed the police, and I also tried to replace

 root.myFont.loadMovie ("sharedFont.swf")

 by

 root.myFont.loadMovie ("shared.swf")

 because it seems that there is an error in the original .as file.

 Does somebody knows this problem, and have an answer?

  Candide Jarczak
Quentin | 8 Sep 17:25 2006
Picon

Re: Bug with various letter spacings in static textfield.

Hi!
And I've noticed it's the same with various fonts...
Hope someone will find the bug, and smash it!

Thanks, bye...

On 9/5/06, Quentin < quentin.t-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
Hi !
I experienced a bug yesterday when placing a Flash generated SWF that had a TextField on the stage. This TextField was not being rendered entirely after I placed it in a new SWF generated by swfmill.
I searched a bit, and found that this field was having various "letter spacings" in it : a part of the text had a letter spacing of 0, and another part had 3, and that other part was the one that was not rendered.
I finally understood that the bug was only there when you have 2 or more different values inside one TextField.

You'll find a Flash generated SWF attached, with a field that has 2 different values for its letter spacing : the first (on the "Normal" text) is 0 and the second (on the "Wide" text) is 8.
Do you want me to add a Trac entry ?

Hope you can fix it !
See ya.


_______________________________________________
swfmill mailing list
swfmill@...
http://osflash.org/mailman/listinfo/swfmill_osflash.org
erixtekila | 12 Sep 00:14 2006
Picon

Re: Problem with swfmill+mtasc+FP8 for fonts

Hi,

Sorry for the late answer.
But what is the swfmill version that you use ?
Be sure to use the last prerelease located at
  http://swfmill.org/pre/swfmill-0.2.11.18.tar.gz
  http://swfmill.org/pre/swfmill-0.2.11.18-win32.zip

The example posted on (my) blog works with swf8.
I use it know.
So it might be a swf tag issue.
Send me an example of your font.swf.

HTH
-----------
Eric Priou
(aka erixtekila)
In progress tech blog : http://blog.v-i-a.net/
Oregano XML Socket forum : http://forum.v-i-a.net/
jarzack | 13 Sep 15:03 2006
Picon
Picon

Re: [swfmill Problem with swfmill+mtasc+FP8 for fonts]

Hello,

Thank you for the answer. I have the latest version of swfmill but it
still  do not work with FP8. This is the files I used:

-font.xml to create font.swf which contains the font(I can't send font.swf
because it is too big, but you can make it by putting the font PAPYRUS in
a folder called "library" in the same folder than swfmill)

-gal.xml to create test.swf

-test.as and texte.as to fill test.swf with a text field.

I wrote in english because the mail is sent to the whole mailing list but
you can as well answer in french (I am, I guess you are?)

Thank you for your help

Candide

> Hi,
>
> Sorry for the late answer.
> But what is the swfmill version that you use ?
> Be sure to use the last prerelease located at
>   http://swfmill.org/pre/swfmill-0.2.11.18.tar.gz
>   http://swfmill.org/pre/swfmill-0.2.11.18-win32.zip
>
> The example posted on (my) blog works with swf8.
> I use it know.
> So it might be a swf tag issue.
> Send me an example of your font.swf.
>
> HTH
> -----------
> Eric Priou
> (aka erixtekila)
> In progress tech blog : http://blog.v-i-a.net/
> Oregano XML Socket forum : http://forum.v-i-a.net/
>
>
> _______________________________________________
> swfmill mailing list
> swfmill@...
> http://osflash.org/mailman/listinfo/swfmill_osflash.org
>
jarzack | 13 Sep 15:06 2006
Picon
Picon

Re: Problem with swfmill+mtasc+FP8 for fonts

here are the files
Attachment (font.xml): text/xml, 271 bytes
Attachment (gal.xml): text/xml, 241 bytes
Attachment (test.as): application/octet-stream, 259 bytes
Attachment (test.swf): application/x-shockwave-flash, 855 bytes
Attachment (texte.as): application/octet-stream, 802 bytes
_______________________________________________
swfmill mailing list
swfmill@...
http://osflash.org/mailman/listinfo/swfmill_osflash.org
Eric Priou | 19 Sep 21:27 2006
Picon

Re: [swfmill Problem with swfmill+mtasc+FP8 for fonts]

Hi Candide,

Sorry for the late reply, I am vey buzy nowadays.
I'll speak english as the list is in that tongue.

I looked in your files and I saw that you are a bad guy !
You didn't follow the blog post 
http://www.v-i-a.net/blog/archives/000043.html "à la lettre".

I saw two problems with you files :
1- gal.xml don't import the font.swf to foolow the shared font example.
You need to :
<library>
    <font id="DejaVu" name="DejaVu" 
import="/Library/Fonts/DejaVuSans-Bold.ttf" glyphs="This is my text."/>
    <import file="shared.swf" url="shared.swf" />
</library>

2- To make your loaded lib working, you need to be sure that it is 
loaded first :
class Shell
{
         public static function main (root:MovieClip)
         {
                 root.createEmptyMovieClip("myFont", 100);
                 root.onEnterFrame = function ()
                 {
                         if (this.myFont._url != this._url)
                         {
                                 var myFormat = new TextFormat();
                                 myFormat.font = "DejaVu";
                                 myFormat.size = 50;
                                 myFormat.bold=true;
                                 this.createTextField("myField", 200, 
100, 50, 0, 0);
                                 var mf = this.myField;
                                 mf.autoSize = true;
                                 mf.border = true;
                                 mf.text = "This is my text.";
                                 mf.embedFonts = true;
                                 mf.setTextFormat(myFormat);
                         }
                 };
                 root.myFont.loadMovie ("sharedFont.swf");
         }
}

Try to follow STRICTLY :) the article.
If that dont work, send me (privatly) your papyrus font.
I don't have it on osx.

6ya.

Le 13 sept. 06, à 15:03, jarzack@... a écrit :

> Hello,
>
> Thank you for the answer. I have the latest version of swfmill but it
> still  do not work with FP8. This is the files I used:
>
> -font.xml to create font.swf which contains the font(I can't send 
> font.swf
> because it is too big, but you can make it by putting the font PAPYRUS 
> in
> a folder called "library" in the same folder than swfmill)
>
> -gal.xml to create test.swf
>
> -test.as and texte.as to fill test.swf with a text field.
>
> I wrote in english because the mail is sent to the whole mailing list 
> but
> you can as well answer in french (I am, I guess you are?)
-----------
Eric Priou
(aka erixtekila)
In progress tech blog : http://blog.v-i-a.net/
Oregano XML Socket forum : http://forum.v-i-a.net/
ml | 20 Sep 11:21 2006

pixel fonts wrong rendering

I'm having the same issue someone faced in the past, I found the threads
googling. Basically, with swfmill, pixel fonts seem to be wrongly rendered (they
go offset orizzontaly) getting blurred. Based on the threads it seems no one
sorted this issue so far. And, considering that the last version of the software
is dated 2005, I'm a bit worried there isn't a solution yet.

Can anyone bring me some optimism with good news? :)

Thanks, chr
ml | 20 Sep 12:19 2006

import fonts from swf

Given the issue we are facing with bitmap fonts (or pixel fonts) if to import
from tff, or opentype, I was  trying to import the font from a swf created in the
flash IDE where the font is linked. For testing I linked also a movieclip.
Unfortunately the movieclip can be used in my generated swf but the font no.

Does anyone know how to do it?

I'm using:

<clip>
   ...
   <include import="assets/library.swf" />
</clip>

And tried different options but with no result.

Thanks a lot, chr
Gerrit Karius | 20 Sep 14:24 2006
Picon

Inkscape SVG

hi everyone. in july, i submitted a changed "simple-svg.xslt" stylesheet, 
where i omitted the swf wrapper transforms for svg:g nodes. it turned out 
that this was a mistake. deepest apologies. :(

my question was: should outer transforms of svg nodes apply to referencing 
svg:use nodes as well? the svg spec defines svg:use nodes as deep-cloning 
the original (implicitly including the transform). i thought that inkscape 
ignored the transforms, since the position of clones does not change when 
the transform of the original is altered. however, inkscape actually 
silently adjusts the matrices of all clones to the new transform instead.

i wanted to omit the wrappers for a direct node hierarchy with better 
actionscript accessability. my compromise for the xslt is now that it checks 
whether an original node actually has a transform or is simply placed at the 
origin. if it's placed at the origin, the wrapper can safely be omitted. 
that way, everyone should be happy. :)

here's a list of changes:

* the svg:g template now checks for a transform and applies a wrapper, which 
gets the id of the g node. for nonexisting, empty or identity transforms, 
the wrapper is omitted, and the id is applied to the g node itself.

* a named transform template catches empty transform atributes 
(transform=""). inkscape regularly produces them, and they caused swfmill to 
crash.

* svg:flowRoot elements are now included again in the stylesheet. the 
definition template simply extracts the text content of the flowRegion and 
flowPara child nodes via the "svg-text" mode. the styling is not parsed, but 
at least the text is now visible in the swf movie.

* the svg:text template has been changed. before, the text was invisible, 
because it was all white color. it's now visible, without styling, just like 
flowRoot.

for testing swfmill with non-inkscape files, i also included the following 
lines at the start of parse_css_simple in swft_css.cpp. it checks for a 
missing style attribute and applies a black stroke.

if( strlen(style_str) == 0 ) {
	style->no_fill = true;
	style->no_stroke = false;
	style->width = 20;
	style->stroke.a = 0xff;
	return;
}

inkscape uses the style attribute exclusively for colors and styles, and 
swfmill checks only this attribute. this means that svgs using regular 
atributes like "fill" and "stroke" become all white color and fully 
transparent, turning them invisible. now they at least get a black outline, 
and can thus prove their existence. :)

i used this to run an swfmill test over the w3c svg testsuite, but the 
results looked rather discouraging, even with outlines. however, since 
almost all of the testcases represent features that inkscape doesn't use, i 
wouldn't bother to implement them.

it might also be more efficient to have inkscape directly export basic 
swfml, rather than parsing the svg output in swfmill. the stuff gets very 
complicated in xslt, even with external functions. i suppose that in 
inkscape, you'd have the data as binary variables instead of xml strings, 
and would have global access to the entire tree.

dan, what does your inkscape experience suggest?

anyway, here's the "simple-svg.xslt" again:

<?xml version="1.0"?>
<xsl:stylesheet	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
				xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
				xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
				xmlns:svg="http://www.w3.org/2000/svg"
				xmlns:swft="http://subsignal.org/swfml/swft"
				xmlns:str="http://exslt.org/strings"
				xmlns:xlink="http://www.w3.org/1999/xlink"
				extension-element-prefixes="swft"
				version='1.0'>

<!-- named template for redundant transforms -->
<xsl:template name="transform">
	<transform>
		<xsl:choose>
			<!-- catch empty transform attributes. -->
			<xsl:when test="not( <at> transform) or  <at> transform=''">
				<Transform transX="0" transY="0"/>
			</xsl:when>
			<xsl:otherwise>
				<xsl:copy-of select="swft:transform( <at> transform)"/>
			</xsl:otherwise>
		</xsl:choose>
	</transform>
</xsl:template>

<!-- named template for redundant placing -->
<xsl:template name="placeObject">
	<!-- place the element, or the referenced element (if it's a reference). 
-->
	<xsl:variable name="id">
		<xsl:choose>
			<xsl:when test="name()='use'">
				<xsl:value-of select="swft:map-id(substring( <at> xlink:href,2))"/>
			</xsl:when>
			<xsl:otherwise>
				<xsl:value-of select="swft:map-id( <at> id)"/>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:variable>
	<!-- use inkscape label as an instance name instead of id, allowing 
multiple instances with the same name. -->
	<xsl:variable name="name">
		<xsl:choose>
			<xsl:when test=" <at> inkscape:label">
				<xsl:choose>
					<xsl:when test="substring( <at> inkscape:label,1,1)='#'">
						<xsl:value-of select="substring( <at> inkscape:label,2)"/>
					</xsl:when>
					<xsl:otherwise>
						<xsl:value-of select=" <at> inkscape:label"/>
					</xsl:otherwise>
				</xsl:choose>
			</xsl:when>
			<xsl:otherwise>
				<xsl:value-of select=" <at> id"/>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:variable>
	<!-- place the object. -->
	<PlaceObject2 replace="0" depth="{swft:next-depth()}" name="{$name}" 
objectID="{$id}">
		<!-- svg:use elements add an instance transform, all others have it 
included in their definition. -->
		<xsl:choose>
			<xsl:when test="name()='use'">
				<xsl:call-template name="transform" />
			</xsl:when>
			<xsl:otherwise>
				<transform>
					<Transform transX="0" transY="0"/>
				</transform>
			</xsl:otherwise>
		</xsl:choose>
	</PlaceObject2>
</xsl:template>

<!-- named template for redundant wrappers -->
<xsl:template name="wrapElement">
	<xsl:param name="innerid" />
	<xsl:variable name="id" select="swft:map-id( <at> id)" />
	<DefineSprite objectID="{$id}" frames="1">
		<tags>
			<PlaceObject2 replace="0" depth="{swft:next-depth()}" 
objectID="{$innerid}">
				<xsl:call-template name="transform" />
			</PlaceObject2>
			<ShowFrame/>
			<End/>
		</tags>
	</DefineSprite>
</xsl:template>

<!-- named template for redundant exports -->
<xsl:template name="exportElement">
	<xsl:variable name="id" select="swft:map-id( <at> id)" />
	<xsl:variable name="name" select=" <at> id" />
	<!-- export the element. -->
	<xsl:if test=" <at> id">
		<Export>
			<symbols>
				<Symbol objectID="{$id}" name="{$name}"/>
			</symbols>
		</Export>
	</xsl:if>
	<!-- define a class, if applicable. -->
	<xsl:variable name="class" select=" <at> class"/>
	<xsl:if test="string-length($class) > 0">
		<xsl:call-template name="register-class">
			<xsl:with-param name="class" select="$class"/>
			<xsl:with-param name="linkage-id" select="$name"/>
		</xsl:call-template>
	</xsl:if>

</xsl:template>

<!-- entry point: starts 2 passes, one for queuing up the definitions, one 
for placing the elements. -->
<xsl:template match="svg:svg" mode="svg">
	<xsl:param name="id"/>
	<!-- initiate the definition pass. -->
	<xsl:apply-templates mode="queue" />
	<!-- define svg root as sprite. -->
	<DefineSprite objectID="{$id}" frames="1">
		<tags>
			<!-- initiate the placement pass. -->
			<xsl:apply-templates mode="placement" />
			<ShowFrame/>
			<End/>
		</tags>
	</DefineSprite>
</xsl:template>

<xsl:template match="svg:g|svg:path|svg:rect|svg:use|svg:text|svg:flowRoot" 
mode="queue">
	<xsl:variable name="id"><xsl:value-of 
select="swft:map-id( <at> id)"/></xsl:variable>
	<xsl:variable name="name" select=" <at> id"/>

	<!-- first define the subparts, so that we get the innermost ones queued 
first. -->
	<xsl:apply-templates mode="queue" />
	<!-- now define this element, which is based on the subparts. -->
	<xsl:apply-templates select="." mode="definition">
		<xsl:with-param name="id" select="$id"/>
		<xsl:with-param name="name" select="$name"/>
	</xsl:apply-templates>

</xsl:template>

<xsl:template match="svg:g|svg:path|svg:rect|svg:use|svg:text|svg:flowRoot" 
mode="placement">
	<!-- no definition. just place this element. -->
	<xsl:call-template name="placeObject" />
</xsl:template>

<xsl:template match="svg:g" mode="definition" priority="-1">
	<xsl:param name="id"/>
	<xsl:param name="name"/>

	<!-- test if a wrapper is needed for a group transform -->
	<xsl:choose>
		<xsl:when test="not( <at> transform) or  <at> transform='' or 
transform='translate(0,0)'">
			<!-- no transform, define the group and place the subparts -->
			<DefineSprite objectID="{$id}" frames="1">
				<tags>
					<xsl:apply-templates mode="placement" />
					<ShowFrame/>
					<End/>
				</tags>
			</DefineSprite>
		</xsl:when>
		<xsl:otherwise>
			<!-- define an inner group and wrap it with the group transform -->
			<xsl:variable name="innerid"><xsl:value-of 
select="swft:next-id()"/></xsl:variable>
			<DefineSprite objectID="{$innerid}" frames="1">
				<tags>
					<xsl:apply-templates mode="placement" />
					<ShowFrame/>
					<End/>
				</tags>
			</DefineSprite>
			<xsl:call-template name="wrapElement">
				<xsl:with-param name="innerid" select="$innerid" />
			</xsl:call-template>
		</xsl:otherwise>
	</xsl:choose>
	<!-- export -->
	<xsl:call-template name="exportElement" />

</xsl:template>

<xsl:template match="svg:path" mode="definition">
	<xsl:param name="id"/>
	<xsl:variable name="shapeid"><xsl:value-of 
select="swft:next-id()"/></xsl:variable>

	<!-- define the path -->
	<xsl:copy-of select="swft:path(  <at> d, $shapeid,  <at> style )"/>
	<!-- wrap in sprite -->
	<xsl:call-template name="wrapElement">
		<xsl:with-param name="innerid" select="$shapeid" />
	</xsl:call-template>
	<!-- export -->
	<xsl:call-template name="exportElement" />
</xsl:template>

<xsl:template match="svg:rect" mode="definition">
	<xsl:param name="id"/>
	<xsl:param name="name"/>
	<xsl:variable name="shapeid"><xsl:value-of 
select="swft:next-id()"/></xsl:variable>

	<!-- define the element -->
	<DefineShape3 objectID="{$shapeid}">
		<bounds>
			<Rectangle left="{ <at> x}" right="{( <at> x+ <at> width)*20}" top="{ <at> y}" 
bottom="{( <at> y+ <at> height)*20}"/>
		</bounds>
		<styles>
			<StyleList>
				<xsl:copy-of select="swft:css( <at> style)/tmp/*"/>
			</StyleList>
		</styles>
		<shapes>
			<Shape>
				<edges>
					<ShapeSetup x="{( <at> x+ <at> width)*20}" y="{( <at> y+ <at> height)*20}" fillStyle0="1" 
lineStyle="1"/>
					<LineTo x="-{( <at> width)*20}" y="0"/>
					<LineTo x="0" y="-{( <at> height)*20}"/>
					<LineTo x="{( <at> width)*20}" y="0"/>
					<LineTo x="0" y="{( <at> height)*20}"/>
					<ShapeSetup/>
				</edges>
			</Shape>
		</shapes>
	</DefineShape3>
	<!-- wrap in sprite -->
	<xsl:call-template name="wrapElement">
		<xsl:with-param name="innerid" select="$shapeid" />
	</xsl:call-template>
	<!-- export -->
	<xsl:call-template name="exportElement" />
</xsl:template>

<xsl:template match="svg:flowRoot" mode="definition">
	<xsl:param name="id"/>
	<xsl:param name="name"/>
	<xsl:variable name="shapeid"><xsl:value-of 
select="swft:next-id()"/></xsl:variable>

	<!-- define the element -->
	<DefineEditText objectID="{$shapeid}" wordWrap="1" multiLine="1" 
password="0" readOnly="0" autoSize="0" hasLayout="1" notSelectable="0" 
hasBorder="0" isHTML="0" useOutlines="0" fontRef="{swft:map-id('vera')}" 
fontHeight="240" align="0" leftMargin="0" rightMargin="0" indent="0" 
leading="40" variableName="{ <at> name}">
		<xsl:attribute name="initialText">
			<xsl:apply-templates mode="svg-text"/>
		</xsl:attribute>
		<size>
			<Rectangle left="{svg:flowRegion/svg:rect/ <at> x * 20}" 
right="{(svg:flowRegion/svg:rect/ <at> x + svg:flowRegion/svg:rect/ <at> width)* 20}" 
top="{svg:flowRegion/svg:rect/ <at> y * 20}" bottom="{(svg:flowRegion/svg:rect/ <at> y 
+ svg:flowRegion/svg:rect/ <at> height)* 20}"/>
		</size>
		<color>
			<Color red="0" green="0" blue="0" alpha="255"/>
		</color>
	</DefineEditText>
	<!-- wrap in sprite -->
	<xsl:call-template name="wrapElement">
		<xsl:with-param name="innerid" select="$shapeid" />
	</xsl:call-template>
	<!-- export -->
	<xsl:call-template name="exportElement" />
</xsl:template>

<xsl:template match="svg:text" mode="definition">
	<xsl:param name="id"/>
	<xsl:param name="name"/>
	<xsl:variable name="shapeid"><xsl:value-of 
select="swft:next-id()"/></xsl:variable>

	<!-- define the element -->
	<DefineEditText objectID="{$shapeid}" wordWrap="0" multiLine="1" 
password="0" readOnly="1" autoSize="1" hasLayout="1" notSelectable="1" 
hasBorder="0" isHTML="0" useOutlines="0" fontRef="{swft:map-id('vera')}" 
fontHeight="240" align="0" leftMargin="0" rightMargin="0" indent="0" 
leading="40" variableName="{ <at> name}">
	<xsl:attribute name="initialText">
		<xsl:apply-templates mode="svg-text"/>
	</xsl:attribute>
	<size>
		<Rectangle left="{ <at> x * 20}" right="{ <at> x * 30}" top="{ <at> y * 20}" bottom="{ <at> y 
* 30}"/>
	</size>
	<color>
		<Color red="0" green="0" blue="0" alpha="255"/>
	</color>
	</DefineEditText>
	<!-- wrap in sprite -->
	<xsl:call-template name="wrapElement">
		<xsl:with-param name="innerid" select="$shapeid" />
	</xsl:call-template>
	<!-- export -->
	<xsl:call-template name="exportElement" />
</xsl:template>

<xsl:template match="svg:flowRegion" mode="svg-text">
	<xsl:apply-templates mode="svg-text"/>
</xsl:template>

<xsl:template match="svg:flowPara" mode="svg-text">
	<xsl:apply-templates mode="svg-text"/>
</xsl:template>

<xsl:template match="svg:tspan[position()=1]" mode="svg-text">
	<xsl:apply-templates mode="svg-text"/>
</xsl:template>

<xsl:template match="svg:tspan" mode="svg-text" priority="-1">
	<xsl:text>
	</xsl:text>
	<xsl:apply-templates mode="svg-text"/>
</xsl:template>

<xsl:template match="text()" mode="svg-text">
	<xsl:copy-of select="."/>
</xsl:template>

<xsl:template match="*| <at> *|text()" mode="svg" priority="-1"/>

<xsl:template match="ShapeSetup" mode="shape">
	<ShapeSetup fillStyle0="1" fillStyle1="2" lineStyle="1">
		<xsl:apply-templates select="*| <at> *" mode="shape"/>
	</ShapeSetup>
</xsl:template>
<xsl:template match="*| <at> *|text()" mode="shape" priority="-1">
	<xsl:copy-of select="."/>
</xsl:template>

</xsl:stylesheet>

Gmane