summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2013-06-15 19:05:50 +0200
committerMiklos Vajna <vmiklos@suse.cz>2013-06-15 19:32:14 +0200
commit9d640dc6ad0f0b58fa62b70f78478e2bc8796e69 (patch)
treef74665d08980a0e37b31d1e48bf24917a5eb44ac /writerfilter
parent16613995dd9489e190e74eadae357a7b6c45c594 (diff)
RTF filter: import posh/posv property of shapes
Change-Id: I55eccccf7f9ed06bba1ada18574890b5bee296f4
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.cxx2
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.hxx2
-rw-r--r--writerfilter/source/rtftok/rtfsdrimport.cxx44
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)