From feae30c4ce1a1aa303500371b858f871d4ef88fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolnai=20Tam=C3=A1s?= Date: Sat, 8 Feb 2014 01:50:55 +0100 Subject: [PATCH] ODF export/import: text vertical adjustment attribute of text frames ODF standard handle 'textarea-vertical-align' as a 'graphic-property' which "specifies formatting properties for chart, draw, graphic, and frame elements". So this change fit to the standard. Change-Id: I956f512953380983c2c882e943178335fd4dbfeb --- include/xmloff/xmltypes.hxx | 1 + .../odfexport/data/textframe-vertadjust.odt | Bin 0 -> 12850 bytes sw/qa/extras/odfexport/odfexport.cxx | 15 +++++++++++++++ xmloff/source/text/txtprhdl.cxx | 17 +++++++++++++++-- xmloff/source/text/txtprmap.cxx | 1 + 5 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 sw/qa/extras/odfexport/data/textframe-vertadjust.odt diff --git a/include/xmloff/xmltypes.hxx b/include/xmloff/xmltypes.hxx index 55cac8348135..3c8d7376db92 100644 --- a/include/xmloff/xmltypes.hxx +++ b/include/xmloff/xmltypes.hxx @@ -276,6 +276,7 @@ #define XML_TYPE_CHAR_SCRIPT (XML_TEXT_TYPES_START + 116) #define XML_TYPE_CHAR_RFC_LANGUAGE_TAG (XML_TEXT_TYPES_START + 117) +#define XML_TYPE_VERTICAL_ALIGN (XML_TEXT_TYPES_START + 118) #define XML_SCH_TYPES_START (0x4 << XML_TYPE_APP_SHIFT) #define XML_PM_TYPES_START (0x5 << XML_TYPE_APP_SHIFT) // page master diff --git a/sw/qa/extras/odfexport/data/textframe-vertadjust.odt b/sw/qa/extras/odfexport/data/textframe-vertadjust.odt new file mode 100644 index 0000000000000000000000000000000000000000..bbf3416c09e119b8c82c771bbd5643fbb5aa63ac GIT binary patch literal 12850 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 MPEY*vnd!OoUo5MHasU7T literal 0 HcmV?d00001 diff --git a/sw/qa/extras/odfexport/odfexport.cxx b/sw/qa/extras/odfexport/odfexport.cxx index c2e5c0cbbdf3..db752040e4a9 100644 --- a/sw/qa/extras/odfexport/odfexport.cxx +++ b/sw/qa/extras/odfexport/odfexport.cxx @@ -14,6 +14,7 @@ #include #include #include +#include class Test : public SwModelTestBase { @@ -335,6 +336,20 @@ DECLARE_ODFEXPORT_TEST(testRelwPage, "relw-page.odt") CPPUNIT_ASSERT_EQUAL(sal_Int32(4896), parseDump("/root/page/body/txt/anchored/fly/infos/bounds", "width").toInt32()); } +DECLARE_ODFEXPORT_TEST(testTextFrameVertAdjust, "textframe-vertadjust.odt") +{ + // Test import/export of new frame attribute called TextVerticalAdjust + + // 1st frame's context is adjusted to the top + uno::Reference xFrame(getTextFrameByName("Rectangle 1"), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(drawing::TextVerticalAdjust_TOP, getProperty(xFrame, "TextVerticalAdjust")); + // 2nd frame's context is adjusted to the center + xFrame.set(getTextFrameByName("Rectangle 2"), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(drawing::TextVerticalAdjust_CENTER, getProperty(xFrame, "TextVerticalAdjust")); + // 3rd frame's context is adjusted to the bottom + xFrame.set(getTextFrameByName("Rectangle 3"), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(drawing::TextVerticalAdjust_BOTTOM, getProperty(xFrame, "TextVerticalAdjust")); +} #endif CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/xmloff/source/text/txtprhdl.cxx b/xmloff/source/text/txtprhdl.cxx index 951fa1f6fd01..032a055dac84 100644 --- a/xmloff/source/text/txtprhdl.cxx +++ b/xmloff/source/text/txtprhdl.cxx @@ -45,6 +45,7 @@ #include "txtprhdl.hxx" // OD 2004-05-05 #i28701# #include +#include using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -211,7 +212,7 @@ static SvXMLEnumMapEntry const pXML_FontRelief_Enum[] = { XML_TOKEN_INVALID, 0 } }; -static SvXMLEnumMapEntry const pXML_VerticalAlign_Enum[] = +static SvXMLEnumMapEntry const pXML_ParaVerticalAlign_Enum[] = { { XML_TOP, ParagraphVertAlign::TOP }, { XML_MIDDLE, ParagraphVertAlign::CENTER }, @@ -231,6 +232,15 @@ static SvXMLEnumMapEntry const pXML_WrapInfluenceOnPosition_Enum[] = { XML_TOKEN_INVALID, 0 } }; +static SvXMLEnumMapEntry const pXML_VerticalAlign_Enum[] = +{ + { XML_TOP, drawing::TextVerticalAdjust_TOP }, + { XML_MIDDLE, drawing::TextVerticalAdjust_CENTER }, + { XML_BOTTOM, drawing::TextVerticalAdjust_BOTTOM }, + { XML_JUSTIFY, drawing::TextVerticalAdjust_BLOCK }, + { XML_TOKEN_INVALID, 0 } +}; + static SvXMLEnumMapEntry const pXML_FillStyle_Enum[] = { { XML_NONE, drawing::FillStyle_NONE }, @@ -1347,7 +1357,7 @@ const XMLPropertyHandler *XMLTextPropertyHandlerFactory_Impl::GetPropertyHandler GetXMLToken( XML_LINE_HEIGHT ) ); break; case XML_TYPE_TEXT_VERTICAL_ALIGN: - pHdl = new XMLConstantsPropertyHandler( pXML_VerticalAlign_Enum, XML_TOKEN_INVALID ); + pHdl = new XMLConstantsPropertyHandler( pXML_ParaVerticalAlign_Enum, XML_TOKEN_INVALID ); break; case XML_TYPE_TEXT_RUBY_POSITION: pHdl = new XMLNamedBoolPropertyHdl( ::xmloff::token::XML_ABOVE, @@ -1383,6 +1393,9 @@ const XMLPropertyHandler *XMLTextPropertyHandlerFactory_Impl::GetPropertyHandler case XML_TYPE_FILLSTYLE: pHdl = new XMLConstantsPropertyHandler( pXML_FillStyle_Enum, XML_TOKEN_INVALID ); break; + case XML_TYPE_VERTICAL_ALIGN: + pHdl = new XMLConstantsPropertyHandler( pXML_VerticalAlign_Enum, XML_TOKEN_INVALID ); + break; } return pHdl; diff --git a/xmloff/source/text/txtprmap.cxx b/xmloff/source/text/txtprmap.cxx index a1f9898f2f91..90cb26e56869 100644 --- a/xmloff/source/text/txtprmap.cxx +++ b/xmloff/source/text/txtprmap.cxx @@ -786,6 +786,7 @@ XMLPropertyMapEntry aXMLFramePropMap[] = MG_E( "UserDefinedAttributes", TEXT, XMLNS, XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ), MAP_EXT("RelativeWidthRelation", XML_NAMESPACE_LO_EXT, XML_REL_WIDTH_REL, XML_TYPE_TEXT_HORIZONTAL_REL|XML_TYPE_PROP_GRAPHIC, CTF_RELWIDTHREL), MAP_EXT("RelativeHeightRelation", XML_NAMESPACE_LO_EXT, XML_REL_HEIGHT_REL, XML_TYPE_TEXT_VERTICAL_REL|XML_TYPE_PROP_GRAPHIC, CTF_RELHEIGHTREL), + MG_E("TextVerticalAdjust", DRAW, TEXTAREA_VERTICAL_ALIGN, XML_TYPE_VERTICAL_ALIGN, 0), M_END() };