tdf#101181: support for transparency attribute of glow effect
Read/write support for ODF and OOXML (in ODF, loext:glow-transparency
attribute of style:graphic-properties has been added).
Added UI on glow sidebar panel.
Not used in actual painting yet.
Change-Id: I21b25d9c52c8611cd796f056374377ebf13cc2f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93565
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
index 7a1f97e..472a35a 100644
--- a/include/svx/strings.hrc
+++ b/include/svx/strings.hrc
@@ -515,6 +515,7 @@
#define SIP_SA_GLOW NC_("SIP_SA_GLOW", "Glow effect")
#define SIP_SA_GLOW_RAD NC_("SIP_SA_GLOW_RAD", "Radius of glow effect")
#define SIP_SA_GLOW_COLOR NC_("SIP_SA_GLOW_COLOR", "Color of glow effect")
#define SIP_SA_GLOW_TRANSPARENCY NC_("SIP_SA_GLOW_TRANSPARENCY", "Transparency of glow effect")
#define STR_ObjNameSingulMEDIA NC_("STR_ObjNameSingulMEDIA", "Media object")
#define STR_ObjNamePluralMEDIA NC_("STR_ObjNamePluralMEDIA", "Media objects")
// drawing layer table strings
diff --git a/include/svx/svddef.hxx b/include/svx/svddef.hxx
index c00c1a0..d6bbccf 100644
--- a/include/svx/svddef.hxx
+++ b/include/svx/svddef.hxx
@@ -419,7 +419,8 @@ constexpr sal_uInt16 SDRATTR_GLOW_FIRST (SDRATTR_TABLE_LAST+1);
constexpr TypedWhichId<SdrOnOffItem> SDRATTR_GLOW (SDRATTR_GLOW_FIRST+0);
constexpr TypedWhichId<SdrMetricItem> SDRATTR_GLOW_RAD (SDRATTR_GLOW_FIRST+1);
constexpr TypedWhichId<XColorItem> SDRATTR_GLOW_COLOR (SDRATTR_GLOW_FIRST+2);
constexpr sal_uInt16 SDRATTR_GLOW_LAST (SDRATTR_GLOW_COLOR);
constexpr TypedWhichId<SdrPercentItem> SDRATTR_GLOW_TRANSPARENCY(SDRATTR_GLOW_FIRST + 3);
constexpr sal_uInt16 SDRATTR_GLOW_LAST (SDRATTR_GLOW_TRANSPARENCY);
constexpr sal_uInt16 SDRATTR_END (SDRATTR_GLOW_LAST); /* 1357 */ /* 1333 V4+++*/ /* 1243 V4+++*/ /*1213*/ /*1085*/ /*1040*/ /*Pool V2: 1123,V1: 1065 */
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index 1aa3111..61d02ff 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -417,6 +417,7 @@ class SvxSetItem;
#define SID_ATTR_GLOW ( SID_SVX_START + 320 )
#define SID_ATTR_GLOW_COLOR ( SID_SVX_START + 321 )
#define SID_ATTR_GLOW_RADIUS ( SID_SVX_START + 322 )
#define SID_ATTR_GLOW_TRANSPARENCY ( SID_SVX_START + 323 )
#define SID_SCAN ( SID_SVX_START + 330 )
#define SID_TWAIN_SELECT ( SID_SVX_START + 331 )
#define SID_TWAIN_TRANSFER ( SID_SVX_START + 332 )
diff --git a/include/svx/unoshprp.hxx b/include/svx/unoshprp.hxx
index 19eb4ae..b8c0990 100644
--- a/include/svx/unoshprp.hxx
+++ b/include/svx/unoshprp.hxx
@@ -212,7 +212,8 @@
#define GLOW_PROPERTIES \
{ OUString("GlowEffect"), SDRATTR_GLOW, cppu::UnoType<bool>::get(), 0, 0}, \
{ OUString{"GlowEffectRad"}, SDRATTR_GLOW_RAD, ::cppu::UnoType<sal_Int32>::get(), 0, 0, PropertyMoreFlags::METRIC_ITEM}, \
{ OUString{"GlowEffectColor"}, SDRATTR_GLOW_COLOR, ::cppu::UnoType<sal_Int32>::get(), 0, 0},
{ OUString{"GlowEffectColor"}, SDRATTR_GLOW_COLOR, ::cppu::UnoType<sal_Int32>::get(), 0, 0}, \
{ OUString{"GlowEffectTransparency"}, SDRATTR_GLOW_TRANSPARENCY,::cppu::UnoType<sal_Int16>::get(), 0, 0 },
#define SHADOW_PROPERTIES \
{ OUString(UNO_NAME_SHADOW), SDRATTR_SHADOW, cppu::UnoType<bool>::get(), 0, 0}, \
diff --git a/include/xmloff/xmltoken.hxx b/include/xmloff/xmltoken.hxx
index fda3f4c..d84f17d 100644
--- a/include/xmloff/xmltoken.hxx
+++ b/include/xmloff/xmltoken.hxx
@@ -928,6 +928,7 @@ namespace xmloff::token {
XML_GLOW,
XML_GLOW_RADIUS,
XML_GLOW_COLOR,
XML_GLOW_TRANSPARENCY,
XML_GOURAUD,
XML_GRADIENT,
XML_GRADIENT_ANGLE,
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index d962f00..959f99e 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -1472,6 +1472,7 @@ Reference< XShape > const & Shape::createAndInsert(
propertySet->setPropertyValue("GlowEffect", makeAny(true));
propertySet->setPropertyValue("GlowEffectRad", makeAny(static_cast<sal_Int32>(aEffectProperties.maGlow.moGlowRad.get())));
propertySet->setPropertyValue("GlowEffectColor", makeAny(aEffectProperties.maGlow.moGlowColor.getColor(rGraphicHelper)));
propertySet->setPropertyValue("GlowEffectTransparency", makeAny(aEffectProperties.maGlow.moGlowColor.getTransparency()));
}
}
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 81bbcd7..17b56e8 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -3849,11 +3849,13 @@ void DrawingML::WriteGlowEffect(const Reference< XPropertySet >& rXPropSet)
Sequence< PropertyValue > aGlowAttribs(1);
aGlowAttribs[0].Name = "rad";
aGlowAttribs[0].Value = rXPropSet->getPropertyValue("GlowEffectRad");
Sequence< PropertyValue > aGlowProps(2);
Sequence< PropertyValue > aGlowProps(3);
aGlowProps[0].Name = "Attribs";
aGlowProps[0].Value <<= aGlowAttribs;
aGlowProps[1].Name = "RgbClr";
aGlowProps[1].Value = rXPropSet->getPropertyValue("GlowEffectColor");
aGlowProps[2].Name = "RgbClrTransparency";
aGlowProps[2].Value = rXPropSet->getPropertyValue("GlowEffectTransparency");
// TODO other stuff like saturation or luminance
WriteShapeEffect("glow", aGlowProps);
diff --git a/sc/sdi/drawsh.sdi b/sc/sdi/drawsh.sdi
index 44faa5c..2a9981a 100644
--- a/sc/sdi/drawsh.sdi
+++ b/sc/sdi/drawsh.sdi
@@ -228,6 +228,7 @@ interface TableDraw
SID_ATTR_GLOW [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawAttrState; Export = FALSE; ]
SID_ATTR_GLOW_COLOR [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawAttrState; Export = FALSE; ]
SID_ATTR_GLOW_RADIUS [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawAttrState; Export = FALSE; ]
SID_ATTR_GLOW_TRANSPARENCY [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawAttrState; Export = FALSE; ]
}
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx
index 07b340b..c006772 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -2861,6 +2861,9 @@ void SdOOXMLExportTest2::testShapeGlowEffect()
Color nColor;
xShape->getPropertyValue("GlowEffectColor") >>= nColor;
CPPUNIT_ASSERT_EQUAL(Color(0xFFC000), nColor);
sal_uInt16 nTransparency;
xShape->getPropertyValue("GlowEffectTransparency") >>= nTransparency;
CPPUNIT_ASSERT_EQUAL(sal_uInt16(60), nTransparency);
}
void SdOOXMLExportTest2::testTdf119087()
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 83cab0b..158641a 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -3122,6 +3122,9 @@ void SdImportTest::testShapeGlowEffectPPTXImpoer()
Color nColor;
xShape->getPropertyValue("GlowEffectColor") >>= nColor;
CPPUNIT_ASSERT_EQUAL(Color(0xFFC000), nColor);
sal_uInt16 nTransparency;
xShape->getPropertyValue("GlowEffectTransparency") >>= nTransparency;
CPPUNIT_ASSERT_EQUAL(sal_uInt16(60), nTransparency);
}
CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest);
diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi
index 962ef236..b1a6f64 100644
--- a/sd/sdi/_drvwsh.sdi
+++ b/sd/sdi/_drvwsh.sdi
@@ -2875,5 +2875,10 @@ interface DrawView
ExecMethod = FuTemporary;
StateMethod = GetAttrState;
]
SID_ATTR_GLOW_TRANSPARENCY
[
ExecMethod = FuTemporary;
StateMethod = GetAttrState;
]
}
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index fb6f3de..d062913 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -3473,6 +3473,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
case SID_ATTR_GLOW:
case SID_ATTR_GLOW_COLOR:
case SID_ATTR_GLOW_RADIUS:
case SID_ATTR_GLOW_TRANSPARENCY:
if (const SfxItemSet* pNewArgs = rReq.GetArgs())
mpDrawView->SetAttributes(*pNewArgs);
rReq.Done();
diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx
index c340121..b58d7f3 100644
--- a/sd/source/ui/view/drviewsf.cxx
+++ b/sd/source/ui/view/drviewsf.cxx
@@ -440,6 +440,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
case SID_ATTR_GLOW:
case SID_ATTR_GLOW_COLOR:
case SID_ATTR_GLOW_RADIUS:
case SID_ATTR_GLOW_TRANSPARENCY:
case SID_SET_SUB_SCRIPT:
case SID_SET_SUPER_SCRIPT:
{
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index f7925c5..bf3b73f 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -12288,3 +12288,20 @@ SdrMetricItem GlowRadius SID_ATTR_GLOW_RADIUS
ToolBoxConfig = FALSE,
GroupId = SfxGroupId::Document;
]
SdrPercentItem GlowTransparency SID_ATTR_GLOW_TRANSPARENCY
[
AutoUpdate = TRUE,
FastCall = FALSE,
ReadOnlyDoc = FALSE,
Toggle = FALSE,
Container = FALSE,
RecordAbsolute = FALSE,
RecordPerSet;
AccelConfig = FALSE,
MenuConfig = FALSE,
ToolBoxConfig = FALSE,
GroupId = SfxGroupId::Document;
]
diff --git a/svx/source/sidebar/glow/GlowPropertyPanel.cxx b/svx/source/sidebar/glow/GlowPropertyPanel.cxx
index 82df3ee..ef3a195 100644
--- a/svx/source/sidebar/glow/GlowPropertyPanel.cxx
+++ b/svx/source/sidebar/glow/GlowPropertyPanel.cxx
@@ -15,6 +15,7 @@
#include <svx/colorbox.hxx>
#include <svx/sdmetitm.hxx>
#include <svx/sdooitm.hxx>
#include <svx/sdprcitm.hxx>
#include <svx/svddef.hxx>
#include <svx/svxids.hrc>
#include <svx/xcolit.hxx>
@@ -38,12 +39,16 @@ GlowPropertyPanel::GlowPropertyPanel(vcl::Window* pParent,
, maGlowController(SID_ATTR_GLOW, *pBindings, *this)
, maGlowColorController(SID_ATTR_GLOW_COLOR, *pBindings, *this)
, maGlowRadiusController(SID_ATTR_GLOW_RADIUS, *pBindings, *this)
, maGlowTransparencyController(SID_ATTR_GLOW_TRANSPARENCY, *pBindings, *this)
, mpBindings(pBindings)
, mxShowGlow(m_xBuilder->weld_check_button("SHOW_GLOW"))
, mxGlowRadius(m_xBuilder->weld_metric_spin_button("LB_GLOW_RADIUS", FieldUnit::POINT))
, mxLBGlowColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_GLOW_COLOR"), GetFrameWeld()))
, mxGlowTransparency(
m_xBuilder->weld_metric_spin_button("LB_GLOW_TRANSPARENCY", FieldUnit::PERCENT))
, mxFTRadius(m_xBuilder->weld_label("radius"))
, mxFTColor(m_xBuilder->weld_label("color"))
, mxFTTransparency(m_xBuilder->weld_label("transparency"))
{
Initialize();
}
@@ -57,10 +62,13 @@ void GlowPropertyPanel::dispose()
mxGlowRadius.reset();
mxFTColor.reset();
mxLBGlowColor.reset();
mxFTTransparency.reset();
mxGlowTransparency.reset();
maGlowController.dispose();
maGlowColorController.dispose();
maGlowRadiusController.dispose();
maGlowTransparencyController.dispose();
PanelLayout::dispose();
}
@@ -70,6 +78,8 @@ void GlowPropertyPanel::Initialize()
mxShowGlow->connect_toggled(LINK(this, GlowPropertyPanel, ClickGlowHdl));
mxLBGlowColor->SetSelectHdl(LINK(this, GlowPropertyPanel, ModifyGlowColorHdl));
mxGlowRadius->connect_value_changed(LINK(this, GlowPropertyPanel, ModifyGlowRadiusHdl));
mxGlowTransparency->connect_value_changed(
LINK(this, GlowPropertyPanel, ModifyGlowTransparencyHdl));
}
IMPL_LINK_NOARG(GlowPropertyPanel, ClickGlowHdl, weld::ToggleButton&, void)
@@ -90,13 +100,23 @@ IMPL_LINK_NOARG(GlowPropertyPanel, ModifyGlowRadiusHdl, weld::MetricSpinButton&,
mpBindings->GetDispatcher()->ExecuteList(SID_ATTR_GLOW_RADIUS, SfxCallMode::RECORD, { &aItem });
}
IMPL_LINK_NOARG(GlowPropertyPanel, ModifyGlowTransparencyHdl, weld::MetricSpinButton&, void)
{
SdrPercentItem aItem(SDRATTR_GLOW_TRANSPARENCY,
mxGlowTransparency->get_value(FieldUnit::PERCENT));
mpBindings->GetDispatcher()->ExecuteList(SID_ATTR_GLOW_TRANSPARENCY, SfxCallMode::RECORD,
{ &aItem });
}
void GlowPropertyPanel::UpdateControls()
{
const bool bEnabled = mxShowGlow->get_state() != TRISTATE_FALSE;
mxGlowRadius->set_sensitive(bEnabled);
mxLBGlowColor->set_sensitive(bEnabled);
mxGlowTransparency->set_sensitive(bEnabled);
mxFTRadius->set_sensitive(bEnabled);
mxFTColor->set_sensitive(bEnabled);
mxFTTransparency->set_sensitive(bEnabled);
}
void GlowPropertyPanel::NotifyItemUpdate(sal_uInt16 nSID, SfxItemState eState,
@@ -144,6 +164,17 @@ void GlowPropertyPanel::NotifyItemUpdate(sal_uInt16 nSID, SfxItemState eState,
}
}
break;
case SID_ATTR_GLOW_TRANSPARENCY:
{
if (eState >= SfxItemState::DEFAULT)
{
if (auto pItem = dynamic_cast<const SdrPercentItem*>(pState))
{
mxGlowTransparency->set_value(pItem->GetValue(), FieldUnit::PERCENT);
}
}
}
break;
}
UpdateControls();
}
diff --git a/svx/source/sidebar/glow/GlowPropertyPanel.hxx b/svx/source/sidebar/glow/GlowPropertyPanel.hxx
index 7cdf772..233ec05 100644
--- a/svx/source/sidebar/glow/GlowPropertyPanel.hxx
+++ b/svx/source/sidebar/glow/GlowPropertyPanel.hxx
@@ -40,14 +40,17 @@ private:
sfx2::sidebar::ControllerItem maGlowController;
sfx2::sidebar::ControllerItem maGlowColorController;
sfx2::sidebar::ControllerItem maGlowRadiusController;
sfx2::sidebar::ControllerItem maGlowTransparencyController;
SfxBindings* mpBindings;
std::unique_ptr<weld::CheckButton> mxShowGlow;
std::unique_ptr<weld::MetricSpinButton> mxGlowRadius;
std::unique_ptr<ColorListBox> mxLBGlowColor;
std::unique_ptr<weld::MetricSpinButton> mxGlowTransparency;
std::unique_ptr<weld::Label> mxFTRadius;
std::unique_ptr<weld::Label> mxFTColor;
std::unique_ptr<weld::Label> mxFTTransparency;
void Initialize();
void UpdateControls();
@@ -55,6 +58,7 @@ private:
DECL_LINK(ClickGlowHdl, weld::ToggleButton&, void);
DECL_LINK(ModifyGlowColorHdl, ColorListBox&, void);
DECL_LINK(ModifyGlowRadiusHdl, weld::MetricSpinButton&, void);
DECL_LINK(ModifyGlowTransparencyHdl, weld::MetricSpinButton&, void);
};
}
diff --git a/svx/source/svdraw/svdattr.cxx b/svx/source/svdraw/svdattr.cxx
index edf73df..1b89cab 100644
--- a/svx/source/svdraw/svdattr.cxx
+++ b/svx/source/svdraw/svdattr.cxx
@@ -331,6 +331,7 @@ SdrItemPool::SdrItemPool(
rPoolDefaults[ SDRATTR_GLOW - SDRATTR_START ] = new SdrOnOffItem(SDRATTR_GLOW, false);
rPoolDefaults[ SDRATTR_GLOW_RAD - SDRATTR_START ] = new SdrMetricItem(SDRATTR_GLOW_RAD, 0);
rPoolDefaults[ SDRATTR_GLOW_COLOR - SDRATTR_START ] = new XColorItem(SDRATTR_GLOW_COLOR, aNullCol);
rPoolDefaults[ SDRATTR_GLOW_TRANSPARENCY - SDRATTR_START ] = new SdrPercentItem(SDRATTR_GLOW_TRANSPARENCY, 0);
// set own ItemInfos
mpLocalItemInfos[SDRATTR_SHADOW-SDRATTR_START]._nSID=SID_ATTR_FILL_SHADOW;
@@ -349,6 +350,7 @@ SdrItemPool::SdrItemPool(
mpLocalItemInfos[SDRATTR_GLOW - SDRATTR_START]._nSID = SID_ATTR_GLOW;
mpLocalItemInfos[SDRATTR_GLOW_RAD - SDRATTR_START]._nSID = SID_ATTR_GLOW_RADIUS;
mpLocalItemInfos[SDRATTR_GLOW_COLOR - SDRATTR_START]._nSID = SID_ATTR_GLOW_COLOR;
mpLocalItemInfos[SDRATTR_GLOW_TRANSPARENCY - SDRATTR_START]._nSID = SID_ATTR_GLOW_TRANSPARENCY;
// it's my own creation level, set Defaults and ItemInfos
SetDefaults(mpLocalPoolDefaults);
@@ -459,6 +461,7 @@ OUString SdrItemPool::GetItemName(sal_uInt16 nWhich)
case SDRATTR_GLOW : pResId = SIP_SA_GLOW;break;
case SDRATTR_GLOW_RAD : pResId = SIP_SA_GLOW_RAD;break;
case SDRATTR_GLOW_COLOR : pResId = SIP_SA_GLOW_COLOR;break;
case SDRATTR_GLOW_TRANSPARENCY : pResId = SIP_SA_GLOW_TRANSPARENCY;break;
case SDRATTR_CAPTIONTYPE : pResId = SIP_SA_CAPTIONTYPE;break;
case SDRATTR_CAPTIONFIXEDANGLE: pResId = SIP_SA_CAPTIONFIXEDANGLE;break;
diff --git a/svx/uiconfig/ui/sidebarglow.ui b/svx/uiconfig/ui/sidebarglow.ui
index cc3accb..9580f99 100644
--- a/svx/uiconfig/ui/sidebarglow.ui
+++ b/svx/uiconfig/ui/sidebarglow.ui
@@ -6,6 +6,11 @@
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment2">
<property name="step_increment">1</property>
<property name="page_increment">10</property>
<property name="upper">100</property>
</object>
<object class="GtkGrid" id="GlowPropertyPanel">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -88,6 +93,32 @@
</packing>
</child>
<child>
<object class="GtkLabel" id="transparency">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="sidebarglow|transparency">Transparency:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">LB_GLOW_TRANSPARENCY</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="LB_GLOW_TRANSPARENCY">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="adjustment">adjustment2</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
diff --git a/sw/sdi/drawsh.sdi b/sw/sdi/drawsh.sdi
index c75bc6a..77fb87f 100644
--- a/sw/sdi/drawsh.sdi
+++ b/sw/sdi/drawsh.sdi
@@ -208,6 +208,14 @@ interface TextDraw : TextDrawBase
DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
]
SID_ATTR_GLOW_TRANSPARENCY
[
Export = FALSE;
ExecMethod = ExecDrawAttrArgs ;
StateMethod = GetDrawAttrState ;
DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
]
SID_ATTRIBUTES_LINE
[
ExecMethod = ExecDrawDlg ;
diff --git a/sw/source/uibase/shells/slotadd.cxx b/sw/source/uibase/shells/slotadd.cxx
index c6a3f35..76de1a6 100644
--- a/sw/source/uibase/shells/slotadd.cxx
+++ b/sw/source/uibase/shells/slotadd.cxx
@@ -78,6 +78,7 @@
#include <editeng/lrspitem.hxx>
#include <svx/sdmetitm.hxx>
#include <svx/sdooitm.hxx>
#include <svx/sdprcitm.hxx>
#include <svx/xlnstit.hxx>
#include <svx/xlnedit.hxx>
#include <svx/xfillit0.hxx>
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
index 2888d9f..624c768 100644
--- a/xmloff/source/core/xmltoken.cxx
+++ b/xmloff/source/core/xmltoken.cxx
@@ -932,6 +932,7 @@ namespace xmloff::token {
TOKEN( "glow", XML_GLOW ),
TOKEN( "glow-radius", XML_GLOW_RADIUS ),
TOKEN( "glow-color", XML_GLOW_COLOR ),
TOKEN( "glow-transparency", XML_GLOW_TRANSPARENCY ),
TOKEN( "gouraud", XML_GOURAUD ),
TOKEN( "gradient", XML_GRADIENT ),
TOKEN( "angle", XML_GRADIENT_ANGLE ),
diff --git a/xmloff/source/draw/sdpropls.cxx b/xmloff/source/draw/sdpropls.cxx
index 4cedc7c..16c593b 100644
--- a/xmloff/source/draw/sdpropls.cxx
+++ b/xmloff/source/draw/sdpropls.cxx
@@ -156,6 +156,7 @@ const XMLPropertyMapEntry aXMLSDProperties[] =
GMAPV( "GlowEffect", XML_NAMESPACE_LO_EXT, XML_GLOW, XML_SD_TYPE_GLOW , 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT ),
GMAPV( "GlowEffectRad", XML_NAMESPACE_LO_EXT, XML_GLOW_RADIUS, XML_TYPE_MEASURE , 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT ),
GMAPV( "GlowEffectColor", XML_NAMESPACE_LO_EXT, XML_GLOW_COLOR, XML_TYPE_COLOR , 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT ),
GMAPV( "GlowEffectTransparency", XML_NAMESPACE_LO_EXT, XML_GLOW_TRANSPARENCY, XML_TYPE_PERCENT16, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT),
// graphic attributes
GMAP( "GraphicColorMode", XML_NAMESPACE_DRAW, XML_COLOR_MODE, XML_TYPE_COLOR_MODE, 0 ), // exists in SW, too, with same property name
diff --git a/xmloff/source/token/tokens.txt b/xmloff/source/token/tokens.txt
index 103e7ea..4f8e756 100644
--- a/xmloff/source/token/tokens.txt
+++ b/xmloff/source/token/tokens.txt
@@ -850,6 +850,7 @@ geq
glow
glow-radius
glow-color
glow-transparency
gouraud
gradient
angle