diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2013-04-05 14:54:19 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-04-05 15:24:45 +0200 |
commit | 13183219b7bd39b7a5c8088b2679e346c4f3280c (patch) | |
tree | ce28bdec3d14ac8d1d22fd77ed59cdde64b7a132 /sw/source/filter/ww8/docxattributeoutput.cxx | |
parent | d526e48912deeb44061ff570d715c31ca45f77b8 (diff) |
DOCX export of w:numPicBullet
Change-Id: Ib8bcfb6bc63a5f14fbc36edc39a907b4955628e9
Diffstat (limited to 'sw/source/filter/ww8/docxattributeoutput.cxx')
-rw-r--r-- | sw/source/filter/ww8/docxattributeoutput.cxx | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 0ffc3a12267b..d5341cad5d4c 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -3204,7 +3204,7 @@ void DocxAttributeOutput::NumberingLevel( sal_uInt8 nLevel, sal_Int16 nFirstLineIndex, sal_Int16 nListTabPos, const String &rNumberingString, - const SvxBrushItem* ) + const SvxBrushItem* pBrush) { m_pSerializer->startElementNS( XML_w, XML_lvl, FSNS( XML_w, XML_ilvl ), OString::valueOf( sal_Int32( nLevel ) ).getStr(), @@ -3264,6 +3264,18 @@ void DocxAttributeOutput::NumberingLevel( sal_uInt8 nLevel, FSNS( XML_w, XML_val ), OUStringToOString( aBuffer.makeStringAndClear(), RTL_TEXTENCODING_UTF8 ).getStr(), FSEND ); + // bullet + if (nNumberingType == SVX_NUM_BITMAP && pBrush) + { + int nIndex = m_rExport.GetGrfIndex(*pBrush); + if (nIndex != -1) + { + m_pSerializer->singleElementNS(XML_w, XML_lvlPicBulletId, + FSNS(XML_w, XML_val), OString::number(nIndex).getStr(), + FSEND); + } + } + // justification const char *pJc; bool ecmaDialect = ( m_rExport.GetFilter().getVersion() == oox::core::ECMA_DIALECT ); @@ -4923,4 +4935,33 @@ bool DocxAttributeOutput::HasPostitFields() const return !m_postitFields.empty(); } +void DocxAttributeOutput::BulletDefinition(int nId, const Graphic& rGraphic, Size aSize) +{ + m_pSerializer->startElementNS(XML_w, XML_numPicBullet, + FSNS(XML_w, XML_numPicBulletId), OString::number(nId).getStr(), + FSEND); + + OStringBuffer aStyle; + // Size is in twips, we need it in points. + aStyle.append("width:").append(double(aSize.Width()) / 20); + aStyle.append("pt;height:").append(double(aSize.Height()) / 20).append("pt"); + m_pSerializer->startElementNS( XML_w, XML_pict, FSEND); + m_pSerializer->startElementNS( XML_v, XML_shape, + XML_style, aStyle.getStr(), + FSNS(XML_o, XML_bullet), "t", + FSEND); + + m_rDrawingML.SetFS(m_pSerializer); + OUString aRelId = m_rDrawingML.WriteImage(rGraphic); + m_pSerializer->singleElementNS( XML_v, XML_imagedata, + FSNS(XML_r, XML_id), OUStringToOString(aRelId, RTL_TEXTENCODING_UTF8), + FSNS(XML_o, XML_title), "", + FSEND); + + m_pSerializer->endElementNS(XML_v, XML_shape); + m_pSerializer->endElementNS(XML_w, XML_pict); + + m_pSerializer->endElementNS(XML_w, XML_numPicBullet); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |