diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2013-06-15 19:05:50 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-06-15 19:32:14 +0200 |
commit | 9d640dc6ad0f0b58fa62b70f78478e2bc8796e69 (patch) | |
tree | f74665d08980a0e37b31d1e48bf24917a5eb44ac /writerfilter | |
parent | 16613995dd9489e190e74eadae357a7b6c45c594 (diff) |
RTF filter: import posh/posv property of shapes
Change-Id: I55eccccf7f9ed06bba1ada18574890b5bee296f4
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.cxx | 2 | ||||
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.hxx | 2 | ||||
-rw-r--r-- | writerfilter/source/rtftok/rtfsdrimport.cxx | 44 |
3 files changed, 48 insertions, 0 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 36067006e9d5..7559b72294a3 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -4750,7 +4750,9 @@ RTFShape::RTFShape() nTop(0), nRight(0), nBottom(0), + nHoriOrient(0), nHoriOrientRelation(0), + nVertOrient(0), nVertOrientRelation(0), nWrap(-1) { diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index 0ba51b6bfadf..2ad163ea4fc9 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -244,7 +244,9 @@ namespace writerfilter { sal_Int32 nRight; sal_Int32 nBottom; boost::optional<sal_Int32> oZ; ///< Z-Order of the shape. + sal_Int16 nHoriOrient; sal_Int16 nHoriOrientRelation; + sal_Int16 nVertOrient; sal_Int16 nVertOrientRelation; int nWrap; }; diff --git a/writerfilter/source/rtftok/rtfsdrimport.cxx b/writerfilter/source/rtftok/rtfsdrimport.cxx index 24d7ca1aa6f4..af00d979a0b3 100644 --- a/writerfilter/source/rtftok/rtfsdrimport.cxx +++ b/writerfilter/source/rtftok/rtfsdrimport.cxx @@ -393,6 +393,46 @@ void RTFSdrImport::resolve(RTFShape& rShape) else if (i->first == "shadowOffsetX") // EMUs to points aShadowModel.moOffset.set(OUString::number(i->second.toDouble() / 12700) + "pt"); + else if (i->first == "posh") + { + switch(i->second.toInt32()) + { + case 1: + rShape.nHoriOrient = text::HoriOrientation::LEFT; + break; + case 2: + rShape.nHoriOrient = text::HoriOrientation::CENTER; + break; + case 3: + rShape.nHoriOrient = text::HoriOrientation::RIGHT; + break; + case 4: + rShape.nHoriOrient = text::HoriOrientation::INSIDE; + break; + case 5: + rShape.nHoriOrient = text::HoriOrientation::OUTSIDE; + break; + default: + break; + } + } + else if (i->first == "posv") + { + switch(i->second.toInt32()) + { + case 1: + rShape.nVertOrient = text::VertOrientation::TOP; + break; + case 2: + rShape.nVertOrient = text::VertOrientation::CENTER; + break; + case 3: + rShape.nVertOrient = text::VertOrientation::BOTTOM; + break; + default: + break; + } + } else if (i->first == "posrelh") { switch (i->second.toInt32()) @@ -503,8 +543,12 @@ void RTFSdrImport::resolve(RTFShape& rShape) else xShape->setPosition(awt::Point(rShape.nLeft, rShape.nTop)); xShape->setSize(awt::Size(rShape.nRight - rShape.nLeft, rShape.nBottom - rShape.nTop)); + if (rShape.nHoriOrient != 0) + xPropertySet->setPropertyValue("HoriOrient", uno::makeAny(rShape.nHoriOrient)); if (rShape.nHoriOrientRelation != 0) xPropertySet->setPropertyValue("HoriOrientRelation", uno::makeAny(rShape.nHoriOrientRelation)); + if (rShape.nVertOrient != 0) + xPropertySet->setPropertyValue("VertOrient", uno::makeAny(rShape.nVertOrient)); if (rShape.nVertOrientRelation != 0) xPropertySet->setPropertyValue("VertOrientRelation", uno::makeAny(rShape.nVertOrientRelation)); if (rShape.nWrap != -1) |