OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: ODF 1.2 draft 7-9 - Chapter 9.6 Custom Shapes


Patrick,

please find below Sven Jacobi's feedback regarding the custom shape 
chapter and the attributes related to it.

Best regards

Michael

-------- Original Message --------
Subject: Re: ODF 1.2 draft 7-9
Date: Mon, 20 Oct 2008 15:51:36 +0200
From: Sven Jacobi <Sven.Jacobi@Sun.COM>
To: Michael Brauer - Sun Germany - ham02 - Hamburg <Michael.Brauer@Sun.COM>
References: <48DB95F5.5000409@sun.com> <48E0AD77.8050209@sun.com>
<48E22CCC.4050103@sun.com> <48E4DA1D.6070804@sun.com>


####draw:extrusion-origin

Ed. Note: The schema has to be verified.

extrusionorigin::= number ' ' number
number::= sign? float | sign? integer
float::= fractional exponent? | integer exponent
fractional::= integer? '.' integer | integer '.'
exponent::= ( 'e' | 'E' ) sign? integer
sign::= '+'| '-'
integer::= [0-9]+

####draw:extrusion-rotation-angle

Ed. Note I inserted the whitespace separation of the values. We really
do need to specify the format of compound values that are recorded in
attributes.

I have to remark that the rotation is based on degrees.

extrusionrotationangle::= number ' ' number
number::= sign? float | sign? integer
float::= fractional exponent? | integer exponent
fractional::= integer? '.' integer | integer '.'
exponent::= ( 'e' | 'E' ) sign? integer
sign::= '+'| '-'
integer::= [0-9]+

####draw:extrusion-depth:

It should probably be mentioned that the first value is using a unit.

exemplary: draw:extrusion-depth="5cm 0"

extrusiondepth::= number unit ' ' number
number::= sign? float | sign? integer
float::= fractional exponent? | integer exponent
fractional::= integer? '.' integer | integer '.'
exponent::= ( 'e' | 'E' ) sign? integer
sign::= '+'| '-'
integer::= [0-9]+
unit::= 'cm' | 'mm' | 'in' | 'pt' | 'pc'


####draw:extrusion-skew:

Ed. Note the addition of whitespace to the format of the parameters.

I have to remark that SkewAngle is based on degrees.

extrusionskew::= number ' ' number
number::= sign? float | sign? integer
float::= fractional exponent? | integer exponent
fractional::= integer? '.' integer | integer '.'
exponent::= ( 'e' | 'E' ) sign? integer
sign::= '+'| '-'
integer::= [0-9]+

####draw:extrusion-viewpoint:

Ed. Note: The pattern for the point3d type has to be checked

Ed. Note If [ ] (square braces) are supposed to enclose a character
class, then I am not sure what [ ]* means in XML regex syntax? That is
from the

vector3D regex near the end of the schema. Whitespace is \s. Note that
the regex does not constraint the units mentioned above.

The default value is containing an error,
correct is:(3.5cm -3.5cm 25cm)
and not: 3.5cm -3.5cm 25cm

extrusionviewpoint ::= ( '(' position ' '+ position ' '+ position ')' )?
position::= number unit
number::= sign? float | sign? integer
float::= fractional exponent? | integer exponent
fractional::= integer? '.' integer | integer '.'
exponent::= ( 'e' | 'E' ) sign? integer
sign::= '+'| '-'
integer::= [0-9]+
unit::= 'cm' | 'mm' | 'in' | 'pt' | 'pc'

####draw:glue-point-leaving-directions:

Ed. Note As far as I can tell, we only use grads here and at one other
place. Shouldn't we uniformly use degrees or radians?

In the description of draw:glue-points-leaving-direction is an error,
in fact degrees are used and not grad.

gluepointleavingdirections::= leavingdirectionsequence?
leavingdirectionsequence::= number ( ' '+ leavingdirectionsequence )*
number::= sign? float | sign? integer
float::= fractional exponent? | integer exponent
fractional::= integer? '.' integer | integer '.'
exponent::= ( 'e' | 'E' ) sign? integer
sign::= '+'| '-'
integer::= [0-9]+


####draw:glue-points:

