summaryrefslogtreecommitdiff
path: root/starmath
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2011-08-31 12:01:29 +0200
committerLuboš Luňák <l.lunak@suse.cz>2011-09-01 14:06:35 +0200
commit42c1d4066424ae4fcaeada9dfb6d36e4b768af4b (patch)
tree5281f83520619e999972a3056d0fe3397482f915 /starmath
parent9c1da5eac9adadcac08c6397c2075c18016b0e5a (diff)
more work on math accents export to .docx
Diffstat (limited to 'starmath')
-rw-r--r--starmath/source/ooxml.cxx37
1 files changed, 36 insertions, 1 deletions
diff --git a/starmath/source/ooxml.cxx b/starmath/source/ooxml.cxx
index 1a0e35cc960a..f4ad597f1c62 100644
--- a/starmath/source/ooxml.cxx
+++ b/starmath/source/ooxml.cxx
@@ -355,12 +355,20 @@ void SmOoxml::HandleAttribute( const SmAttributNode* pNode, int nLevel )
{
switch( pNode->Attribute()->GetToken().eType )
{
- case TCHECK: // TODO check these all are really accents
+ case TCHECK:
case TACUTE:
case TGRAVE:
+ case TBREVE:
case TCIRCLE:
+ case TVEC:
+ case TTILDE:
+ case THAT:
+ case TDOT:
+ case TDDOT:
+ case TDDDOT:
case TWIDETILDE:
case TWIDEHAT:
+ case TWIDEVEC:
{
m_pSerializer->startElementNS( XML_m, XML_acc, FSEND );
m_pSerializer->startElementNS( XML_m, XML_accPr, FSEND );
@@ -374,6 +382,33 @@ void SmOoxml::HandleAttribute( const SmAttributNode* pNode, int nLevel )
m_pSerializer->endElementNS( XML_m, XML_acc );
break;
}
+ case TBAR:
+ case TOVERLINE:
+ case TUNDERLINE:
+ m_pSerializer->startElementNS( XML_m, XML_bar, FSEND );
+ m_pSerializer->startElementNS( XML_m, XML_barPr, FSEND );
+ m_pSerializer->singleElementNS( XML_m, XML_pos, FSNS( XML_m, XML_val ),
+ ( pNode->Attribute()->GetToken().eType == TUNDERLINE ) ? "bot" : "top", FSEND );
+ m_pSerializer->endElementNS( XML_m, XML_barPr );
+ m_pSerializer->startElementNS( XML_m, XML_e, FSEND );
+ HandleNode( pNode->Body(), nLevel + 1 );
+ m_pSerializer->endElementNS( XML_m, XML_e );
+ m_pSerializer->endElementNS( XML_m, XML_bar );
+ break;
+ case TOVERSTRIKE:
+ m_pSerializer->startElementNS( XML_m, XML_borderBox, FSEND );
+ m_pSerializer->startElementNS( XML_m, XML_borderBoxPr, FSEND );
+ m_pSerializer->singleElementNS( XML_m, XML_hideTop, FSNS( XML_m, XML_val ), "1", FSEND );
+ m_pSerializer->singleElementNS( XML_m, XML_hideBot, FSNS( XML_m, XML_val ), "1", FSEND );
+ m_pSerializer->singleElementNS( XML_m, XML_hideLeft, FSNS( XML_m, XML_val ), "1", FSEND );
+ m_pSerializer->singleElementNS( XML_m, XML_hideRight, FSNS( XML_m, XML_val ), "1", FSEND );
+ m_pSerializer->singleElementNS( XML_m, XML_strikeH, FSNS( XML_m, XML_val ), "1", FSEND );
+ m_pSerializer->endElementNS( XML_m, XML_borderBoxPr );
+ m_pSerializer->startElementNS( XML_m, XML_e, FSEND );
+ HandleNode( pNode->Body(), nLevel + 1 );
+ m_pSerializer->endElementNS( XML_m, XML_e );
+ m_pSerializer->endElementNS( XML_m, XML_borderBox );
+ break;
default:
HandleAllSubNodes( pNode, nLevel );
break;