tdf#128150 Adapt sidebar to new "use slide background" property

Change-Id: Idce049a7498f98b0079c708236cfeff7fddd6e95
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135963
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
diff --git a/chart2/source/controller/sidebar/ChartAreaPanel.cxx b/chart2/source/controller/sidebar/ChartAreaPanel.cxx
index b54df41e..71e978e 100644
--- a/chart2/source/controller/sidebar/ChartAreaPanel.cxx
+++ b/chart2/source/controller/sidebar/ChartAreaPanel.cxx
@@ -408,6 +408,11 @@ void ChartAreaPanel::setFillStyleAndBitmap(const XFillStyleItem* pStyleItem,
    xPropSet->setPropertyValue("FillBitmapName", aBitmap);
}

void ChartAreaPanel::setFillUseBackground(const XFillStyleItem* /*pStyleItem*/,
                                          const XFillUseSlideBackgroundItem& /*rItem*/)
{
}

void ChartAreaPanel::updateData()
{
    if (!mbUpdate || !mbModelValid)
diff --git a/chart2/source/controller/sidebar/ChartAreaPanel.hxx b/chart2/source/controller/sidebar/ChartAreaPanel.hxx
index 1325134..75caf8d 100644
--- a/chart2/source/controller/sidebar/ChartAreaPanel.hxx
+++ b/chart2/source/controller/sidebar/ChartAreaPanel.hxx
@@ -57,6 +57,7 @@ public:
    virtual void setFillStyleAndGradient(const XFillStyleItem* pStyleItem, const XFillGradientItem& rGradientItem) override;
    virtual void setFillStyleAndHatch(const XFillStyleItem* pStyleItem, const XFillHatchItem& rHatchItem) override;
    virtual void setFillStyleAndBitmap(const XFillStyleItem* pStyleItem, const XFillBitmapItem& rBitmapItem) override;
    virtual void setFillUseBackground(const XFillStyleItem* pStyleItem, const XFillUseSlideBackgroundItem& rItem) override;

    virtual void updateData() override;
    virtual void modelInvalid() override;
diff --git a/include/svx/sidebar/AreaPropertyPanelBase.hxx b/include/svx/sidebar/AreaPropertyPanelBase.hxx
index 12fcebe..00519eed 100644
--- a/include/svx/sidebar/AreaPropertyPanelBase.hxx
+++ b/include/svx/sidebar/AreaPropertyPanelBase.hxx
@@ -24,6 +24,7 @@
#include <sfx2/sidebar/ControllerItem.hxx>
#include <svx/colorbox.hxx>
#include <svx/xgrad.hxx>
#include <svx/xfilluseslidebackgrounditem.hxx>
#include <svx/xfillit0.hxx>
#include <svx/xflclit.hxx>
#include <svx/xflgrit.hxx>
@@ -35,6 +36,7 @@

class ToolbarUnoDispatcher;
class XFillFloatTransparenceItem;
class XFillUseSlideBackgroundItem;
class XFillTransparenceItem;
class XFillStyleItem;
class XFillGradientItem;
@@ -84,6 +86,7 @@ public:
    virtual void setFillStyleAndGradient(const XFillStyleItem* pStyleItem, const XFillGradientItem& aGradientItem) = 0;
    virtual void setFillStyleAndHatch(const XFillStyleItem* pStyleItem, const XFillHatchItem& aHatchItem) = 0;
    virtual void setFillStyleAndBitmap(const XFillStyleItem* pStyleItem, const XFillBitmapItem& aHatchItem) = 0;
    virtual void setFillUseBackground(const XFillStyleItem* pStyleItem, const XFillUseSlideBackgroundItem& rItem) = 0;

    void updateFillTransparence(bool bDisabled, bool bDefaultOrSet, const SfxPoolItem* pState);
    void updateFillFloatTransparence(bool bDisabled, bool bDefaultOrSet, const SfxPoolItem* pState);
@@ -92,6 +95,7 @@ public:
    void updateFillHatch(bool bDisabled, bool bDefaultOrSet, const SfxPoolItem* pState);
    void updateFillColor(bool bDefaultOrSet, const SfxPoolItem* pState);
    void updateFillBitmap(bool BDisabled, bool bDefaultOrSet, const SfxPoolItem* pState);
    void updateFillUseBackground(bool BDisabled, bool bDefaultOrSet, const SfxPoolItem* pState);

private:
    void Initialize();
@@ -145,6 +149,7 @@ protected:
    OUString  maImgLinear;

    std::unique_ptr< XFillFloatTransparenceItem >   mpFloatTransparenceItem;
    std::unique_ptr< XFillUseSlideBackgroundItem > mpUseSlideBackgroundItem;
    std::unique_ptr< SfxUInt16Item >                mpTransparenceItem;

    DECL_DLLPRIVATE_LINK(SelectFillTypeHdl, weld::ComboBox&, void );
diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
index 6df5838..d3e0864 100644
--- a/include/svx/strings.hrc
+++ b/include/svx/strings.hrc
@@ -543,6 +543,7 @@
#define RID_SVXSTR_GRADIENT                                 NC_("RID_SVXSTR_GRADIENT", "Gradient")
#define RID_SVXSTR_BITMAP                                   NC_("RID_SVXSTR_BITMAP", "Bitmap")
#define RID_SVXSTR_PATTERN                                  NC_("RID_SVXSTR_PATTERN", "Pattern")
#define RID_SVXSTR_USE_BACKGROUND                           NC_("RID_SVXSTR_USE_BACKGROUND", "Use Slide Background")
#define RID_SVXSTR_PATTERN_UNTITLED                         NC_("RID_SVXSTR_PATTERN_UNTITLED", "Untitled Pattern")
#define RID_SVXSTR_LINESTYLE                                NC_("RID_SVXSTR_LINESTYLE", "Line Style")
#define RID_SVXSTR_INVISIBLE                                NC_("RID_SVXSTR_INVISIBLE", "None")
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index d50be07..96122a6 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -966,7 +966,7 @@ class XFillGradientItem;
#define SID_CELL_FORMAT_BORDER                          ( SID_SVX_START + 1132 )
#define SID_CHAR_DLG_EFFECT                             ( SID_SVX_START + 1133 )
#define SID_CHAR_DLG_POSITION                           ( SID_SVX_START + 1134 )

#define SID_ATTR_FILL_USE_SLIDE_BACKGROUND              ( SID_SVX_START + 1135 )
#define FN_SVX_SET_NUMBER                               ( SID_SVX_START + 1136 )
#define FN_SVX_SET_BULLET                               ( SID_SVX_START + 1137 )
#define FN_SVX_SET_OUTLINE                              ( SID_SVX_START + 1138 )
diff --git a/include/svx/xfilluseslidebackgrounditem.hxx b/include/svx/xfilluseslidebackgrounditem.hxx
index 5a5cba8..86317a9 100644
--- a/include/svx/xfilluseslidebackgrounditem.hxx
+++ b/include/svx/xfilluseslidebackgrounditem.hxx
@@ -19,12 +19,11 @@ class SVXCORE_DLLPUBLIC XFillUseSlideBackgroundItem final : public SfxBoolItem
public:
    XFillUseSlideBackgroundItem(bool bFill = false);

    SVX_DLLPRIVATE virtual XFillUseSlideBackgroundItem* Clone(SfxItemPool* pPool
                                                              = nullptr) const override;
    virtual XFillUseSlideBackgroundItem* Clone(SfxItemPool* pPool = nullptr) const override;

    SVX_DLLPRIVATE virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric,
                                                MapUnit ePresMetric, OUString& rText,
                                                const IntlWrapper&) const override;
    virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric,
                                 MapUnit ePresMetric, OUString& rText,
                                 const IntlWrapper&) const override;

    void dumpAsXml(xmlTextWriterPtr pWriter) const override;
};
diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi
index 73c2181..978866b 100644
--- a/sd/sdi/_drvwsh.sdi
+++ b/sd/sdi/_drvwsh.sdi
@@ -1402,6 +1402,11 @@ interface DrawView
        ExecMethod = FuTemporary ;
        StateMethod = GetAttrState ;
    ]
    SID_ATTR_FILL_USE_SLIDE_BACKGROUND // ole : no, status : ?
    [
        ExecMethod = FuTemporary ;
        StateMethod = GetAttrState ;
    ]
    SID_ATTR_FILL_TRANSPARENCE // ole : no, status : ?
    [
        ExecMethod = FuTemporary ;
diff --git a/sd/source/ui/func/fuarea.cxx b/sd/source/ui/func/fuarea.cxx
index 4fe0d10..2e35cac 100644
--- a/sd/source/ui/func/fuarea.cxx
+++ b/sd/source/ui/func/fuarea.cxx
@@ -73,6 +73,7 @@ void FuArea::DoExecute( SfxRequest& rReq )
                SID_ATTR_FILL_BITMAP,
                SID_ATTR_FILL_TRANSPARENCE,
                SID_ATTR_FILL_FLOATTRANSPARENCE,
                SID_ATTR_FILL_USE_SLIDE_BACKGROUND,
                0 };

            mpViewShell->GetViewFrame()->GetBindings().Invalidate( SidArray );
diff --git a/sd/source/ui/table/tableobjectbar.cxx b/sd/source/ui/table/tableobjectbar.cxx
index d351094..62d81d9 100644
--- a/sd/source/ui/table/tableobjectbar.cxx
+++ b/sd/source/ui/table/tableobjectbar.cxx
@@ -193,6 +193,7 @@ void TableObjectBar::Execute( SfxRequest& rReq )
        pBindings->Invalidate( SID_FRAME_LINECOLOR );
        pBindings->Invalidate( SID_ATTR_BORDER );
        pBindings->Invalidate( SID_ATTR_FILL_STYLE );
        pBindings->Invalidate( SID_ATTR_FILL_USE_SLIDE_BACKGROUND );
        pBindings->Invalidate( SID_ATTR_FILL_TRANSPARENCE );
        pBindings->Invalidate( SID_ATTR_FILL_FLOATTRANSPARENCE );
        pBindings->Invalidate( SID_TABLE_MERGE_CELLS );
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index a8906ac..d7a6bc6 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -689,6 +689,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
        case SID_ATTR_SHADOW_BLUR:
        case SID_ATTR_SHADOW_XDISTANCE:
        case SID_ATTR_SHADOW_YDISTANCE:
        case SID_ATTR_FILL_USE_SLIDE_BACKGROUND:
        case SID_ATTR_FILL_TRANSPARENCE:
        case SID_ATTR_FILL_FLOATTRANSPARENCE:

