writing attribute style:background-transparency

classic Classic list List threaded Threaded
8 messages Options
Regina Henschel Regina Henschel
Reply | Threaded
Open this post in threaded view
|

writing attribute style:background-transparency

Hi all,

the ODF TC is going to discuss issue OFFICE-3770 [1], which is about the
attribute style:background-transparency. I'm trying to generate a
document by LibreOffice, in which this attribute is used. But in all my
tries I always get draw:opacity or draw:opacity-name (in case of gradient).

Do you know a situation where LibreOffice writes the attribute
style:background-transparency ?

Kind regards
Regina

[1] https://issues.oasis-open.org/browse/OFFICE-3770
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Thorsten Behrens-6 Thorsten Behrens-6
Reply | Threaded
Open this post in threaded view
|

Re: writing attribute style:background-transparency

Hi Regina,

you wrote:
> Do you know a situation where LibreOffice writes the attribute
> style:background-transparency ?
>
lotuswordpro/source/filter/xfilter/xfframestyle.cxx does - and perhaps
other libs from DLP do as well?

But it's curiously missing from anything related to xmloff...

Cheers,

-- Thorsten

_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice

signature.asc (968 bytes) Download Attachment
Fridrich Strba-3 Fridrich Strba-3
Reply | Threaded
Open this post in threaded view
|

Re: writing attribute style:background-transparency

On 22/09/16 00:58, Thorsten Behrens wrote:
> Hi Regina,
>
> you wrote:
>> Do you know a situation where LibreOffice writes the attribute
>> style:background-transparency ?
>>
> lotuswordpro/source/filter/xfilter/xfframestyle.cxx does - and perhaps
> other libs from DLP do as well?

For the while, the only background-* variable that is relevant to
transparency/opacity that DLP libraries -- at least those that I
maintain -- write is fo:background-opacity for text. Obviously, this
does not work and is happily ignored :)

Cheers

F.


--
Please avoid sending me Word, Excel or PowerPoint attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html


_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice

signature.asc (937 bytes) Download Attachment
Armin Le Grand-2 Armin Le Grand-2
Reply | Threaded
Open this post in threaded view
|

Re: writing attribute style:background-transparency

In reply to this post by Regina Henschel
Hi Regina,

tried, but could not create one (tried frames in SW, too).

Might have to do with the change of SW FillStyle/Transparency attributes
to the full Draw ItemSet. These get written with the same attributes as
for draw objects, but before the change that attribute might have been
used. It would be loaded and converted at import, though.

Thus, might be if you use an older version which had not that change and
insert a frame and set transparency, but no guarantees


HTH!
ALG


Am 21.09.2016 um 19:36 schrieb Regina Henschel:

> Hi all,
>
> the ODF TC is going to discuss issue OFFICE-3770 [1], which is about
> the attribute style:background-transparency. I'm trying to generate a
> document by LibreOffice, in which this attribute is used. But in all
> my tries I always get draw:opacity or draw:opacity-name (in case of
> gradient).
>
> Do you know a situation where LibreOffice writes the attribute
> style:background-transparency ?
>
> Kind regards
> Regina
>
> [1] https://issues.oasis-open.org/browse/OFFICE-3770
> _______________________________________________
> LibreOffice mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/libreoffice

--
--
ALG (PGP Key: EE1C 4B3F E751 D8BC C485 DEC1 3C59 F953 D81C F4A2)

_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Regina Henschel Regina Henschel
Reply | Threaded
Open this post in threaded view
|

Re: writing attribute style:background-transparency

Hi Armin,

Armin Le Grand schrieb:

> Hi Regina,
>
> tried, but could not create one (tried frames in SW, too).
>
> Might have to do with the change of SW FillStyle/Transparency attributes
> to the full Draw ItemSet. These get written with the same attributes as
> for draw objects, but before the change that attribute might have been
> used. It would be loaded and converted at import, though.
>
> Thus, might be if you use an older version which had not that change and
> insert a frame and set transparency, but no guarantees

Direct hit :)

AOO 3.4.1 writes a style:background-transparency for a Writer frame with
background color and transparency. LibreOffice 5.3 writes
style:background-transparency too, but in addition it writes draw:fill,
draw:fill-color and draw:opacity.

LibreOffice writes draw:fill, draw:fill-color and draw:opacity too in
style:page-layout-properties, however there without
style:background-transparency. But for draw:fill, draw:fill-color and
draw:opacity it is the same problem as for
style:background-transparency: It is not allowed in
style:page-layout-properties.

So my conclusion is, that a transparent property for page background is
indeed needed. But I would suggest not to extend the
style:background-transparency, but the draw:xyz attributes, because they
are richer and already used in LibreOffice.

Kind regards
Regina


