22 #include <com/sun/star/awt/Gradient.hpp>
30 #include <rtl/ustrbuf.hxx>
31 #include <rtl/ustring.hxx>
62 const uno::Reference< xml::sax::XFastAttributeList >& xAttrList,
66 OUString aDisplayName;
68 awt::Gradient aGradient;
69 aGradient.XOffset = 0;
70 aGradient.YOffset = 0;
71 aGradient.StartIntensity = 100;
72 aGradient.EndIntensity = 100;
80 switch( aIter.getToken() )
84 rStrName = aIter.toString();
89 aDisplayName = aIter.toString();
99 aGradient.XOffset = sal::static_int_cast< sal_Int16 >(nTmpValue);
103 aGradient.YOffset = sal::static_int_cast< sal_Int16 >(nTmpValue);
107 sal_Int32 aStartTransparency;
111 ( (100 - aStartTransparency) * 255 ) / 100 );
113 Color aColor( n, n, n );
114 aGradient.StartColor =
static_cast<sal_Int32
>( aColor );
119 sal_Int32 aEndTransparency;
123 ( (100 - aEndTransparency) * 255 ) / 100 );
125 Color aColor( n, n, n );
126 aGradient.EndColor =
static_cast<sal_Int32
>( aColor );
132 bool const bSuccess =
135 (cmp12 < 0) || (cmp12 == 0
139 SAL_INFO_IF(!bSuccess,
"xmloff.style",
"failed to import draw:angle");
144 aGradient.Border = sal::static_int_cast< sal_Int16 >(nTmpValue);
152 rValue <<= aGradient;
154 if( !aDisplayName.isEmpty() )
158 rStrName = aDisplayName;
170 const OUString& rStrName,
173 awt::Gradient aGradient;
175 if( rStrName.isEmpty() )
178 if( !(rValue >>= aGradient) )
189 bool bEncoded =
false;
197 aStrValue = aOut.makeStringAndClear();
201 if( aGradient.Style != awt::GradientStyle_LINEAR &&
202 aGradient.Style != awt::GradientStyle_AXIAL )
205 aStrValue = aOut.makeStringAndClear();
209 aStrValue = aOut.makeStringAndClear();
215 sal_Int32 aStartValue = 100 -
static_cast<sal_Int32
>(((aColor.
GetRed() + 1) * 100) / 255);
217 aStrValue = aOut.makeStringAndClear();
222 sal_Int32 aEndValue = 100 -
static_cast<sal_Int32
>(((aColor.
GetRed() + 1) * 100) / 255);
224 aStrValue = aOut.makeStringAndClear();
228 if( aGradient.Style != awt::GradientStyle_RADIAL )
231 aStrValue = aOut.makeStringAndClear();
237 aStrValue = aOut.makeStringAndClear();
#define SAL_INFO_IF(condition, area, stream)
FastAttributeList & castToFastAttributeList(const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList)
constexpr OUStringLiteral ODFVER_012_TEXT
static const sal_uInt16 LO_7x
sal_uInt16 getGeneratorVersion() const
this checks the build ID and returns
void AddAttribute(sal_uInt16 nPrefix, const OUString &rName, const OUString &rValue)
#define XMLOFF_WARN_UNKNOWN(area, rIter)
static const sal_uInt16 AOO_4x
static void convertAngle(OUStringBuffer &rBuffer, sal_Int16 nAngle, SvtSaveOptions::ODFSaneDefaultVersion nVersion)
constexpr sal_uInt16 XML_NAMESPACE_DRAW
XMLTransGradientStyleImport(SvXMLImport &rImport)
SvtSaveOptions::ODFSaneDefaultVersion getSaneDefaultVersion() const
returns the deterministic version for odf export
static bool convertPercent(sal_Int32 &rValue, std::u16string_view rString)
OUString EncodeStyleName(const OUString &rName, bool *pEncoded=nullptr) const
Map an XMLTokenEnum to an enum value.
SvXMLEnumMapEntry< awt::GradientStyle > const pXML_GradientStyle_Enum[]
XMLTransGradientStyleExport(SvXMLExport &rExport)
OUString GetODFVersion() const
Handling of tokens in XML:
#define XML_ELEMENT(prefix, name)
static bool convertEnum(EnumT &rEnum, std::u16string_view rValue, const SvXMLEnumMapEntry< EnumT > *pMap)
convert string to enum using given enum map, if the enum is not found in the map, this method will re...
void importXML(const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList, css::uno::Any &rValue, OUString &rStrName)
void AddStyleDisplayName(XmlStyleFamily nFamily, const OUString &rName, const OUString &rDisplayName)
bool isGeneratorVersionOlderThan(sal_uInt16 const nOOoVersion, sal_uInt16 const nLOVersion)
depending on whether the generator version indicates LO, compare against either the given LO or given...
void exportXML(const OUString &rStrName, const css::uno::Any &rValue)