@@ -727,6 +728,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
                    case SID_ATTR_FILL_GRADIENT:
                    case SID_ATTR_FILL_HATCH:
                    case SID_ATTR_FILL_BITMAP:
                    case SID_ATTR_FILL_USE_SLIDE_BACKGROUND:
                    case SID_ATTR_FILL_TRANSPARENCE:
                    case SID_ATTR_FILL_FLOATTRANSPARENCE:
                        GetViewFrame()->GetDispatcher()->Execute( SID_ATTRIBUTES_AREA, SfxCallMode::ASYNCHRON );
diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx
index ae47828..8aab2c5 100644
--- a/sd/source/ui/view/drviewsf.cxx
+++ b/sd/source/ui/view/drviewsf.cxx
@@ -410,6 +410,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
            case SID_ATTR_SHADOW_BLUR:
            case SID_ATTR_SHADOW_XDISTANCE:
            case SID_ATTR_SHADOW_YDISTANCE:
            case SID_ATTR_FILL_USE_SLIDE_BACKGROUND:
            case SID_ATTR_FILL_TRANSPARENCE:
            case SID_ATTR_FILL_FLOATTRANSPARENCE:
            case SID_ATTR_LINE_STYLE:
diff --git a/sd/source/ui/view/drviewsj.cxx b/sd/source/ui/view/drviewsj.cxx
index c034b98..a1a7d89 100644
--- a/sd/source/ui/view/drviewsj.cxx
+++ b/sd/source/ui/view/drviewsj.cxx
@@ -65,6 +65,7 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
            SfxItemState::DEFAULT == rSet.GetItemState( SID_OBJECT_TITLE_DESCRIPTION ) ||

            SfxItemState::DEFAULT == rSet.GetItemState( SID_ATTR_FILL_STYLE ) ||
            SfxItemState::DEFAULT == rSet.GetItemState( SID_ATTR_FILL_USE_SLIDE_BACKGROUND ) ||
            SfxItemState::DEFAULT == rSet.GetItemState( SID_ATTR_FILL_TRANSPARENCE ) ||
            SfxItemState::DEFAULT == rSet.GetItemState( SID_ATTR_FILL_FLOATTRANSPARENCE ) ||
            SfxItemState::DEFAULT == rSet.GetItemState( SID_CHANGEBEZIER ) ||