>
>
> HTH!
> ALG
>
>
> Am 21.09.2016 um 19:36 schrieb Regina Henschel:
>> Hi all,
>>
>> the ODF TC is going to discuss issue OFFICE-3770 [1], which is about
>> the attribute style:background-transparency. I'm trying to generate a
>> document by LibreOffice, in which this attribute is used. But in all
>> my tries I always get draw:opacity or draw:opacity-name (in case of
>> gradient).
>>
>> Do you know a situation where LibreOffice writes the attribute
>> style:background-transparency ?
>>
>> Kind regards
>> Regina
>>
>> [1] https://issues.oasis-open.org/browse/OFFICE-3770
>> _______________________________________________
>> LibreOffice mailing list
>> [hidden email]
>> https://lists.freedesktop.org/mailman/listinfo/libreoffice
>

_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Michael Stahl-2 Michael Stahl-2
Reply | Threaded
Open this post in threaded view
|

ODF 1.3 and fancy-draw-fillstyles (was: Re: writing attribute style:background-transparency)

On 23.09.2016 00:40, Regina Henschel wrote:

> Hi Armin,
>
> Armin Le Grand schrieb:
>> Hi Regina,
>>
>> tried, but could not create one (tried frames in SW, too).
>>
>> Might have to do with the change of SW FillStyle/Transparency attributes
>> to the full Draw ItemSet. These get written with the same attributes as
>> for draw objects, but before the change that attribute might have been
>> used. It would be loaded and converted at import, though.
>>
>> Thus, might be if you use an older version which had not that change and
>> insert a frame and set transparency, but no guarantees
>
> Direct hit :)
>
> AOO 3.4.1 writes a style:background-transparency for a Writer frame with
> background color and transparency. LibreOffice 5.3 writes
> style:background-transparency too, but in addition it writes draw:fill,
> draw:fill-color and draw:opacity.
>
> LibreOffice writes draw:fill, draw:fill-color and draw:opacity too in
> style:page-layout-properties, however there without
> style:background-transparency. But for draw:fill, draw:fill-color and
> draw:opacity it is the same problem as for
> style:background-transparency: It is not allowed in
> style:page-layout-properties.

i wasn't aware of this problem, so <style:page-layout-properties>
appears to have the same issue as <style:paragraph-properties>, which we
discuss below.

> So my conclusion is, that a transparent property for page background is
> indeed needed. But I would suggest not to extend the
> style:background-transparency, but the draw:xyz attributes, because they
> are richer and already used in LibreOffice.

thanks for bringing up this topic, it reminded me of something on my
todo-list...

unfortunately ODF has 2 sets of attributes for "backgrounds", i'm
calling them the "writer-legacy-backgrounds" and the
"fancy-draw-fillstyles" - this is presumably a result of the 2 different
implementations from StarOffice.

it turns out that the "fancy-draw-fillstyles" are more expressive than
the "writer-legacy-backgrounds", so Armin refactored Writer to use these
natively, and only create the "writer-legacy-backgrounds" as an
emulation in the UNO API for backwards compatibility and to export them
to ODF.

the ODF 1.2 <style:paragraph-properties> element allows for only the
"writer-legacy-backgrounds" attributes, but the
<style:graphics-properties> element allows both sets of attributes.

obviously the "writer-legacy-backgrounds" were never produced by
anything other than Writer.

the "writer-legacy-backgrounds" confusingly have 2 different attributes
for transparency, the "style:background-transparency" is applied if
there is a background color while there is a nested element like
<style:background-image draw:opacity="75%"> to apply transparency to an
image.

now the problem is that current LO Writer will produce the
"fancy-draw-fillstyles" also for paragraph styles (and the UI is based
around them too) but it's not allowed in ODF 1.2 so we write foreign
<loext:graphic-properties> element.

so i guess in ODF 1.3 we either need to add the
<style:graphic-properties> to paragraph styles, or add the
"fancy-draw-fillstyles" attributes to <style:paragraph-properties>.

currently the <style:graphic-properties> has a lot of attributes:

> 17.21 <style:graphic-properties>
>
> The <style:graphic-properties> element specifies formatting properties for chart, draw, graphic, and frame elements.
>
> The <style:graphic-properties> element is usable within the following elements: <style:default-style> 16.4 and <style:style> 16.2.
>
> The <style:graphic-properties> element has the following attributes:
> dr3d:ambient-color 20.67,
> dr3d:backface-culling 20.69,
> dr3d:back-scale 20.68,
> dr3d:close-back 20.70,
> dr3d:close-front 20.71,
> dr3d:depth 20.72,
> dr3d:diffuse-color 20.73,
> dr3d:edge-rounding 20.74,
> dr3d:edge-rounding-mode 20.75,
> dr3d:emissive-color 20.76,
> dr3d:end-angle 20.77,
> dr3d:horizontal-segments 20.78,
> dr3d:lighting-mode 20.79,
> dr3d:normals-direction 20.80,
> dr3d:normals-kind 20.81,
> dr3d:shadow 20.82,
> dr3d:shininess 20.83,
> dr3d:specular-color 20.84,
> dr3d:texture-filter 20.85,
> dr3d:texture-generation-mode-x 20.88,
> dr3d:texture-generation-mode-y 20.89,
> dr3d:texture-kind 20.86,
> dr3d:texture-mode 20.87,
> dr3d:vertical-segments 20.90,
> draw:auto-grow-height 20.91,
> draw:auto-grow-width 20.92,
> draw:blue 20.94,
> draw:caption-angle 20.95,
> draw:caption-angle-type 20.96,
> draw:caption-escape 20.97,
> draw:caption-escape-direction 20.98,
> draw:caption-fit-line-length 20.99,
> draw:caption-gap 20.100,
> draw:caption-line-length 20.101,
> draw:caption-type 20.102,
> draw:color-inversion 20.103,
> draw:color-mode 20.104,
> draw:contrast 20.105,
> draw:decimal-places 20.106,
> draw:draw-aspect 20.107,
> draw:end-guide 20.108,
> draw:end-line-spacing-horizontal 20.109,
> draw:end-line-spacing-vertical 20.110,
> * draw:fill 20.111,
> * draw:fill-color 20.112,
> * draw:fill-gradient-name 20.113,
> * draw:fill-hatch-name 20.114,
> * draw:fill-hatch-solid 20.115,
> * draw:fill-image-height 20.116,
> * draw:fill-image-name 20.117,
> * draw:fill-image-ref-point 20.118,
> * draw:fill-image-ref-point-x 20.119,
> * draw:fill-image-ref-point-y 20.120,
> * draw:fill-image-width 20.121,
> draw:fit-to-contour 20.122,
> draw:fit-to-size 20.123,
> draw:frame-display-border 20.124,
> draw:frame-display-scrollbar 20.126,
> draw:frame-margin-horizontal 20.125,
> draw:frame-margin-vertical 20.127,
> draw:gamma 20.128,
> * draw:gradient-step-count 20.130,
> draw:green 20.129,
> draw:guide-distance 20.131,
> draw:guide-overhang 20.132,
> draw:image-opacity 20.133,
> draw:line-distance 20.134,
> draw:luminance 20.135,
> draw:marker-end 20.136,
> draw:marker-end-center 20.137,
> draw:marker-end-width 20.138,
> draw:marker-start 20.139,
> draw:marker-start-center 20.140,
> draw:marker-start-width 20.141,
> draw:measure-align 20.142,
> draw:measure-vertical-align 20.143,
> draw:ole-draw-aspect 20.144,
> * draw:opacity 20.145,
> * draw:opacity-name 20.146,
> draw:parallel 20.147,
> draw:placing 20.148,
> draw:red 20.149,
> * draw:secondary-fill-color 20.150,
> draw:shadow 20.151,
> draw:shadow-color 20.152,
> draw:shadow-offset-x 20.153,
> draw:shadow-offset-y 20.154,
> draw:shadow-opacity 20.155,
> draw:show-unit 20.156,
> draw:start-guide 20.157,
> draw:start-line-spacing-horizontal 20.158,
> draw:start-line-spacing-vertical 20.159,
> draw:stroke 20.160,
> draw:stroke-dash 20.161,
> draw:stroke-dash-names 20.162,
> draw:stroke-linejoin 20.163,
> draw:symbol-color 20.165,
> draw:textarea-horizontal-align 20.166,
> draw:textarea-vertical-align 20.167,
> * draw:tile-repeat-offset 20.168,
> draw:unit 20.173,
> draw:visible-area-height 20.169,
> draw:visible-area-left 20.170,
> draw:visible-area-top 20.171,
> draw:visible-area-width 20.172,
> draw:wrap-influence-on-position 20.174,
> fo:background-color 20.175,
> fo:border 20.176.2,
> fo:border-bottom 20.176.3,
> fo:border-left 20.176.4,
> fo:border-right 20.176.5,
> fo:border-top 20.176.6,
> fo:clip 20.179,
> fo:margin 20.198,
> fo:margin-bottom 20.199,
> fo:margin-left 20.200,
> fo:margin-right 20.201,
> fo:margin-top 20.202,
> fo:max-height 20.203,
> fo:max-width 20.204,
> fo:min-height 20.205.1,
> fo:min-width 20.206,
> fo:padding 20.210,
> fo:padding-bottom 20.211,
> fo:padding-left 20.212,
> fo:padding-right 20.213,
> fo:padding-top 20.214,
> fo:wrap-option 20.223,
> style:background-transparency 20.240,
> style:border-line-width 20.241,
> style:border-line-width-bottom 20.242,
> style:border-line-width-left 20.243,
> style:border-line-width-right 20.244,
> style:border-line-width-top 20.245,
> style:editable 20.257,
> style:flow-with-text 20.259,
> style:horizontal-pos 20.290,
> style:horizontal-rel 20.291,
> style:mirror 20.313,
> style:number-wrapped-paragraphs 20.318,
> style:overflow-behavior 20.319,
> style:print-content 20.323.2,
> style:protect 20.326.2,
> style:rel-height 20.331,
> style:rel-width 20.332.1,
> * style:repeat 20.333,
> style:run-through 20.343,
> style:shadow 20.349,
> style:shrink-to-fit 20.350,
> style:vertical-pos 20.387,
> style:vertical-rel 20.388,
> style:wrap 20.390,
> style:wrap-contour 20.391,
> style:wrap-contour-mode 20.392,
> style:wrap-dynamic-threshold 20.393,
> style:writing-mode 20.394.2,
> svg:fill-rule 20.396,
> svg:height 20.397.1,
> svg:stroke-color 20.398,
> svg:stroke-linecap 20.164,
> svg:stroke-opacity 20.399,
> svg:stroke-width 20.400,
> svg:width 20.403,
> svg:x 20.401,
> svg:y 20.402.1,
> text:anchor-page-number 20.407,
> text:anchor-type 20.408,
> text:animation 20.409,
> text:animation-delay 20.410,
> text:animation-direction 20.411,
> text:animation-repeat 20.412,
> text:animation-start-inside 20.413,
> text:animation-steps 20.414 and text:animation-stop-inside 20.415.
>
> The <style:graphic-properties> element has the following child elements:
> <style:background-image> 17.3,
> <style:columns> 17.12 and <text:list-style> 16.30.

i've marked the ones we actually want on paragraphs with a "*".

FillProperties.idl also has "GraphicCrop" property corresponding to
"fo:clip" but it appears not to be implemented on paragraphs.

i notice that if i insert a text box drawing object it has additional
tabs Gradients, Hatching, Bitmap, Patterns with extra options, but
Format->Paragraph only has Area / Transparency.  is that features we
don't want to support, or just currently incomplete?

now the ODF 1.2 schema already contains this:

> <define name="style-graphic-fill-properties-attlist">
> <interleave>
> <optional>
> <attribute name="draw:fill">
> <choice>
> <value>none</value>
> <value>solid</value>
> <value>bitmap</value>
> <value>gradient</value>
> <value>hatch</value>
> </choice>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:fill-color">
> <ref name="color"/>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:secondary-fill-color">
> <ref name="color"/>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:fill-gradient-name">
> <ref name="styleNameRef"/>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:gradient-step-count">
> <ref name="nonNegativeInteger"/>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:fill-hatch-name">
> <ref name="styleNameRef"/>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:fill-hatch-solid">
> <ref name="boolean"/>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:fill-image-name">
> <ref name="styleNameRef"/>
> </attribute>
> </optional>
> <optional>
> <attribute name="style:repeat">
> <choice>
> <value>no-repeat</value>
> <value>repeat</value>
> <value>stretch</value>
> </choice>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:fill-image-width">
> <choice>
> <ref name="length"/>
> <ref name="percent"/>
> </choice>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:fill-image-height">
> <choice>
> <ref name="length"/>
> <ref name="percent"/>
> </choice>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:fill-image-ref-point-x">
> <ref name="percent"/>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:fill-image-ref-point-y">
> <ref name="percent"/>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:fill-image-ref-point">
> <choice>
> <value>top-left</value>
> <value>top</value>
> <value>top-right</value>
> <value>left</value>
> <value>center</value>
> <value>right</value>
> <value>bottom-left</value>
> <value>bottom</value>
> <value>bottom-right</value>
> </choice>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:tile-repeat-offset">
> <list>
> <ref name="zeroToHundredPercent"/>
> <choice>
> <value>horizontal</value>
> <value>vertical</value>
> </choice>
> </list>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:opacity">
> <ref name="zeroToHundredPercent"/>
> </attribute>
> </optional>
> <optional>
> <attribute name="draw:opacity-name">
> <ref name="styleNameRef"/>
> </attribute>
> </optional>
> <optional>
> <attribute name="svg:fill-rule">
> <choice>
> <value>nonzero</value>
> <value>evenodd</value>
> </choice>
> </attribute>
> </optional>
> </interleave>
> </define>

that's quite nice, all the attributes we need, plus an additional
"svg:fill-rule", not sure what that is.

so back to the <style:page-layout-properties>: indeed it doesn't allow
the "fancy-draw-fillstyles", and the current implementation in LO is
gratuitously different from the paragraph styles: for page layouts, the
attributes are added to <style:page-layout-properties>, or to
<style:header-footer-properties> for the header/footer, but for
paragraph styles there is a separate <loext:graphic-properties> element
for the attributes - some consistency would be nice.

... ok, was there anything i've missed?


_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Armin Le Grand-2 Armin Le Grand-2
Reply | Threaded
Open this post in threaded view
|

Re: writing attribute style:background-transparency

In reply to this post by Regina Henschel
Hi Regina,


Am 23.09.2016 um 00:40 schrieb Regina Henschel:

> Hi Armin,
>
> Armin Le Grand schrieb:
>> Hi Regina,
>>
>> tried, but could not create one (tried frames in SW, too).
>>
>> Might have to do with the change of SW FillStyle/Transparency attributes
>> to the full Draw ItemSet. These get written with the same attributes as
>> for draw objects, but before the change that attribute might have been
>> used. It would be loaded and converted at import, though.
>>
>> Thus, might be if you use an older version which had not that change and
>> insert a frame and set transparency, but no guarantees
>
> Direct hit :)
>
> AOO 3.4.1 writes a style:background-transparency for a Writer frame
> with background color and transparency. LibreOffice 5.3 writes
> style:background-transparency too, but in addition it writes
> draw:fill, draw:fill-color and draw:opacity.

Yes, this is to have some backward compatibility. This means that the
'old' style to safe it might be removed in the future, but the new ones
will stay. The new ones are the same as complete draw/fill style for
graphic objects, thus unifying that stuff.

HTH!

>
> LibreOffice writes draw:fill, draw:fill-color and draw:opacity too in
> style:page-layout-properties, however there without
> style:background-transparency. But for draw:fill, draw:fill-color and
> draw:opacity it is the same problem as for
> style:background-transparency: It is not allowed in
> style:page-layout-properties.
>
> So my conclusion is, that a transparent property for page background
> is indeed needed. But I would suggest not to extend the
> style:background-transparency, but the draw:xyz attributes, because
> they are richer and already used in LibreOffice.
>
> Kind regards
> Regina
>
>
>>
>>
>> HTH!
>> ALG
>>
>>
>> Am 21.09.2016 um 19:36 schrieb Regina Henschel:
>>> Hi all,
>>>
>>> the ODF TC is going to discuss issue OFFICE-3770 [1], which is about
>>> the attribute style:background-transparency. I'm trying to generate a
>>> document by LibreOffice, in which this attribute is used. But in all
>>> my tries I always get draw:opacity or draw:opacity-name (in case of
>>> gradient).
>>>
>>> Do you know a situation where LibreOffice writes the attribute
>>> style:background-transparency ?
>>>
>>> Kind regards
>>> Regina
>>>
>>> [1] https://issues.oasis-open.org/browse/OFFICE-3770
>>> _______________________________________________
>>> LibreOffice mailing list
>>> [hidden email]
>>> https://lists.freedesktop.org/mailman/listinfo/libreoffice
>>
>
> _______________________________________________
> LibreOffice mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/libreoffice

--
--
ALG (PGP Key: EE1C 4B3F E751 D8BC C485 DEC1 3C59 F953 D81C F4A2)

_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Armin Le Grand-2 Armin Le Grand-2
Reply | Threaded
Open this post in threaded view
|

Re: ODF 1.3 and fancy-draw-fillstyles

In reply to this post by Michael Stahl-2
Hi,

Am 23.09.2016 um 15:00 schrieb Michael Stahl:

