diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2011-08-31 12:01:29 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2011-09-01 14:06:35 +0200 |
commit | 42c1d4066424ae4fcaeada9dfb6d36e4b768af4b (patch) | |
tree | 5281f83520619e999972a3056d0fe3397482f915 /starmath | |
parent | 9c1da5eac9adadcac08c6397c2075c18016b0e5a (diff) |
more work on math accents export to .docx
Diffstat (limited to 'starmath')
-rw-r--r-- | starmath/source/ooxml.cxx | 37 |
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; |