@@ -167,6 +168,7 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
            {
                //rSet.DisableItem( SID_ATTRIBUTES_AREA ); // remove again!
                rSet.DisableItem( SID_ATTR_FILL_STYLE );
                rSet.DisableItem( SID_ATTR_FILL_USE_SLIDE_BACKGROUND );
                rSet.DisableItem( SID_ATTR_FILL_TRANSPARENCE );
                rSet.DisableItem( SID_ATTR_FILL_FLOATTRANSPARENCE );
            }
@@ -389,6 +391,7 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
            if( bLine && !bText && !bDrawObj &&!b3dObj)
            {
                rSet.DisableItem( SID_ATTR_FILL_STYLE );
                rSet.DisableItem( SID_ATTR_FILL_USE_SLIDE_BACKGROUND );
                rSet.DisableItem( SID_ATTR_FILL_TRANSPARENCE );
                rSet.DisableItem( SID_ATTR_FILL_FLOATTRANSPARENCE );
            }
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index de7ef99..0336b6c 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -11769,8 +11769,24 @@ SfxBoolItem PrepareMailExport SID_MAIL_PREPAREEXPORT
    GroupId = SfxGroupId::Explorer;
]

/* TODO: SfxBoolItem or XFillUseSlideBackgroundItem ? */
SfxBoolItem FillUseSlideBackground SID_ATTR_FILL_USE_SLIDE_BACKGROUND
[
    AutoUpdate = TRUE,
    FastCall = FALSE,
    ReadOnlyDoc = FALSE,
    Toggle = FALSE,
    Container = FALSE,
    RecordAbsolute = FALSE,
    RecordPerSet;


    AccelConfig = FALSE,
    MenuConfig = FALSE,
    ToolBoxConfig = FALSE,
    GroupId = SfxGroupId::Format;
]

SfxUInt16Item FillTransparence SID_ATTR_FILL_TRANSPARENCE
[
    AutoUpdate = TRUE,
diff --git a/svx/source/sidebar/area/AreaPropertyPanel.cxx b/svx/source/sidebar/area/AreaPropertyPanel.cxx
index b4d22f6..1bcbdac 100644
--- a/svx/source/sidebar/area/AreaPropertyPanel.cxx
+++ b/svx/source/sidebar/area/AreaPropertyPanel.cxx
@@ -46,6 +46,7 @@ AreaPropertyPanel::AreaPropertyPanel(
      maPatternListControl(SID_PATTERN_LIST, *pBindings, *this),
      maFillTransparenceController(SID_ATTR_FILL_TRANSPARENCE, *pBindings, *this),
      maFillFloatTransparenceController(SID_ATTR_FILL_FLOATTRANSPARENCE, *pBindings, *this),
      maFillUseSlideBackgroundController(SID_ATTR_FILL_USE_SLIDE_BACKGROUND, *pBindings, *this),
      mpBindings(pBindings)
{
}
@@ -86,6 +87,14 @@ void AreaPropertyPanel::setFillTransparence(const XFillTransparenceItem& rItem)
            SfxCallMode::RECORD, { &rItem });
}

void AreaPropertyPanel::setFillUseBackground(const XFillStyleItem* pStyleItem,
                                             const XFillUseSlideBackgroundItem& rItem)
{
    GetBindings()->GetDispatcher()->ExecuteList(
        SID_ATTR_FILL_USE_SLIDE_BACKGROUND, SfxCallMode::RECORD,
        std::initializer_list<SfxPoolItem const*>{ &rItem, pStyleItem });
}

void AreaPropertyPanel::setFillFloatTransparence(const XFillFloatTransparenceItem& rItem)
{
    GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_FILL_FLOATTRANSPARENCE,
diff --git a/svx/source/sidebar/area/AreaPropertyPanel.hxx b/svx/source/sidebar/area/AreaPropertyPanel.hxx
index ec7c122..6c398e6 100644
--- a/svx/source/sidebar/area/AreaPropertyPanel.hxx
+++ b/svx/source/sidebar/area/AreaPropertyPanel.hxx
@@ -30,6 +30,7 @@

class XFillFloatTransparenceItem;
class XFillTransparenceItem;
class XFillUseSlideBackgroundItem;
class XFillStyleItem;
class XFillGradientItem;
class XFillColorItem;
@@ -59,6 +60,7 @@ public:
    virtual ~AreaPropertyPanel() override;

    virtual void setFillTransparence(const XFillTransparenceItem& rItem) override;
    virtual void setFillUseBackground(const XFillStyleItem* pStyleItem, const XFillUseSlideBackgroundItem& rItem) override;
    virtual void setFillFloatTransparence(const XFillFloatTransparenceItem& rItem) override;
    virtual void setFillStyle(const XFillStyleItem& rItem) override;
    virtual void setFillStyleAndColor(const XFillStyleItem* pStyleItem, const XFillColorItem& aColorItem) override;
@@ -78,6 +80,7 @@ private:
    ::sfx2::sidebar::ControllerItem maPatternListControl;
    ::sfx2::sidebar::ControllerItem maFillTransparenceController;
    ::sfx2::sidebar::ControllerItem maFillFloatTransparenceController;
    ::sfx2::sidebar::ControllerItem maFillUseSlideBackgroundController;

    SfxBindings* mpBindings;
};
diff --git a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx
index baaf3c4..8019705 100644
--- a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx
+++ b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx
@@ -25,6 +25,7 @@
#include <sfx2/objsh.hxx>
#include <svx/xfltrit.hxx>
#include <svx/xflftrit.hxx>
#include <svx/xfilluseslidebackgrounditem.hxx>
#include <svx/xtable.hxx>
#include <sfx2/sidebar/Panel.hxx>
#include <sfx2/opengrf.hxx>
@@ -49,7 +50,8 @@ enum eFillStyle
    GRADIENT,
    HATCH,
    BITMAP,
    PATTERN
    PATTERN,
    USE_BACKGROUND
};

}
@@ -421,6 +423,22 @@ IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillTypeHdl, weld::ComboBox&, void)
            setFillStyleAndBitmap(&aXFillStyleItem, aXFillBitmapItem);
            break;
        }
        case USE_BACKGROUND:
        {
            mxLbFillAttr->show();
            mxLbFillGradFrom->hide();
            mxLbFillGradTo->hide();
            mxGradientStyle->hide();
            mxMTRAngle->hide();
            mxToolBoxColor->hide();
            mxBmpImport->hide();
            mxLbFillAttr->set_sensitive(false);

            const XFillStyleItem aXFillStyleItem(drawing::FillStyle_NONE);
            const XFillUseSlideBackgroundItem aXFillUseSlideBackgroundItem(true);
            setFillUseBackground(&aXFillStyleItem, aXFillUseSlideBackgroundItem);
            break;
        }
    }

    meLastXFS = static_cast<sal_uInt16>(nPos);