> On 23.09.2016 00:40, Regina Henschel wrote:
>> Hi Armin,
>>
>> Armin Le Grand schrieb:
>>> Hi Regina,
>>>
>>> tried, but could not create one (tried frames in SW, too).
>>>
>>> Might have to do with the change of SW FillStyle/Transparency attributes
>>> to the full Draw ItemSet. These get written with the same attributes as
>>> for draw objects, but before the change that attribute might have been
>>> used. It would be loaded and converted at import, though.
>>>
>>> Thus, might be if you use an older version which had not that change and
>>> insert a frame and set transparency, but no guarantees
>> Direct hit :)
>>
>> AOO 3.4.1 writes a style:background-transparency for a Writer frame with
>> background color and transparency. LibreOffice 5.3 writes
>> style:background-transparency too, but in addition it writes draw:fill,
>> draw:fill-color and draw:opacity.
>>
>> LibreOffice writes draw:fill, draw:fill-color and draw:opacity too in
>> style:page-layout-properties, however there without
>> style:background-transparency. But for draw:fill, draw:fill-color and
>> draw:opacity it is the same problem as for
>> style:background-transparency: It is not allowed in
>> style:page-layout-properties.
> i wasn't aware of this problem, so <style:page-layout-properties>
> appears to have the same issue as <style:paragraph-properties>, which we
> discuss below.
>
>> So my conclusion is, that a transparent property for page background is
>> indeed needed. But I would suggest not to extend the
>> style:background-transparency, but the draw:xyz attributes, because they
>> are richer and already used in LibreOffice.
> thanks for bringing up this topic, it reminded me of something on my
> todo-list...
>
> unfortunately ODF has 2 sets of attributes for "backgrounds", i'm
> calling them the "writer-legacy-backgrounds" and the
> "fancy-draw-fillstyles" - this is presumably a result of the 2 different
> implementations from StarOffice.
>
> it turns out that the "fancy-draw-fillstyles" are more expressive than
> the "writer-legacy-backgrounds", so Armin refactored Writer to use these
> natively, and only create the "writer-legacy-backgrounds" as an
> emulation in the UNO API for backwards compatibility and to export them
> to ODF.
>
> the ODF 1.2 <style:paragraph-properties> element allows for only the
> "writer-legacy-backgrounds" attributes, but the
> <style:graphics-properties> element allows both sets of attributes.
>
> obviously the "writer-legacy-backgrounds" were never produced by
> anything other than Writer.
>
> the "writer-legacy-backgrounds" confusingly have 2 different attributes
> for transparency, the "style:background-transparency" is applied if
> there is a background color while there is a nested element like
> <style:background-image draw:opacity="75%"> to apply transparency to an
> image.
>
> now the problem is that current LO Writer will produce the
> "fancy-draw-fillstyles" also for paragraph styles (and the UI is based
> around them too) but it's not allowed in ODF 1.2 so we write foreign
> <loext:graphic-properties> element.
>
> so i guess in ODF 1.3 we either need to add the
> <style:graphic-properties> to paragraph styles, or add the
> "fancy-draw-fillstyles" attributes to <style:paragraph-properties>.

Yes - having the full draw object FillStyle set (which includes
transparencies) is good and unifies that AttributeSet.

