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>
61 #include <animations.hxx>
65 using ::com::sun::star::uno::Any;
70 #define MAP_(name,prefix,token,type,context) { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFSVER_010, false }
71 #define MAPV_(name,prefix,token,type,context,version) { name, sizeof(name)-1, prefix, token, type, context, version, false }
72 #define GMAP(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC,context)
73 #define GMAP_D(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC|MID_FLAG_DEFAULT_ITEM_EXPORT,context)
74 #define GMAPV(name,prefix,token,type,context,version) MAPV_(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC,context,version)
75 #define DPMAP(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_DRAWING_PAGE,context)
76 #define TMAP(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_TEXT,context)
77 #define PMAP(name,prefix,token,type,context) MAP_(name,prefix,token,type|XML_TYPE_PROP_PARAGRAPH,context)
78 #define MAP_END() { nullptr, 0, 0, XML_EMPTY, 0 ,0, SvtSaveOptions::ODFSVER_010, false }
393 {
XML_NONE, drawing::LineStyle_NONE },
395 {
XML_DASH, drawing::LineStyle_DASH },
401 {
XML_NONE, drawing::LineJoint_NONE },
411 {
XML_BUTT, drawing::LineCap_BUTT },
420 {
XML_NONE, drawing::FillStyle_NONE },
438 {
XML_FAST, presentation::AnimationSpeed_FAST },
439 {
XML_MEDIUM, presentation::AnimationSpeed_MEDIUM },
440 {
XML_SLOW, presentation::AnimationSpeed_SLOW },
446 {
XML_NONE, presentation::FadeEffect_NONE },
482 {
XML_RANDOM, presentation::FadeEffect_RANDOM },
509 {
XML_CURVE, drawing::ConnectorType_CURVE },
510 {
XML_LINE, drawing::ConnectorType_LINE },
511 {
XML_LINES, drawing::ConnectorType_LINES },
527 {
XML_OBJECT, drawing::NormalsKind_SPECIFIC },
528 {
XML_FLAT, drawing::NormalsKind_FLAT },
535 {
XML_OBJECT, drawing::TextureProjectionMode_OBJECTSPECIFIC },
536 {
XML_PARALLEL, drawing::TextureProjectionMode_PARALLEL },
537 {
XML_SPHERE, drawing::TextureProjectionMode_SPHERE },
543 {
XML_OBJECT, drawing::TextureProjectionMode_OBJECTSPECIFIC },
544 {
XML_PARALLEL, drawing::TextureProjectionMode_PARALLEL },
545 {
XML_SPHERE, drawing::TextureProjectionMode_SPHERE },
552 {
XML_COLOR, drawing::TextureKind_COLOR },
560 {
XML_BLEND, drawing::TextureMode_BLEND },
567 {
XML_TOP, drawing::RectanglePoint_MIDDLE_TOP },
569 {
XML_LEFT, drawing::RectanglePoint_LEFT_MIDDLE },
570 {
XML_CENTER, drawing::RectanglePoint_MIDDLE_MIDDLE },
571 {
XML_RIGHT, drawing::RectanglePoint_RIGHT_MIDDLE },
573 {
XML_BOTTOM, drawing::RectanglePoint_MIDDLE_BOTTOM },
580 {
XML_FULL, drawing::CircleKind_FULL },
582 {
XML_CUT, drawing::CircleKind_CUT },
583 {
XML_ARC, drawing::CircleKind_ARC },
596 {
XML_NONE, drawing::TextAnimationKind_NONE },
598 {
XML_SCROLL, drawing::TextAnimationKind_SCROLL },
600 {
XML_SLIDE, drawing::TextAnimationKind_SLIDE },
606 {
XML_FALSE, drawing::TextAnimationKind_NONE },
607 {
XML_TRUE, drawing::TextAnimationKind_BLINK },
608 {
XML_FALSE, drawing::TextAnimationKind_SCROLL },
609 {
XML_FALSE, drawing::TextAnimationKind_ALTERNATE },
610 {
XML_FALSE, drawing::TextAnimationKind_SLIDE },
616 {
XML_LEFT, drawing::TextAnimationDirection_LEFT },
617 {
XML_RIGHT, drawing::TextAnimationDirection_RIGHT },
618 {
XML_UP, drawing::TextAnimationDirection_UP },
619 {
XML_DOWN, drawing::TextAnimationDirection_DOWN },
625 {
XML_LEFT, drawing::TextHorizontalAdjust_LEFT },
626 {
XML_CENTER, drawing::TextHorizontalAdjust_CENTER },
627 {
XML_RIGHT, drawing::TextHorizontalAdjust_RIGHT },
628 {
XML_JUSTIFY, drawing::TextHorizontalAdjust_BLOCK },
634 {
XML_TOP, drawing::TextVerticalAdjust_TOP },
635 {
XML_MIDDLE, drawing::TextVerticalAdjust_CENTER },
636 {
XML_BOTTOM, drawing::TextVerticalAdjust_BOTTOM },
637 {
XML_JUSTIFY, drawing::TextVerticalAdjust_BLOCK },
644 {
XML_FALSE, drawing::TextFitToSizeType_NONE },
645 {
XML_TRUE, drawing::TextFitToSizeType_PROPORTIONAL },
646 {
XML_TRUE, drawing::TextFitToSizeType_ALLLINES },
647 {
XML_FALSE, drawing::TextFitToSizeType_AUTOFIT },
653 {
XML_FALSE, drawing::TextFitToSizeType_NONE },
654 {
XML_TRUE, drawing::TextFitToSizeType_PROPORTIONAL },
655 {
XML_ALL, drawing::TextFitToSizeType_ALLLINES },
662 {
XML_FALSE, drawing::TextFitToSizeType_NONE },
663 {
XML_FALSE, drawing::TextFitToSizeType_PROPORTIONAL },
664 {
XML_FALSE, drawing::TextFitToSizeType_ALLLINES },
665 {
XML_TRUE, drawing::TextFitToSizeType_AUTOFIT },
688 {
XML_INSIDE, drawing::MeasureTextHorzPos_INSIDE },
696 {
XML_ABOVE, drawing::MeasureTextVertPos_EAST },
697 {
XML_BELOW, drawing::MeasureTextVertPos_WEST },
698 {
XML_CENTER, drawing::MeasureTextVertPos_CENTERED },
770 const OUString& rStrImpValue,
774 OUString& rStrExpValue,
775 const css::uno::Any&
rValue,
781 bool XMLCaptionEscapeRelative::importXML(
const OUString& rStrImpValue, Any&
rValue,
const SvXMLUnitConverter& )
const
793 bool XMLCaptionEscapeRelative::exportXML( OUString& rStrExpValue,
const Any& rValue,
const SvXMLUnitConverter& )
const
795 sal_Int32 nValue = 0;
796 if( !(rValue >>= nValue ) )
802 rStrExpValue = aOut.makeStringAndClear();
811 explicit XMLMoveSizeProtectHdl( sal_Int32 nType ) :
mnType( nType ) {}
814 const OUString& rStrImpValue,
815 css::uno::Any& rValue,
818 OUString& rStrExpValue,
819 const css::uno::Any& rValue,
827 bool XMLMoveSizeProtectHdl::importXML(
const OUString& rStrImpValue, Any& rValue,
const SvXMLUnitConverter& )
const
834 bool XMLMoveSizeProtectHdl::exportXML( OUString& rStrExpValue,
const Any& rValue,
const SvXMLUnitConverter& )
const
837 if( !(rValue >>= bValue ) )
842 if( !rStrExpValue.isEmpty() )
856 virtual bool importXML(
const OUString& rStrImpValue, css::uno::Any& rValue,
const SvXMLUnitConverter& rUnitConverter )
const override;
857 virtual bool exportXML( OUString& rStrExpValue,
const css::uno::Any& rValue,
const SvXMLUnitConverter& rUnitConverter )
const override;
862 bool XMLSdHeaderFooterVisibilityTypeHdl::importXML(
863 const OUString& rStrImpValue,
864 css::uno::Any& rValue,
875 bool XMLSdHeaderFooterVisibilityTypeHdl::exportXML(
876 OUString& rStrExpValue,
883 if (rValue >>= bValue)
887 rStrExpValue = aOut.makeStringAndClear();
900 virtual bool importXML(
const OUString& rStrImpValue, css::uno::Any& rValue,
const SvXMLUnitConverter& rUnitConverter)
const override;
901 virtual bool exportXML(OUString& rStrExpValue,
const css::uno::Any& rValue,
const SvXMLUnitConverter& rUnitConverter)
const override;
906 bool XMLSdRotationAngleTypeHdl::importXML(
907 const OUString& rStrImpValue,
908 css::uno::Any& rValue,
915 nValue = (nValue % 360);
917 nValue = 360 + nValue;
919 if (nValue < 45 || nValue > 315)
921 else if (nValue < 180)
931 bool XMLSdRotationAngleTypeHdl::exportXML(
932 OUString& rStrExpValue,
937 bool bRet = (rValue >>= nAngle) && nAngle != 0;
940 rStrExpValue = OUString::number(nAngle / 100);
950 XMLFitToSizeEnumPropertyHdl(
970 rValue.get<drawing::TextFitToSizeType>() < any.get<drawing::TextFitToSizeType>())
981 :
mxModel( xModel ), mpExport(nullptr), mpImport( &rImport )
986 :
mxModel( xModel ), mpExport( &rExport ), mpImport(nullptr)
1120 uno::Reference<ucb::XAnyCompareFactory> xCompareFac(
mxModel, uno::UNO_QUERY );
1121 uno::Reference<ucb::XAnyCompare> xCompare;
1122 if( xCompareFac.is() )
1123 xCompare = xCompareFac->createAnyCompareByName(
"NumberingRules" );
1178 pHdl =
new XMLFitToSizeEnumPropertyHdl(pXML_FitToSize_Enum_Odf12);
1182 pHdl =
new XMLFitToSizeEnumPropertyHdl(pXML_FitToSize_Enum);
1188 pHdl =
new XMLFitToSizeEnumPropertyHdl(pXML_ShrinkToFit_Enum);
1233 pHdl = new ::xmloff::ImageScaleModeHandler;
1236 pHdl = new ::xmloff::OControlTextEmphasisHandler;
1248 pHdl =
new XMLCaptionEscapeRelative;
1280 pHdl =
new XMLMoveSizeProtectHdl( nType );
1283 pHdl =
new XMLSdHeaderFooterVisibilityTypeHdl;
1286 pHdl =
new XMLSdRotationAngleTypeHdl;
1309 , maNumRuleExp( rExport )
1310 , mbIsInAutoStyles( true )
1319 bool bEnableFoFontFamily,
1320 std::vector< XMLPropertyState >& rProperties,
1321 const uno::Reference< beans::XPropertySet >& rPropSet )
const
1364 for(
auto& rProp : rProperties )
1377 property->mnIndex = -1;
1387 property->mnIndex = -1;
1413 if( (
property->maValue >>= aStr) && aStr.isEmpty() )
1448 if( !
property->maValue.hasValue() )
1455 sal_Int32 nValue = 0;
1456 if( (
property->maValue >>= nValue) && (nValue < 0) )
1457 property->mnIndex = -1;
1464 if( (
property->maValue >>= bProtected) && !bProtected )
1471 if( (
property->maValue >>= bProtected) && !bProtected )
1484 if( pShapeWritingMode && (pTextWritingMode || pControlWritingMode) )
1486 if( pTextWritingMode )
1487 pTextWritingMode->
mnIndex = -1;
1488 if( pControlWritingMode )
1489 pControlWritingMode->
mnIndex = -1;
1491 text::WritingMode eWritingMode;
1492 if( pShapeWritingMode->
maValue >>= eWritingMode )
1494 if( text::WritingMode_LR_TB == eWritingMode )
1496 pShapeWritingMode->
mnIndex = -1;
1497 pShapeWritingMode =
nullptr;
1501 else if( pTextWritingMode && pControlWritingMode )
1503 pControlWritingMode->
mnIndex = -1;
1505 sal_Int32 eWritingMode;
1506 if (pTextWritingMode->
maValue >>= eWritingMode)
1508 if (text::WritingMode2::LR_TB == eWritingMode)
1510 pTextWritingMode->
mnIndex = -1;
1511 pTextWritingMode =
nullptr;
1517 if( pOLEIsInternal )
1520 if( (pOLEIsInternal->
maValue >>= bInternal) && !bInternal )
1524 awt::Rectangle aRect;
1525 if( rPropSet->getPropertyValue(
"VisibleArea" ) >>= aRect )
1527 if( pOLEVisAreaLeft )
1530 pOLEVisAreaLeft->
maValue <<= aRect;
1532 if( pOLEVisAreaTop )
1535 pOLEVisAreaTop->
maValue <<= aRect;
1537 if( pOLEVisAreaWidth )
1540 pOLEVisAreaWidth->
maValue <<= aRect;
1542 if( pOLEVisAreaHeight )
1545 pOLEVisAreaHeight->
maValue <<= aRect;
1549 catch( uno::Exception& )
1555 if( pOLEVisAreaLeft ) pOLEVisAreaLeft->
mnIndex = -1;
1556 if( pOLEVisAreaTop ) pOLEVisAreaTop->
mnIndex = -1;
1557 if( pOLEVisAreaWidth ) pOLEVisAreaWidth->
mnIndex = -1;
1558 if( pOLEVisAreaHeight ) pOLEVisAreaHeight->
mnIndex = -1;
1564 if( pTextAnimationBlinking && pTextAnimationKind )
1566 drawing::TextAnimationKind eKind;
1567 if( (pTextAnimationKind->
maValue >>= eKind) && eKind != drawing::TextAnimationKind_BLINK )
1569 pTextAnimationBlinking->
mnIndex = -1;
1573 pTextAnimationKind->
mnIndex = -1;
1577 if( pRepeatOffsetX && pRepeatOffsetY )
1579 sal_Int32 nOffset = 0;
1580 if( ( pRepeatOffsetX->
maValue >>= nOffset ) && ( nOffset == 0 ) )
1589 sal_Int32 nStyle = 0;
1591 if(pFontWorkStyle->
maValue >>= nStyle)
1597 pFontWorkAdjust->
mnIndex = -1;
1598 if(pFontWorkDistance)
1599 pFontWorkDistance->
mnIndex = -1;
1603 pFontWorkMirror->
mnIndex = -1;
1604 if(pFontWorkOutline)
1605 pFontWorkOutline->
mnIndex = -1;
1607 pFontWorkShadow->
mnIndex = -1;
1608 if(pFontWorkShadowColor)
1609 pFontWorkShadowColor->
mnIndex = -1;
1610 if(pFontWorkShadowOffsetx)
1611 pFontWorkShadowOffsetx->
mnIndex = -1;
1612 if(pFontWorkShadowOffsety)
1613 pFontWorkShadowOffsety->
mnIndex = -1;
1616 if(pFontWorkHideform)
1617 pFontWorkHideform->
mnIndex = -1;
1618 if(pFontWorkShadowTransparence)
1619 pFontWorkShadowTransparence->
mnIndex = -1;
1624 if( pCaptionIsEscRel )
1626 bool bIsRel =
false;
1627 pCaptionIsEscRel->
maValue >>= bIsRel;
1631 if( pCaptionEscAbs )
1636 if( pCaptionEscRel )
1640 pCaptionIsEscRel->
mnIndex = -1;
1643 if( pClipState !=
nullptr && pClip11State !=
nullptr )
1654 const ::std::vector< XMLPropertyState > *pProperties,
1655 sal_uInt32 nIdx )
const
1673 const ::std::vector< XMLPropertyState > *pProperties,
1674 sal_uInt32 nIdx)
const
1683 uno::Reference< container::XIndexReplace > xNumRule( rProperty.
maValue, uno::UNO_QUERY );
1685 const_cast<XMLShapeExportPropertyMapper*>(
this)->maNumRuleExp.exportNumberingRule(
GetStyleName(),
false, xNumRule);
1706 bool bEnableFoFontFamily,
1707 std::vector< XMLPropertyState >& rProperties,
1708 const uno::Reference< beans::XPropertySet >& rPropSet )
const
1718 sal_Int16 nTransitionType = 0;
1721 for(
auto& rProp : rProperties )
1744 (*property).mnIndex = -1;
1749 (((*property).maValue >>= nTransitionType) && (nTransitionType == 0)) )
1750 (*property).mnIndex = -1;
1755 sal_Int16 nTransitionSubtype = sal_Int16();
1757 (((*property).maValue >>= nTransitionSubtype) && (nTransitionSubtype == 0)) )
1758 (*property).mnIndex = -1;
1766 (((*property).maValue >>= bDirection) && bDirection) )
1767 (*property).mnIndex = -1;
1772 (*property).mnIndex = -1;
1778 presentation::AnimationSpeed aEnum;
1779 if( ((*property).maValue >>= aEnum) && aEnum == presentation::AnimationSpeed_MEDIUM )
1780 (*property).mnIndex = -1;
1786 (*property).maValue >>= bVisible;
1788 (*property).mnIndex = -1;
1799 (*property).maValue >>= aValue;
1800 if( aValue.isEmpty() )
1801 (*property).mnIndex = -1;
1815 if( pTransitionFadeColor && nTransitionType != css::animations::TransitionType::FADE )
1816 pTransitionFadeColor->mnIndex = -1;
1818 if( pDateTimeFormat && pDateTimeUpdate )
1820 bool bIsFixed =
false;
1821 pDateTimeUpdate->maValue >>= bIsFixed;
1823 pDateTimeFormat->mnIndex = -1;
1826 if( pRepeatOffsetX && pRepeatOffsetY )
1828 sal_Int32 nOffset = 0;
1829 if( ( pRepeatOffsetX->maValue >>= nOffset ) && ( nOffset == 0 ) )
1830 pRepeatOffsetX->mnIndex = -1;
1832 pRepeatOffsetY->mnIndex = -1;
1835 if( pTransType && pTransDuration )
1837 sal_Int32 nChange = 0;
1838 pTransType->maValue >>= nChange;
1842 pTransDuration->mnIndex = -1;
1846 pTransType->mnIndex = -1;
1856 const ::std::vector< XMLPropertyState > *pProperties,
1857 sal_uInt32 nIdx)
const
1864 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
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
#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
#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
css::uno::Any const & rValue
#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:
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
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 char *pName, 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[]
#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_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)
#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)
const XMLPropertyMapEntry aXMLSDPresPageProps_onlyHeadersFooter[]
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)
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_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
css::uno::Any const SvXMLExport & rExport
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
#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