@@ -972,6 +990,35 @@ void AreaPropertyPanelBase::updateFillBitmap(bool bDisabled, bool bDefaultOrSet,
        m_pPanel->TriggerDeckLayouting();
}

void AreaPropertyPanelBase::updateFillUseBackground(bool bDisabled, bool bDefaultOrSet, const SfxPoolItem* pState)
{
    if (bDisabled)
    {
        mpUseSlideBackgroundItem.reset();
        return;
    }

    if (bDefaultOrSet)
    {
        if (pState)
        {
            const XFillUseSlideBackgroundItem* pItem = static_cast<const XFillUseSlideBackgroundItem*>(pState);
            // When XFillUseSlideBackgroundItem is true, select "Use Background Fill". When false, select "None"
            int nPos = pItem->GetValue() ? 6 : 0;
            mxLbFillType->set_active(nPos);
            mpUseSlideBackgroundItem.reset(pItem->Clone());
        }
        else
        {
            mpUseSlideBackgroundItem.reset();
        }
    }
    else
    {
        mpUseSlideBackgroundItem.reset();
    }
}

void AreaPropertyPanelBase::NotifyItemUpdate(
    sal_uInt16 nSID,
    SfxItemState eState,
@@ -1004,6 +1051,9 @@ void AreaPropertyPanelBase::NotifyItemUpdate(
        case SID_ATTR_FILL_BITMAP:
            updateFillBitmap(bDisabled, bDefaultOrSet, pState);
        break;
        case SID_ATTR_FILL_USE_SLIDE_BACKGROUND:
            updateFillUseBackground(bDisabled, bDefaultOrSet, pState);
        break;
        case SID_GRADIENT_LIST:
        {
            if(bDefault)
diff --git a/svx/source/tbxctrls/itemwin.cxx b/svx/source/tbxctrls/itemwin.cxx
index 130fba5..1a9b6d3 100644
--- a/svx/source/tbxctrls/itemwin.cxx
+++ b/svx/source/tbxctrls/itemwin.cxx
@@ -180,6 +180,7 @@ void SvxFillTypeBox::Fill(weld::ComboBox& rListBox)
    rListBox.append_text(SvxResId(RID_SVXSTR_HATCH));
    rListBox.append_text(SvxResId(RID_SVXSTR_BITMAP));
    rListBox.append_text(SvxResId(RID_SVXSTR_PATTERN));
    rListBox.append_text(SvxResId(RID_SVXSTR_USE_BACKGROUND));

    rListBox.thaw();

diff --git a/svx/source/xoutdev/xpool.cxx b/svx/source/xoutdev/xpool.cxx
index 771b79a..b3e044e 100644
--- a/svx/source/xoutdev/xpool.cxx
+++ b/svx/source/xoutdev/xpool.cxx
@@ -182,6 +182,7 @@ XOutdevItemPool::XOutdevItemPool(SfxItemPool* _pMaster)
    mpLocalItemInfos[XATTR_FORMTXTHIDEFORM  -XATTR_START]._nSID = SID_FORMTEXT_HIDEFORM;

    // associate new slots for panels with known items
    mpLocalItemInfos[XATTR_FILLUSESLIDEBACKGROUND - XATTR_START]._nSID = SID_ATTR_FILL_USE_SLIDE_BACKGROUND;
    mpLocalItemInfos[XATTR_FILLTRANSPARENCE - XATTR_START]._nSID = SID_ATTR_FILL_TRANSPARENCE;
    mpLocalItemInfos[XATTR_FILLFLOATTRANSPARENCE - XATTR_START]._nSID = SID_ATTR_FILL_FLOATTRANSPARENCE;
    mpLocalItemInfos[XATTR_LINETRANSPARENCE - XATTR_START]._nSID = SID_ATTR_LINE_TRANSPARENCE;