>
> currently the <style:graphic-properties> has a lot of attributes:
>
>> 17.21 <style:graphic-properties>
>>
>> The <style:graphic-properties> element specifies formatting properties for chart, draw, graphic, and frame elements.
>>
>> The <style:graphic-properties> element is usable within the following elements: <style:default-style> 16.4 and <style:style> 16.2.
>>
>> The <style:graphic-properties> element has the following attributes:
>> dr3d:ambient-color 20.67,
>> dr3d:backface-culling 20.69,
>> dr3d:back-scale 20.68,
>> dr3d:close-back 20.70,
>> dr3d:close-front 20.71,
>> dr3d:depth 20.72,
>> dr3d:diffuse-color 20.73,
>> dr3d:edge-rounding 20.74,
>> dr3d:edge-rounding-mode 20.75,
>> dr3d:emissive-color 20.76,
>> dr3d:end-angle 20.77,
>> dr3d:horizontal-segments 20.78,
>> dr3d:lighting-mode 20.79,
>> dr3d:normals-direction 20.80,
>> dr3d:normals-kind 20.81,
>> dr3d:shadow 20.82,
>> dr3d:shininess 20.83,
>> dr3d:specular-color 20.84,
>> dr3d:texture-filter 20.85,
>> dr3d:texture-generation-mode-x 20.88,
>> dr3d:texture-generation-mode-y 20.89,
>> dr3d:texture-kind 20.86,
>> dr3d:texture-mode 20.87,
>> dr3d:vertical-segments 20.90,
>> draw:auto-grow-height 20.91,
>> draw:auto-grow-width 20.92,
>> draw:blue 20.94,
>> draw:caption-angle 20.95,
>> draw:caption-angle-type 20.96,
>> draw:caption-escape 20.97,
>> draw:caption-escape-direction 20.98,
>> draw:caption-fit-line-length 20.99,
>> draw:caption-gap 20.100,
>> draw:caption-line-length 20.101,
>> draw:caption-type 20.102,
>> draw:color-inversion 20.103,
>> draw:color-mode 20.104,
>> draw:contrast 20.105,
>> draw:decimal-places 20.106,
>> draw:draw-aspect 20.107,
>> draw:end-guide 20.108,
>> draw:end-line-spacing-horizontal 20.109,
>> draw:end-line-spacing-vertical 20.110,
>> * draw:fill 20.111,
>> * draw:fill-color 20.112,
>> * draw:fill-gradient-name 20.113,
>> * draw:fill-hatch-name 20.114,
>> * draw:fill-hatch-solid 20.115,
>> * draw:fill-image-height 20.116,
>> * draw:fill-image-name 20.117,
>> * draw:fill-image-ref-point 20.118,
>> * draw:fill-image-ref-point-x 20.119,
>> * draw:fill-image-ref-point-y 20.120,
>> * draw:fill-image-width 20.121,
>> draw:fit-to-contour 20.122,
>> draw:fit-to-size 20.123,
>> draw:frame-display-border 20.124,
>> draw:frame-display-scrollbar 20.126,
>> draw:frame-margin-horizontal 20.125,
>> draw:frame-margin-vertical 20.127,
>> draw:gamma 20.128,
>> * draw:gradient-step-count 20.130,
>> draw:green 20.129,
>> draw:guide-distance 20.131,
>> draw:guide-overhang 20.132,
>> draw:image-opacity 20.133,
>> draw:line-distance 20.134,
>> draw:luminance 20.135,
>> draw:marker-end 20.136,
>> draw:marker-end-center 20.137,
>> draw:marker-end-width 20.138,
>> draw:marker-start 20.139,
>> draw:marker-start-center 20.140,
>> draw:marker-start-width 20.141,
>> draw:measure-align 20.142,
>> draw:measure-vertical-align 20.143,
>> draw:ole-draw-aspect 20.144,
>> * draw:opacity 20.145,
>> * draw:opacity-name 20.146,
>> draw:parallel 20.147,
>> draw:placing 20.148,
>> draw:red 20.149,
>> * draw:secondary-fill-color 20.150,
>> draw:shadow 20.151,
>> draw:shadow-color 20.152,
>> draw:shadow-offset-x 20.153,
>> draw:shadow-offset-y 20.154,
>> draw:shadow-opacity 20.155,
>> draw:show-unit 20.156,
>> draw:start-guide 20.157,
>> draw:start-line-spacing-horizontal 20.158,
>> draw:start-line-spacing-vertical 20.159,
>> draw:stroke 20.160,
>> draw:stroke-dash 20.161,
>> draw:stroke-dash-names 20.162,
>> draw:stroke-linejoin 20.163,
>> draw:symbol-color 20.165,
>> draw:textarea-horizontal-align 20.166,
>> draw:textarea-vertical-align 20.167,
>> * draw:tile-repeat-offset 20.168,
>> draw:unit 20.173,
>> draw:visible-area-height 20.169,
>> draw:visible-area-left 20.170,
>> draw:visible-area-top 20.171,
>> draw:visible-area-width 20.172,
>> draw:wrap-influence-on-position 20.174,
>> fo:background-color 20.175,
>> fo:border 20.176.2,
>> fo:border-bottom 20.176.3,
>> fo:border-left 20.176.4,
>> fo:border-right 20.176.5,
>> fo:border-top 20.176.6,
>> fo:clip 20.179,
>> fo:margin 20.198,
>> fo:margin-bottom 20.199,
>> fo:margin-left 20.200,
>> fo:margin-right 20.201,
>> fo:margin-top 20.202,
>> fo:max-height 20.203,
>> fo:max-width 20.204,
>> fo:min-height 20.205.1,
>> fo:min-width 20.206,
>> fo:padding 20.210,
>> fo:padding-bottom 20.211,
>> fo:padding-left 20.212,
>> fo:padding-right 20.213,
>> fo:padding-top 20.214,
>> fo:wrap-option 20.223,
>> style:background-transparency 20.240,
>> style:border-line-width 20.241,
>> style:border-line-width-bottom 20.242,
>> style:border-line-width-left 20.243,
>> style:border-line-width-right 20.244,
>> style:border-line-width-top 20.245,
>> style:editable 20.257,
>> style:flow-with-text 20.259,
>> style:horizontal-pos 20.290,
>> style:horizontal-rel 20.291,
>> style:mirror 20.313,
>> style:number-wrapped-paragraphs 20.318,
>> style:overflow-behavior 20.319,
>> style:print-content 20.323.2,
>> style:protect 20.326.2,
>> style:rel-height 20.331,
>> style:rel-width 20.332.1,
>> * style:repeat 20.333,
>> style:run-through 20.343,
>> style:shadow 20.349,
>> style:shrink-to-fit 20.350,
>> style:vertical-pos 20.387,
>> style:vertical-rel 20.388,
>> style:wrap 20.390,
>> style:wrap-contour 20.391,
>> style:wrap-contour-mode 20.392,
>> style:wrap-dynamic-threshold 20.393,
>> style:writing-mode 20.394.2,
>> svg:fill-rule 20.396,
>> svg:height 20.397.1,
>> svg:stroke-color 20.398,
>> svg:stroke-linecap 20.164,
>> svg:stroke-opacity 20.399,
>> svg:stroke-width 20.400,
>> svg:width 20.403,
>> svg:x 20.401,
>> svg:y 20.402.1,
>> text:anchor-page-number 20.407,
>> text:anchor-type 20.408,
>> text:animation 20.409,
>> text:animation-delay 20.410,
>> text:animation-direction 20.411,
>> text:animation-repeat 20.412,
>> text:animation-start-inside 20.413,
>> text:animation-steps 20.414 and text:animation-stop-inside 20.415.
>>
>> The <style:graphic-properties> element has the following child elements:
>> <style:background-image> 17.3,
>> <style:columns> 17.12 and <text:list-style> 16.30.
> i've marked the ones we actually want on paragraphs with a "*".
>
> FillProperties.idl also has "GraphicCrop" property corresponding to
> "fo:clip" but it appears not to be implemented on paragraphs.

