summaryrefslogtreecommitdiffstats
path: root/sw
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2013-01-22 13:20:57 +0100
committerMiklos Vajna <vmiklos@suse.cz>2013-01-22 16:13:25 +0100
commitd0fcf8340d5319524dd0f9d8fb24666229d5fd92 (patch)
treeb464140013cb0dc29c575f738a9f9cc04f398d19 /sw
parentsw: DOCX export of TextFrame border width / color (diff)
downloadcore-d0fcf8340d5319524dd0f9d8fb24666229d5fd92.tar.gz
core-d0fcf8340d5319524dd0f9d8fb24666229d5fd92.zip
sw: DOCX export of TextFrame shadow
Change-Id: Ia095a3adee271cf7235fb7c13824d7f265658897
Diffstat (limited to 'sw')
-rw-r--r--sw/source/filter/ww8/docxattributeoutput.cxx31
1 files changed, 31 insertions, 0 deletions
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 9cb2c3371489..0e82f7fd3c89 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -188,6 +188,7 @@ class FieldMarkParamsHelper
return bResult;
}
};
+static OString impl_ConvertColor( const Color &rColor );
void DocxAttributeOutput::RTLAndCJKState( bool bIsRTL, sal_uInt16 /*nScript*/ )
{
if (bIsRTL)
@@ -251,6 +252,35 @@ void DocxAttributeOutput::StartParagraph( ww8::WW8TableNodeInfo::Pointer_t pText
m_bParagraphOpened = true;
}
+void lcl_TextFrameShadow(FSHelperPtr pSerializer, const SwFrmFmt& rFrmFmt)
+{
+ SvxShadowItem aShadowItem = rFrmFmt.GetShadow();
+ if (aShadowItem.GetLocation() == SVX_SHADOW_NONE)
+ return;
+
+ OString aShadowWidth( OString::valueOf( double( aShadowItem.GetWidth() ) / 20) + "pt");
+ OString aOffset;
+ switch (aShadowItem.GetLocation())
+ {
+ case SVX_SHADOW_TOPLEFT: aOffset = "-" + aShadowWidth + ",-" + aShadowWidth; break;
+ case SVX_SHADOW_TOPRIGHT: aOffset = aShadowWidth + ",-" + aShadowWidth; break;
+ case SVX_SHADOW_BOTTOMLEFT: aOffset = "-" + aShadowWidth + "," + aShadowWidth; break;
+ case SVX_SHADOW_BOTTOMRIGHT: aOffset = aShadowWidth + "," + aShadowWidth; break;
+ case SVX_SHADOW_NONE:
+ case SVX_SHADOW_END:
+ break;
+ }
+ if (aOffset.isEmpty())
+ return;
+
+ OString aShadowColor = impl_ConvertColor(aShadowItem.GetColor());
+ pSerializer->singleElementNS(XML_v, XML_shadow,
+ XML_on, "t",
+ XML_color, "#" + aShadowColor,
+ XML_offset, aOffset,
+ FSEND);
+}
+
void DocxAttributeOutput::EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner )
{
// write the paragraph properties + the run, already in the correct order
@@ -284,6 +314,7 @@ void DocxAttributeOutput::EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pT
m_pSerializer->startElementNS( XML_w, XML_r, FSEND );
m_pSerializer->startElementNS( XML_w, XML_pict, FSEND );
m_pSerializer->startElementNS( XML_v, XML_rect, xFlyAttrList );
+ lcl_TextFrameShadow(m_pSerializer, rFrmFmt);
m_pSerializer->startElementNS( XML_v, XML_textbox, FSEND );
m_pSerializer->startElementNS( XML_w, XML_txbxContent, FSEND );
m_rExport.WriteText( );