Ed. Note We refer to “indexing” the draw:modifiers attribute but at that
attribute we don't specify a format that permits indexing.

gluepoints::= gluepointsequence?
gluepointsequence::= gluepoint ( ' '+ gluepointsequence )*
glue-point::= position ' '+ position
position::= formula | modifier | number
formula::= '?' name
modifier::= '$' integer
number::= sign? float | sign? integer
float::= fractional exponent? | integer exponent
fractional::= integer? '.' integer | integer '.'
exponent::= ( 'e' | 'E' ) sign? integer
sign::= '+'| '-'
integer::= [0-9]+
name ::= [^ ]+

####draw:mirror-horizontal:
####draw:mirror-vertical

Ed. Note Are draw:mirror-horizontal and draw:mirror-vertical only
meaningful if set together? We don't say that but it seems to be implied.

####draw:path-stretchpoint-x:
####draw:path-stretchpoint-Y:

Ed. Note We don't say if both draw:path-stretchpoint-x and
draw:path-stretchpoint-y must both be present or it is an error. It is
implied but not

stated.

It doesn't matter at all, both values are having a default value, so it
is sufficient to write only values which differ from the default.

####draw:modifiers:

Ed. Note We don't define this “list” of values. Whitespace separated?
Isn't that a string, not a list?

example: draw:modifiers="4250 45000 4000"

modifiers::= numbersequence?
numbersequence::= number ( ' '+ numbersequence )*
number::= sign? float | sign? integer
float::= fractional exponent? | integer exponent
fractional::= integer? '.' integer | integer '.'
exponent::= ( 'e' | 'E' ) sign? integer
sign::= '+'| '-'
integer::= [0-9]+


####draw:text-areas:

Ed. Note As defined, the attribute is inconsistent and incomplete. It
starts by saying we define a list of text areas. Then it says what
happens if a

second text area is present. Then we define how to define a text area.
As a string? So, we don't have a list, or at least no mechanism for one,
possibly

assume up to two text areas, and don't define what values define a text
area.



I hope following ebnf syntax solves every problem:

textareas::= textareasequence?
textareasequence ::= textarea ( ' '+ textareasequence )*
textarea::= position ' '+ position ' '+ position ' '+ position
position::= formula | modifier | number
formula::= '?' name
modifier::= '$' integer
number::= sign? float | sign? integer
float::= fractional exponent? | integer exponent
fractional::= integer? '.' integer | integer '.'
exponent::= ( 'e' | 'E' ) sign? integer
sign::= '+'| '-'
integer::= [0-9]+
name ::= [^ ]+

####draw:text-path-allowed

Ed. Note We don't define Fontwork object.

Maybe we should replace the existing description with following:
The draw:text-path-allowed attribute specifies if it is allowed to
render text of the shape using the draw:text-path attribute, or if only
the normal text engine should be used.

####draw:handle-position

Ed. Note Consider an EBNF, although I am not sure it would help. It
would be helpful to know if there was some more standard way to reach
the same
results as with the “enhancements.”


handleposition ::= position ' '+ position
position::= formula | modifier | constant | number
formula::= '?' name
modifier::= '$' integer
constant::= 'left' | 'top' | 'right' | 'bottom' |
'xstretch' | 'ystretch' | 'hasstroke' | 'hasfill ' |
'width' | 'height' | 'logwidth' | 'logheight'
number::=sign? float | sign? integer
float::= fractional exponent? | integer exponent
fractional::= integer? '.' integer | integer '.'
exponent::= ( 'e' | 'E' ) sign? integer
sign::= '+'| '-'
integer::= [0-9]+
name ::= [^ ]+

-- 
Michael Brauer, Technical Architect Software Engineering
StarOffice/OpenOffice.org
Sun Microsystems GmbH             Nagelsweg 55
D-20097 Hamburg, Germany          michael.brauer@sun.com
http://sun.com/staroffice         +49 40 23646 500
http://blogs.sun.com/GullFOSS

Sitz der Gesellschaft: Sun Microsystems GmbH, Sonnenallee 1,
	   D-85551 Kirchheim-Heimstetten
Amtsgericht Muenchen: HRB 161028
Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels, Dr. Roland Boemer
Vorsitzender des Aufsichtsrates: Martin Haering



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]