Yes, no crop yet - and I see no useful usage in the Writer area (yet).

>
> i notice that if i insert a text box drawing object it has additional
> tabs Gradients, Hatching, Bitmap, Patterns with extra options, but
> Format->Paragraph only has Area / Transparency.  is that features we
> don't want to support, or just currently incomplete?

It is completely supported, in the 'Area' TabPage, choose any FillStyle
for the Area, including, Color, Gradients, Hatch and Graphics ('Bitmap'
should not be used since that FillStyle can use *any* Graphic including
Metafile and SVG supporting Pixel-free, scalable fills, so better call
it 'Graphic').

>
> now the ODF 1.2 schema already contains this:
>
>> <define name="style-graphic-fill-properties-attlist">
>> <interleave>
>> <optional>
>> <attribute name="draw:fill">
>> <choice>
>> <value>none</value>
>> <value>solid</value>
>> <value>bitmap</value>
>> <value>gradient</value>
>> <value>hatch</value>
>> </choice>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:fill-color">
>> <ref name="color"/>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:secondary-fill-color">
>> <ref name="color"/>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:fill-gradient-name">
>> <ref name="styleNameRef"/>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:gradient-step-count">
>> <ref name="nonNegativeInteger"/>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:fill-hatch-name">
>> <ref name="styleNameRef"/>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:fill-hatch-solid">
>> <ref name="boolean"/>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:fill-image-name">
>> <ref name="styleNameRef"/>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="style:repeat">
>> <choice>
>> <value>no-repeat</value>
>> <value>repeat</value>
>> <value>stretch</value>
>> </choice>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:fill-image-width">
>> <choice>
>> <ref name="length"/>
>> <ref name="percent"/>
>> </choice>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:fill-image-height">
>> <choice>
>> <ref name="length"/>
>> <ref name="percent"/>
>> </choice>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:fill-image-ref-point-x">
>> <ref name="percent"/>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:fill-image-ref-point-y">
>> <ref name="percent"/>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:fill-image-ref-point">
>> <choice>
>> <value>top-left</value>
>> <value>top</value>
>> <value>top-right</value>
>> <value>left</value>
>> <value>center</value>
>> <value>right</value>
>> <value>bottom-left</value>
>> <value>bottom</value>
>> <value>bottom-right</value>
>> </choice>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:tile-repeat-offset">
>> <list>
>> <ref name="zeroToHundredPercent"/>
>> <choice>
>> <value>horizontal</value>
>> <value>vertical</value>
>> </choice>
>> </list>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:opacity">
>> <ref name="zeroToHundredPercent"/>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="draw:opacity-name">
>> <ref name="styleNameRef"/>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="svg:fill-rule">
>> <choice>
>> <value>nonzero</value>
>> <value>evenodd</value>
>> </choice>
>> </attribute>
>> </optional>
>> </interleave>
>> </define>
> that's quite nice, all the attributes we need, plus an additional
> "svg:fill-rule", not sure what that is.

Describes how PolyPolygons (aka more than one Polygon used -> 'Holes')
are to be rendered. Modern GraphicSystems suppoprt two of these, we do
only one. In the long term, we should also support both.

>
> so back to the <style:page-layout-properties>: indeed it doesn't allow
> the "fancy-draw-fillstyles", and the current implementation in LO is
> gratuitously different from the paragraph styles: for page layouts, the
> attributes are added to <style:page-layout-properties>, or to
> <style:header-footer-properties> for the header/footer, but for
> paragraph styles there is a separate <loext:graphic-properties> element
> for the attributes - some consistency would be nice.

Yes, indeed. Just see the FillStyle as one pack of attributes that can
be applied to any form/object that has any area to be filled. This will
unify things and make implementing new stuff easier - once done, will
work everywhere (all apps, all shapes/objects, all TabPages, all
exports/renderers...)

HTH!

>
> ... ok, was there anything i've missed?
>
>
> _______________________________________________
> LibreOffice mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/libreoffice

--
--
ALG (PGP Key: EE1C 4B3F E751 D8BC C485 DEC1 3C59 F953 D81C F4A2)

_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice