20 #include <com/sun/star/animations/TransitionType.hpp>
21 #include <com/sun/star/ucb/XAnyCompareFactory.hpp>
22 #include <com/sun/star/container/XIndexReplace.hpp>
23 #include <com/sun/star/drawing/LineStyle.hpp>
24 #include <com/sun/star/drawing/LineJoint.hpp>
25 #include <com/sun/star/drawing/LineCap.hpp>
26 #include <com/sun/star/presentation/AnimationSpeed.hpp>
27 #include <com/sun/star/presentation/FadeEffect.hpp>
29 #include <com/sun/star/text/WritingMode.hpp>
30 #include <com/sun/star/text/WritingMode2.hpp>
39 #include <com/sun/star/drawing/TextAnimationKind.hpp>
40 #include <com/sun/star/drawing/TextAnimationDirection.hpp>
41 #include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
42 #include <com/sun/star/drawing/TextVerticalAdjust.hpp>
43 #include <com/sun/star/drawing/TextFitToSizeType.hpp>
44 #include <com/sun/star/drawing/MeasureTextHorzPos.hpp>
45 #include <com/sun/star/drawing/MeasureTextVertPos.hpp>
52 #include <com/sun/star/drawing/NormalsKind.hpp>
53 #include <com/sun/star/drawing/TextureProjectionMode.hpp>
54 #include <com/sun/star/drawing/TextureKind.hpp>
55 #include <com/sun/star/drawing/TextureMode.hpp>
56 #include <com/sun/star/beans/XPropertySet.hpp>
62 #include <animations.hxx>
66 using ::com::sun::star::uno::Any;
71 #define MAP_(name,prefix,token,type,context) { name, prefix, token, type, context, SvtSaveOptions::ODFSVER_010, false }
72 #define MAPV_(name,prefix,token,type,context,version) { name, prefix, token, type, context, version, false }
73 #define GMAP(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC,context)
74 #define GMAP_D(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC|MID_FLAG_DEFAULT_ITEM_EXPORT,context)
75 #define GMAPV(name,prefix,token,type,context,version) MAPV_(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC,context,version)
76 #define DPMAP(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_DRAWING_PAGE,context)
77 #define TMAP(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_TEXT,context)
78 #define PMAP(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_PARAGRAPH,context)
79 #define MAP_END() { nullptr, 0, XML_EMPTY, 0 ,0, SvtSaveOptions::ODFSVER_010, false }
390 {
XML_NONE, drawing::LineStyle_NONE },
392 {
XML_DASH, drawing::LineStyle_DASH },
398 {
XML_NONE, drawing::LineJoint_NONE },
408 {
XML_BUTT, drawing::LineCap_BUTT },
417 {
XML_NONE, drawing::FillStyle_NONE },
435 {
XML_FAST, presentation::AnimationSpeed_FAST },
436 {
XML_MEDIUM, presentation::AnimationSpeed_MEDIUM },
437 {
XML_SLOW, presentation::AnimationSpeed_SLOW },
443 {
XML_NONE, presentation::FadeEffect_NONE },
479 {
XML_RANDOM, presentation::FadeEffect_RANDOM },
506 {
XML_CURVE, drawing::ConnectorType_CURVE },
507 {
XML_LINE, drawing::ConnectorType_LINE },
508 {
XML_LINES, drawing::ConnectorType_LINES },
524 {
XML_OBJECT, drawing::NormalsKind_SPECIFIC },
525 {
XML_FLAT, drawing::NormalsKind_FLAT },
532 {
XML_OBJECT, drawing::TextureProjectionMode_OBJECTSPECIFIC },
533 {
XML_PARALLEL, drawing::TextureProjectionMode_PARALLEL },
534 {
XML_SPHERE, drawing::TextureProjectionMode_SPHERE },
540 {
XML_OBJECT, drawing::TextureProjectionMode_OBJECTSPECIFIC },
541 {
XML_PARALLEL, drawing::TextureProjectionMode_PARALLEL },
542 {
XML_SPHERE, drawing::TextureProjectionMode_SPHERE },
549 {
XML_COLOR, drawing::TextureKind_COLOR },
557 {
XML_BLEND, drawing::TextureMode_BLEND },
564 {
XML_TOP, drawing::RectanglePoint_MIDDLE_TOP },
566 {
XML_LEFT, drawing::RectanglePoint_LEFT_MIDDLE },
567 {
XML_CENTER, drawing::RectanglePoint_MIDDLE_MIDDLE },
568 {
XML_RIGHT, drawing::RectanglePoint_RIGHT_MIDDLE },
570 {
XML_BOTTOM, drawing::RectanglePoint_MIDDLE_BOTTOM },
577 {
XML_FULL, drawing::CircleKind_FULL },
579 {
XML_CUT, drawing::CircleKind_CUT },
580 {
XML_ARC, drawing::CircleKind_ARC },
593 {
XML_NONE, drawing::TextAnimationKind_NONE },
595 {
XML_SCROLL, drawing::TextAnimationKind_SCROLL },
597 {
XML_SLIDE, drawing::TextAnimationKind_SLIDE },
603 {
XML_FALSE, drawing::TextAnimationKind_NONE },
604 {
XML_TRUE, drawing::TextAnimationKind_BLINK },
605 {
XML_FALSE, drawing::TextAnimationKind_SCROLL },
606 {
XML_FALSE, drawing::TextAnimationKind_ALTERNATE },
607 {
XML_FALSE, drawing::TextAnimationKind_SLIDE },
613 {
XML_LEFT, drawing::TextAnimationDirection_LEFT },
614 {
XML_RIGHT, drawing::TextAnimationDirection_RIGHT },
615 {
XML_UP, drawing::TextAnimationDirection_UP },
616 {
XML_DOWN, drawing::TextAnimationDirection_DOWN },
622 {
XML_LEFT, drawing::TextHorizontalAdjust_LEFT },
623 {
XML_CENTER, drawing::TextHorizontalAdjust_CENTER },
624 {
XML_RIGHT, drawing::TextHorizontalAdjust_RIGHT },
625 {
XML_JUSTIFY, drawing::TextHorizontalAdjust_BLOCK },
631 {
XML_TOP, drawing::TextVerticalAdjust_TOP },
632 {
XML_MIDDLE, drawing::TextVerticalAdjust_CENTER },
633 {
XML_BOTTOM, drawing::TextVerticalAdjust_BOTTOM },
634 {
XML_JUSTIFY, drawing::TextVerticalAdjust_BLOCK },
641 {
XML_FALSE, drawing::TextFitToSizeType_NONE },
642 {
XML_TRUE, drawing::TextFitToSizeType_PROPORTIONAL },
643 {
XML_TRUE, drawing::TextFitToSizeType_ALLLINES },
644 {
XML_FALSE, drawing::TextFitToSizeType_AUTOFIT },
650 {
XML_FALSE, drawing::TextFitToSizeType_NONE },
651 {
XML_TRUE, drawing::TextFitToSizeType_PROPORTIONAL },
652 {
XML_ALL, drawing::TextFitToSizeType_ALLLINES },
659 {
XML_FALSE, drawing::TextFitToSizeType_NONE },
660 {
XML_FALSE, drawing::TextFitToSizeType_PROPORTIONAL },
661 {
XML_FALSE, drawing::TextFitToSizeType_ALLLINES },
662 {
XML_TRUE, drawing::TextFitToSizeType_AUTOFIT },
685 {
XML_INSIDE, drawing::MeasureTextHorzPos_INSIDE },
693 {
XML_ABOVE, drawing::MeasureTextVertPos_EAST },
694 {
XML_BELOW, drawing::MeasureTextVertPos_WEST },
695 {
XML_CENTER, drawing::MeasureTextVertPos_CENTERED },
767 const OUString& rStrImpValue,
768 css::uno::Any& rValue,
771 OUString& rStrExpValue,
772 const css::uno::Any& rValue,
792 sal_Int32 nValue = 0;
793 if( !(rValue >>= nValue ) )
799 rStrExpValue = aOut.makeStringAndClear();
808 explicit XMLMoveSizeProtectHdl( sal_Int32 nType ) :
mnType( nType ) {}
811 const OUString& rStrImpValue,
812 css::uno::Any& rValue,
815 OUString& rStrExpValue,
816 const css::uno::Any& rValue,
834 if( !(rValue >>= bValue ) )
839 if( !rStrExpValue.isEmpty() )
853 virtual bool importXML(
const OUString& rStrImpValue, css::uno::Any& rValue,
const SvXMLUnitConverter& rUnitConverter )
const override;
854 virtual bool exportXML( OUString& rStrExpValue,
const css::uno::Any& rValue,
const SvXMLUnitConverter& rUnitConverter )
const override;
860 const OUString& rStrImpValue,
861 css::uno::Any& rValue,
873 OUString& rStrExpValue,
880 if (rValue >>= bValue)
884 rStrExpValue = aOut.makeStringAndClear();
897 virtual bool importXML(
const OUString& rStrImpValue, css::uno::Any& rValue,
const SvXMLUnitConverter& rUnitConverter)
const override;
898 virtual bool exportXML(OUString& rStrExpValue,
const css::uno::Any& rValue,
const SvXMLUnitConverter& rUnitConverter)
const override;
904 const OUString& rStrImpValue,
905 css::uno::Any& rValue,
912 nValue = (nValue % 360);
914 nValue = 360 + nValue;
916 if (nValue < 45 || nValue > 315)
918 else if (nValue < 180)
929 OUString& rStrExpValue,
934 bool bRet = (rValue >>= nAngle) && nAngle != 0;
937 rStrExpValue = OUString::number(nAngle / 100);
947 XMLFitToSizeEnumPropertyHdl(
965 assert(any.hasValue());
967 rValue.get<drawing::TextFitToSizeType>() < any.get<drawing::TextFitToSizeType>())
978 :
mxModel( xModel ), mpExport(nullptr), mpImport( &rImport )
983 :
mxModel( xModel ), mpExport( &rExport ), mpImport(nullptr)
1117 uno::Reference<ucb::XAnyCompareFactory> xCompareFac(
mxModel, uno::UNO_QUERY );
1118 uno::Reference<ucb::XAnyCompare> xCompare;
1119 if( xCompareFac.is() )
1120 xCompare = xCompareFac->createAnyCompareByName(
"NumberingRules" );
1175 pHdl =
new XMLFitToSizeEnumPropertyHdl(pXML_FitToSize_Enum_Odf12);
1179 pHdl =
new XMLFitToSizeEnumPropertyHdl(pXML_FitToSize_Enum);
1185 pHdl =
new XMLFitToSizeEnumPropertyHdl(pXML_ShrinkToFit_Enum);
1230 pHdl = new ::xmloff::ImageScaleModeHandler;
1233 pHdl = new ::xmloff::OControlTextEmphasisHandler;
1245 pHdl =
new XMLCaptionEscapeRelative;
1277 pHdl =
new XMLMoveSizeProtectHdl( nType );
1280 pHdl =
new XMLSdHeaderFooterVisibilityTypeHdl;
1283 pHdl =
new XMLSdRotationAngleTypeHdl;
1312 , maNumRuleExp( rExport )
1313 , mbIsInAutoStyles( true )
1322 bool bEnableFoFontFamily,
1323 std::vector< XMLPropertyState >& rProperties,
1324 const uno::Reference< beans::XPropertySet >& rPropSet )
const
1367 for(
auto& rProp : rProperties )
1380 property->mnIndex = -1;
1390 property->mnIndex = -1;
1416 if( (
property->maValue >>= aStr) && aStr.isEmpty() )
1451 if( !
property->maValue.hasValue() )
1458 sal_Int32 nValue = 0;
1459 if( (
property->maValue >>= nValue) && (nValue < 0) )
1460 property->mnIndex = -1;
1467 if( (
property->maValue >>= bProtected) && !bProtected )
1474 if( (
property->maValue >>= bProtected) && !bProtected )
1487 if( pShapeWritingMode && (pTextWritingMode || pControlWritingMode) )
1489 if( pTextWritingMode )
1490 pTextWritingMode->
mnIndex = -1;
1491 if( pControlWritingMode )
1492 pControlWritingMode->
mnIndex = -1;
1494 text::WritingMode eWritingMode;
1495 if( pShapeWritingMode->
maValue >>= eWritingMode )
1497 if( text::WritingMode_LR_TB == eWritingMode )
1499 pShapeWritingMode->
mnIndex = -1;
1500 pShapeWritingMode =
nullptr;
1504 else if( pTextWritingMode && pControlWritingMode )
1506 pControlWritingMode->
mnIndex = -1;
1508 sal_Int32 eWritingMode;
1509 if (pTextWritingMode->
maValue >>= eWritingMode)
1511 if (text::WritingMode2::LR_TB == eWritingMode)
1513 pTextWritingMode->
mnIndex = -1;
1514 pTextWritingMode =
nullptr;
1520 if( pOLEIsInternal )
1523 if( (pOLEIsInternal->
maValue >>= bInternal) && !bInternal )
1527 awt::Rectangle aRect;
1528 if( rPropSet->getPropertyValue(
"VisibleArea" ) >>= aRect )
1530 if( pOLEVisAreaLeft )
1533 pOLEVisAreaLeft->
maValue <<= aRect;
1535 if( pOLEVisAreaTop )
1538 pOLEVisAreaTop->
maValue <<= aRect;
1540 if( pOLEVisAreaWidth )
1543 pOLEVisAreaWidth->
maValue <<= aRect;
1545 if( pOLEVisAreaHeight )
1548 pOLEVisAreaHeight->
maValue <<= aRect;
1552 catch( uno::Exception& )
1558 if( pOLEVisAreaLeft ) pOLEVisAreaLeft->
mnIndex = -1;
1559 if( pOLEVisAreaTop ) pOLEVisAreaTop->
mnIndex = -1;
1560 if( pOLEVisAreaWidth ) pOLEVisAreaWidth->
mnIndex = -1;
1561 if( pOLEVisAreaHeight ) pOLEVisAreaHeight->
mnIndex = -1;
1567 if( pTextAnimationBlinking && pTextAnimationKind )
1569 drawing::TextAnimationKind eKind;
1570 if( (pTextAnimationKind->
maValue >>= eKind) && eKind != drawing::TextAnimationKind_BLINK )
1572 pTextAnimationBlinking->
mnIndex = -1;
1576 pTextAnimationKind->
mnIndex = -1;
1580 if( pRepeatOffsetX && pRepeatOffsetY )
1582 sal_Int32 nOffset = 0;
1583 if( ( pRepeatOffsetX->
maValue >>= nOffset ) && ( nOffset == 0 ) )
1592 sal_Int32 nStyle = 0;
1594 if(pFontWorkStyle->
maValue >>= nStyle)
1600 pFontWorkAdjust->
mnIndex = -1;
1601 if(pFontWorkDistance)
1602 pFontWorkDistance->
mnIndex = -1;
1606 pFontWorkMirror->
mnIndex = -1;
1607 if(pFontWorkOutline)
1608 pFontWorkOutline->
mnIndex = -1;
1610 pFontWorkShadow->
mnIndex = -1;
1611 if(pFontWorkShadowColor)
1612 pFontWorkShadowColor->
mnIndex = -1;
1613 if(pFontWorkShadowOffsetx)
1614 pFontWorkShadowOffsetx->
mnIndex = -1;
1615 if(pFontWorkShadowOffsety)
1616 pFontWorkShadowOffsety->
mnIndex = -1;
1619 if(pFontWorkHideform)
1620 pFontWorkHideform->
mnIndex = -1;
1621 if(pFontWorkShadowTransparence)
1622 pFontWorkShadowTransparence->
mnIndex = -1;
1627 if( pCaptionIsEscRel )
1629 bool bIsRel =
false;
1630 pCaptionIsEscRel->
maValue >>= bIsRel;
1634 if( pCaptionEscAbs )
1639 if( pCaptionEscRel )
1643 pCaptionIsEscRel->
mnIndex = -1;
1646 if( pClipState !=
nullptr && pClip11State !=
nullptr )
1657 const ::std::vector< XMLPropertyState > *pProperties,
1658 sal_uInt32 nIdx )
const
1676 const ::std::vector< XMLPropertyState > *pProperties,
1677 sal_uInt32 nIdx)
const
1686 uno::Reference< container::XIndexReplace > xNumRule( rProperty.
maValue, uno::UNO_QUERY );
1688 const_cast<XMLShapeExportPropertyMapper*>(
this)->maNumRuleExp.exportNumberingRule(
GetStyleName(),
false, xNumRule);
1709 bool bEnableFoFontFamily,
1710 std::vector< XMLPropertyState >& rProperties,
1711 const uno::Reference< beans::XPropertySet >& rPropSet )
const
1721 sal_Int16 nTransitionType = 0;
1724 for(
auto& rProp : rProperties )
1747 (*property).mnIndex = -1;
1752 (((*property).maValue >>= nTransitionType) && (nTransitionType == 0)) )
1753 (*property).mnIndex = -1;
1758 sal_Int16 nTransitionSubtype = sal_Int16();
1760 (((*property).maValue >>= nTransitionSubtype) && (nTransitionSubtype == 0)) )
1761 (*property).mnIndex = -1;
1769 (((*property).maValue >>= bDirection) && bDirection) )
1770 (*property).mnIndex = -1;
1775 (*property).mnIndex = -1;
1781 presentation::AnimationSpeed aEnum;
1782 if( ((*property).maValue >>= aEnum) && aEnum == presentation::AnimationSpeed_MEDIUM )
1783 (*property).mnIndex = -1;
1789 (*property).maValue >>= bVisible;
1791 (*property).mnIndex = -1;
1802 (*property).maValue >>= aValue;
1803 if( aValue.isEmpty() )
1804 (*property).mnIndex = -1;
1818 if( pTransitionFadeColor && nTransitionType != css::animations::TransitionType::FADE )
1819 pTransitionFadeColor->mnIndex = -1;
1821 if( pDateTimeFormat && pDateTimeUpdate )
1823 bool bIsFixed =
false;
1824 pDateTimeUpdate->maValue >>= bIsFixed;
1826 pDateTimeFormat->mnIndex = -1;
1829 if( pRepeatOffsetX && pRepeatOffsetY )
1831 sal_Int32 nOffset = 0;
1832 if( ( pRepeatOffsetX->maValue >>= nOffset ) && ( nOffset == 0 ) )
1833 pRepeatOffsetX->mnIndex = -1;
1835 pRepeatOffsetY->mnIndex = -1;
1838 if( pTransType && pTransDuration )
1840 sal_Int32 nChange = 0;
1841 pTransType->maValue >>= nChange;
1845 pTransDuration->mnIndex = -1;
1849 pTransType->mnIndex = -1;
1859 const ::std::vector< XMLPropertyState > *pProperties,
1860 sal_uInt32 nIdx)
const
1867 if( (rProperty.
maValue >>= aSoundURL) && !aSoundURL.isEmpty() )
SvXMLEnumMapEntry< drawing::TextAnimationKind > const pXML_TextAnimation_Blinking_Enum[]
#define XML_TYPE_TEXT_CLIP11
#define XML_SD_TYPE_FONTWORK_FORM
#define CTF_DATE_TIME_UPDATE
#define CTF_CAPTION_ESCREL
#define XML_SD_TYPE_CELL_ROTATION_ANGLE
#define XML_SD_TYPE_CAPTION_ESC_REL
const SvXMLEnumMapEntry< sal_Int16 > aAnimations_EnumMap_TransitionSubType[]
#define XML_SD_TYPE_CAPTION_IS_ESC_REL
SvXMLEnumMapEntry< presentation::FadeEffect > const aXML_FadeEffect_EnumMap[]
#define XML_SD_TYPE_BACKFACE_CULLING
css::uno::Reference< css::frame::XModel > mxModel
#define XML_SD_TYPE_FITTOSIZE_AUTOFIT
SvXMLEnumMapEntry< drawing::TextVerticalAdjust > const pXML_VerticalAlign_Enum[]
SvXMLEnumMapEntry< drawing::LineStyle > const aXML_LineStyle_EnumMap[]
#define XML_TYPE_SD_MIRROR
#define XML_SD_TYPE_TEX_KIND
SvXMLEnumMapEntry< sal_Int32 > const pXML_Caption_Esc_Dir_Enum[]
#define MID_FLAG_ELEMENT_ITEM_EXPORT
virtual void handleElementItem(SvXMLExport &rExport, const XMLPropertyState &rProperty, SvXmlExportFlags nFlags, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const
this method is called for every item that has the MID_FLAG_ELEMENT_EXPORT flag set ...
#define CTF_HEADER_VISIBLE
virtual const XMLPropertyHandler * GetPropertyHandler(sal_Int32 nType) const
This method retrieves a PropertyHandler for the given XML-type.
#define CTF_CONTROLWRITINGMODE
SvXMLEnumMapEntry< sal_Int32 > const pXML_Fontwork_Shadow_Enum[]
#define XML_TYPE_BUILDIN_CMP_ONLY
#define XML_TYPE_NEG_PERCENT16
This is a handler either only import/exports percent or measure.
#define CTF_TEXTANIMATION_KIND
constexpr sal_uInt16 XML_NAMESPACE_DR3D
SvXMLEnumMapEntry< sal_uInt16 > const pXML_ThemeColor_Enum[]
const OUString & GetStyleName() const
virtual ~XMLShapeExportPropertyMapper() override
#define CTF_NUMBERINGRULES
#define XML_TYPE_COLOR_MODE
constexpr sal_uInt16 XML_NAMESPACE_DRAW_EXT
#define CTF_DATE_TIME_TEXT
#define CTF_SD_OLE_VIS_AREA_EXPORT_LEFT
virtual const XMLPropertyHandler * GetPropertyHandler(sal_Int32 nType) const override
This method retrieves a PropertyHandler for the given XML-type.
the SvXMLTypeConverter converts values of various types from their internal representation to the tex...
#define CTF_FONTWORK_SHADOWCOLOR
enum SAL_DLLPUBLIC_RTTI FillStyle
#define MID_FLAG_NO_PROPERTY_IMPORT
SvXMLEnumMapEntry< drawing::ConnectorType > const aXML_ConnectionKind_EnumMap[]
#define XML_TYPE_PERCENT16
const XMLPropertyMapEntry aXMLSDProperties[]
virtual ~XMLSdPropHdlFactory() override
SvXMLEnumMapEntry< drawing::RectanglePoint > const aXML_RefPoint_EnumMap[]
#define XML_SD_TYPE_TRANSTIION_DIRECTION
#define CTF_PAGE_TRANS_TYPE
const SvXMLEnumMapEntry< sal_Int16 > aAnimations_EnumMap_TransitionType[]
virtual ~XMLShapePropertySetMapper() override
#define CTF_PAGE_TRANS_DURATION
#define CTF_FRAME_MARGIN_HORI
#define XML_TYPE_WRAP_OPTION
PropertyHandler for the XML-data-type:
#define XML_SD_TYPE_BITMAP_MODE
SvXMLEnumMapEntry< drawing::TextAnimationKind > const pXML_TextAnimation_Enum[]
#define XML_SD_TYPE_CAPTION_TYPE
#define CTF_PAGE_TRANSITION_DIRECTION
constexpr sal_uInt16 XML_NAMESPACE_XLINK
#define CTF_FONTWORK_FORM
virtual void handleElementItem(SvXMLExport &rExport, const XMLPropertyState &rProperty, SvXmlExportFlags nFlags, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const override
this method is called for every item that has the MID_FLAG_ELEMENT_EXPORT flag set ...
#define CTF_FONTWORK_STYLE
css::uno::Reference< css::frame::XModel2 > mxModel
#define XML_TYPE_TEXT_ANIMATION_BLINKING
SvXMLEnumMapEntry< drawing::TextureProjectionMode > const aXML_TexGenerationY_EnumMap[]
SvXMLEnumMapEntry< drawing::TextFitToSizeType > const pXML_FitToSize_Enum_Odf12[]
#define CTF_SD_OLE_VIS_AREA_EXPORT_WIDTH
Abstract base-class for different XML-types.
constexpr sal_uInt16 XML_NAMESPACE_LO_EXT
bool IsXMLToken(std::u16string_view rString, enum XMLTokenEnum eToken)
compare eToken to the string
#define CTF_FRAME_DISPLAY_SCROLLBAR
SvXMLEnumMapEntry< drawing::TextureKind > const aXML_TexKind_EnumMap[]
#define CTF_SD_MOVE_PROTECT
#define CTF_FILLGRADIENTNAME
virtual void handleSpecialItem(SvXMLAttributeList &rAttrList, const XMLPropertyState &rProperty, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set ...
PropertyHandler for a named xml bool type:
#define CTF_FILLTRANSNAME
#define XML_SD_TYPE_NUMBULLET
#define XML_SD_TYPE_BITMAPREPOFFSETY
#define CTF_PAGE_TRANS_STYLE
#define XML_SD_TYPE_MEASURE_UNIT
#define CTF_DATE_TIME_VISIBLE
#define CTF_REPEAT_OFFSET_X
#define GMAP(name, prefix, token, type, context)
#define TMAP(name, prefix, token, type, context)
const XMLPropertyMapEntry aXMLSDPresPageProps[]
#define CTF_CAPTION_ISESCREL
virtual void handleSpecialItem(SvXMLAttributeList &rAttrList, const XMLPropertyState &rProperty, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const override
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set ...
#define XML_SD_TYPE_DATETIMEUPDATE
PropertyHandler for a generic xml enumeration type:
#define MID_FLAG_MERGE_ATTRIBUTE
#define XML_TYPE_DURATION16_MS
#define XML_TYPE_STYLENAME
SvXMLEnumMapEntry< drawing::FillStyle > const aXML_FillStyle_EnumMap[]
#define XML_TYPE_DOUBLE_PERCENT
#define XML_SD_TYPE_TEXT_CROSSEDOUT
#define XML_SD_TYPE_STROKE
#define XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT
#define CTF_FILLBITMAPNAME
PropertyHandler for the XML-data-type:
virtual void ContextFilter(bool bEnableFoFontFamily,::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const
Application-specific filter.
#define CTF_SD_CONTROL_SHAPE_DATA_STYLE
#define XML_SD_TYPE_BITMAP_REFPOINT
#define XML_TYPE_TEXT_CLIP
void AddAttribute(sal_uInt16 nPrefix, const OUString &rName, const OUString &rValue)
#define XML_TYPE_RECTANGLE_HEIGHT
#define MID_FLAG_MULTI_PROPERTY
#define XML_SD_TYPE_LINECAP
#define DPMAP(name, prefix, token, type, context)
#define XML_SD_TYPE_PRESPAGE_VISIBILITY
#define CTF_SD_SIZE_PROTECT
#define CTF_FOOTER_VISIBLE
OUString GetRelativeReference(const OUString &rValue)
#define XML_SD_TYPE_PRESPAGE_STYLE
SvXMLEnumMapEntry< sal_Int32 > const pXML_Caption_Type_Enum[]
SvXMLEnumMapEntry< drawing::NormalsKind > const aXML_NormalsKind_EnumMap[]
constexpr sal_uInt16 XML_NAMESPACE_DRAW
#define MID_FLAG_ELEMENT_ITEM
SvXMLEnumMapEntry< drawing::MeasureTextHorzPos > const pXML_Measure_HAlign_Enum[]
#define CTF_PAGE_TRANS_SPEED
SvXMLEnumMapEntry< sal_Int32 > const pXML_MeasureUnit_Enum[]
XMLOFF_DLLPUBLIC void exportXML(OUString const &rStrName, css::uno::Any const &rValue, SvXMLExport &rExport)
#define CTF_PAGE_TRANSITION_FADECOLOR
#define CTF_SD_OLE_VIS_AREA_IMPORT_TOP
SvXMLEnumMapEntry< presentation::AnimationSpeed > const aXML_TransSpeed_EnumMap[]
#define CTF_CAPTION_ESCABS
#define CTF_PAGE_SOUND_URL
const XMLPropertyMapEntry aXMLTableShapeAttributes[]
contains the attribute to property mapping for a drawing layer table WARNING: if attributes are added...
Abstract base-class for different XML-types.
SvtSaveOptions::ODFSaneDefaultVersion getSaneDefaultVersion() const
returns the deterministic version for odf export
#define XML_SD_TYPE_PRESPAGE_TYPE
#define CTF_SD_OLE_VIS_AREA_IMPORT_HEIGHT
#define CTF_SD_OLE_ISINTERNAL
constexpr sal_uInt16 XML_NAMESPACE_SVG
#define XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE
#define CTF_FONTWORK_SHADOWTRANSPARENCE
#define XML_SD_TYPE_TRANSITION_TYPE
constexpr sal_uInt16 XML_NAMESPACE_FO
#define CTF_SD_OLE_VIS_AREA_EXPORT_HEIGHT
#define CTF_SD_OLE_VIS_AREA_IMPORT_WIDTH
constexpr sal_uInt16 XML_NAMESPACE_TEXT
SvXMLEnumMapEntry< sal_Int32 > const pXML_Fontwork_Form_Enum[]
#define XML_SD_TYPE_MEASURE_HALIGN
#define CTF_PAGE_NUMBER_VISIBLE
#define GMAPV(name, prefix, token, type, context, version)
#define XML_SD_TYPE_DATETIME_FORMAT
#define XML_TYPE_ATTRIBUTE_CONTAINER
#define XML_TYPE_THEME_COLOR
#define XML_SD_TYPE_BITMAPREPOFFSETX
#define XML_TYPE_CONTROL_TEXT_EMPHASIZE
#define XML_TYPE_TEXT_ANIMATION_DIRECTION
#define XML_SD_TYPE_SIZE_PROTECT
#define XML_TYPE_TEXT_ANIMATION_STEPS
#define XML_SD_TYPE_TEX_MODE
#define MID_FLAG_NO_PROPERTY
#define XML_TYPE_TEXT_ANIMATION
#define CTF_TEXTWRITINGMODE
#define XML_TYPE_NEG_PERCENT
#define GMAP_D(name, prefix, token, type, context)
#define XML_SD_TYPE_PRESPAGE_SPEED
#define MID_FLAG_NO_PROPERTY_EXPORT
Represents a property with its API-name, its XML-name and the type of its value.
#define XML_TYPE_MEASURE_PX
virtual bool exportXML(OUString &rStrExpValue, const css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const =0
Exports the given value according to the XML-data-type corresponding to the derived class...
#define XML_SD_TYPE_FILLSTYLE
SvXMLEnumMapEntry< drawing::TextAnimationDirection > const pXML_TextAnimationDirection_Enum[]
XMLShapeExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper, SvXMLExport &rExport)
SvXMLEnumMapEntry< drawing::LineCap > const aXML_LineCap_EnumMap[]
#define MID_FLAG_SPECIAL_ITEM
#define XML_SD_TYPE_CAPTION_ESC_ABS
PropertyHandler for the list-style.
#define CTF_FRAME_DISPLAY_BORDER
#define XML_SD_TYPE_NORMALS_KIND
#define XML_TYPE_TEXT_DRAW_ASPECT
#define XML_TYPE_NUMBER16
#define CTF_FONTWORK_HIDEFORM
#define CTF_FRAME_MARGIN_VERT
virtual void ContextFilter(bool bEnableFoFontFamily,::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const override
Application-specific filter.
#define XML_SD_TYPE_FILLBITMAPSIZE
SvXMLEnumMapEntry< drawing::TextFitToSizeType > const pXML_ShrinkToFit_Enum[]
#define CTF_FILLHATCHNAME
#define CTF_TEXTANIMATION_BLINKING
static bool convertBool(bool &rBool, std::u16string_view rString)
#define XML_SD_TYPE_VISIBLE_HIDDEN
#define MID_FLAG_MERGE_PROPERTY
#define CTF_SD_OLE_ASPECT
#define CTF_LINESTARTNAME
static bool convertPercent(sal_Int32 &rValue, std::u16string_view rString)
XMLOFF_DLLPUBLIC bool importXML(css::uno::Reference< css::xml::sax::XFastAttributeList > const &xAttrList, css::uno::Any &rValue, OUString &rStrName, SvXMLImport &rImport)
#define XML_TYPE_RECTANGLE_WIDTH
#define CTF_SD_OLE_VIS_AREA_EXPORT_TOP
#define CTF_PAGE_BACKSIZE
#define CTF_PAGE_TRANSITION_TYPE
#define XML_SD_TYPE_LINEJOIN
#define XML_SD_TYPE_NORMALS_DIRECTION
#define XML_SD_TYPE_FONTWORK_STYLE
Map an XMLTokenEnum to an enum value.
constexpr sal_uInt16 XML_NAMESPACE_PRESENTATION
#define CTF_FONTWORK_SHADOW
#define XML_SD_TYPE_MEASURE_VALIGN
SvXMLEnumMapEntry< drawing::TextureProjectionMode > const aXML_TexGenerationX_EnumMap[]
#define CTF_FONTWORK_ADJUST
#define CTF_FONTWORK_SHADOWOFFSETX
#define XML_SD_TYPE_CONTROL_BORDER
SvXMLEnumMapEntry< sal_Int32 > const pXML_Fontwork_Style_Enum[]
constexpr sal_uInt16 XML_NAMESPACE_TABLE
#define MAP_(name, prefix, token, type, context)
SvXMLEnumMapEntry< drawing::BitmapMode > const aXML_BitmapMode_EnumMap[]
#define XML_SD_TYPE_TRANSTIION_SUBTYPE
#define XML_SD_TYPE_MEASURE_PLACING
#define PMAP(name, prefix, token, type, context)
#define XML_SD_TYPE_VERTICAL_ALIGN
#define XML_SD_TYPE_TEXT_ALIGN
#define XML_SD_TYPE_CONTROL_BORDER_COLOR
#define CTF_FONTWORK_DISTANCE
const OUString & GetXMLToken(enum XMLTokenEnum eToken)
return the OUString representation for eToken
constexpr sal_uInt16 XML_NAMESPACE_SMIL
Handling of tokens in XML:
#define CTF_SD_OLE_VIS_AREA_IMPORT_LEFT
#define CTF_FONTWORK_SHADOWOFFSETY
XMLPageExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper, SvXMLExport &rExport)
#define XML_TYPE_TEXT_COLUMNS
Smart struct to transport an Any with an index to the appropriate property-name.
#define CTF_FONTWORK_START
#define XML_SD_TYPE_LOGICAL_SIZE
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const override
Imports the given value according to the XML-data-type corresponding to the derived class...
SvXMLEnumMapEntry< drawing::TextFitToSizeType > const pXML_FitToSize_Enum[]
#define XML_SD_TYPE_CAPTION_ANGLE_TYPE
Abstract base-class for different XML-types.
#define XML_TYPE_PERCENT100
#define XML_SD_TYPE_FONTWORK_ADJUST
#define CTF_DATE_TIME_FORMAT
#define XML_SD_TYPE_TEX_GENERATION_MODE_X
SvXMLEnumMapEntry< drawing::TextureMode > const aXML_TexMode_EnumMap[]
SvXMLEnumMapEntry< sal_Int32 > const pXML_Fontwork_Adjust_Enum[]
SvXMLEnumMapEntry< drawing::LineJoint > const aXML_LineJoint_EnumMap[]
#define XML_SD_TYPE_PRESPAGE_DURATION
#define XML_SD_TYPE_PRESPAGE_BACKSIZE
SvXMLEnumMapEntry< drawing::TextHorizontalAdjust > const pXML_TextAlign_Enum[]
#define XML_SD_TYPE_FONTWORK_SHADOW
virtual bool importXML(const OUString &rStrImpValue, css::uno::Any &rValue, const SvXMLUnitConverter &rUnitConverter) const =0
Imports the given value according to the XML-data-type corresponding to the derived class...
Abstract base-class for different XML-types.
SvXMLEnumMapEntry< text::WritingMode > const aXML_WritingMode_EnumMap[]
#define XML_SD_TYPE_OPACITY
#define XML_SD_TYPE_WRITINGMODE
#define CTF_FONTWORK_MIRROR
#define CTF_REPEAT_OFFSET_Y
#define XML_SD_TYPE_MOVE_PROTECT
virtual void ContextFilter(bool bEnableFoFontFamily,::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const override
Application-specific filter.
This is a handler that returns true for import if the attribute string contains a '' value...
SvXMLExportFlags getExportFlags() const
#define XML_SD_TYPE_IMAGE_SCALE_MODE
Abstract base-class for different XML-types.
#define XML_SD_TYPE_FITTOSIZE
#define CTF_FONTWORK_OUTLINE
SvXMLEnumMapEntry< drawing::CircleKind > const aXML_CircleKind_EnumMap[]
XMLShapePropertySetMapper(const rtl::Reference< XMLPropertyHandlerFactory > &rFactoryRef, bool bForExport)
#define CTF_PAGE_TRANSITION_SUBTYPE
constexpr sal_uInt16 XML_NAMESPACE_STYLE
#define XML_TYPE_RECTANGLE_TOP
#define XML_TYPE_RECTANGLE_LEFT
SvXMLEnumMapEntry< drawing::MeasureTextVertPos > const pXML_Measure_VAlign_Enum[]
#define CTF_SD_NUMBERINGRULES_NAME
virtual ~XMLPageExportPropertyMapper() override
const rtl::Reference< XMLPropertySetMapper > & getPropertySetMapper() const
virtual void handleElementItem(SvXMLExport &rExport, const XMLPropertyState &rProperty, SvXmlExportFlags nFlags, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const override
this method is called for every item that has the MID_FLAG_ELEMENT_EXPORT flag set ...
void PutHdlCache(sal_Int32 nType, const XMLPropertyHandler *pHdl) const
Puts a PropertyHandler into the internal cache.
XMLSdPropHdlFactory(css::uno::Reference< css::frame::XModel > const &xModel, SvXMLExport &rExport)
SvXMLEnumMapEntry< sal_Int32 > const aXML_PresChange_EnumMap[]
#define XML_SD_TYPE_CAPTION_ESC_DIR
static bool convertNumber(sal_Int32 &rValue, std::u16string_view aString, sal_Int32 nMin=SAL_MIN_INT32, sal_Int32 nMax=SAL_MAX_INT32)
#define XML_SD_TYPE_TEX_GENERATION_MODE_Y