22 #include <com/sun/star/awt/Gradient.hpp>
30 #include <rtl/ustrbuf.hxx>
31 #include <rtl/ustring.hxx>
66 const uno::Reference< xml::sax::XFastAttributeList >& xAttrList,
70 OUString aDisplayName;
72 awt::Gradient aGradient;
73 aGradient.XOffset = 0;
74 aGradient.YOffset = 0;
75 aGradient.StartIntensity = 100;
76 aGradient.EndIntensity = 100;
84 switch( aIter.getToken() )
88 rStrName = aIter.toString();
93 aDisplayName = aIter.toString();
103 aGradient.XOffset = sal::static_int_cast< sal_Int16 >(nTmpValue);
107 aGradient.YOffset = sal::static_int_cast< sal_Int16 >(nTmpValue);
111 sal_Int32 aStartTransparency;
115 ( (100 - aStartTransparency) * 255 ) / 100 );
117 Color aColor( n, n, n );
118 aGradient.StartColor =
static_cast<sal_Int32
>( aColor );
123 sal_Int32 aEndTransparency;
127 ( (100 - aEndTransparency) * 255 ) / 100 );
129 Color aColor( n, n, n );
130 aGradient.EndColor =
static_cast<sal_Int32
>( aColor );
136 bool const bSuccess =
139 (cmp12 < 0) || (cmp12 == 0
143 SAL_INFO_IF(!bSuccess,
"xmloff.style",
"failed to import draw:angle");
148 aGradient.Border = sal::static_int_cast< sal_Int16 >(nTmpValue);
156 rValue <<= aGradient;
158 if( !aDisplayName.isEmpty() )
162 rStrName = aDisplayName;
178 const OUString& rStrName,
181 awt::Gradient aGradient;
183 if( rStrName.isEmpty() )
186 if( !(rValue >>= aGradient) )
197 bool bEncoded =
false;
205 aStrValue = aOut.makeStringAndClear();
209 if( aGradient.Style != awt::GradientStyle_LINEAR &&
210 aGradient.Style != awt::GradientStyle_AXIAL )
213 aStrValue = aOut.makeStringAndClear();
217 aStrValue = aOut.makeStringAndClear();
223 sal_Int32 aStartValue = 100 -
static_cast<sal_Int32
>(((aColor.
GetRed() + 1) * 100) / 255);
225 aStrValue = aOut.makeStringAndClear();
230 sal_Int32 aEndValue = 100 -
static_cast<sal_Int32
>(((aColor.
GetRed() + 1) * 100) / 255);
232 aStrValue = aOut.makeStringAndClear();
236 if( aGradient.Style != awt::GradientStyle_RADIAL )
239 aStrValue = aOut.makeStringAndClear();
245 aStrValue = aOut.makeStringAndClear();
#define SAL_INFO_IF(condition, area, stream)
~XMLTransGradientStyleImport()
~XMLTransGradientStyleExport()
FastAttributeList & castToFastAttributeList(const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList)
css::uno::Any const & rValue
static const sal_uInt16 LO_7x
sal_uInt16 getGeneratorVersion() const
this checks the build ID and returns
#define XMLOFF_WARN_UNKNOWN(area, rIter)
void AddAttribute(sal_uInt16 nPrefix, const char *pName, const OUString &rValue)
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)
css::uno::Any const SvXMLExport & rExport