diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2011-11-30 12:43:00 +0100 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2011-11-30 16:11:44 +0100 |
commit | cb0965a860b6a08333eb1373b8018454da3b260f (patch) | |
tree | 60c34d96d94a643bcd55b688f288c0befb48a143 /starmath | |
parent | e6ba4a206f4e3ad7bac35a9dee1438e396d39998 (diff) |
import docx m:sPre, m:sSub, m:sSubSup and m:Sup
Diffstat (limited to 'starmath')
-rw-r--r-- | starmath/source/ooxmlimport.cxx | 50 | ||||
-rw-r--r-- | starmath/source/ooxmlimport.hxx | 4 |
2 files changed, 54 insertions, 0 deletions
diff --git a/starmath/source/ooxmlimport.cxx b/starmath/source/ooxmlimport.cxx index f2ef21be8d98..dcdeab202fb0 100644 --- a/starmath/source/ooxmlimport.cxx +++ b/starmath/source/ooxmlimport.cxx @@ -133,6 +133,18 @@ OUString SmOoxmlImport::readOMathArg() case OPENING( M_TOKEN( rad )): ret += handleRad(); break; + case OPENING( M_TOKEN( sPre )): + ret += handleSpre(); + break; + case OPENING( M_TOKEN( sSub )): + ret += handleSsub(); + break; + case OPENING( M_TOKEN( sSubSup )): + ret += handleSsubsup(); + break; + case OPENING( M_TOKEN( sSup )): + ret += handleSsup(); + break; default: stream.handleUnexpectedTag(); break; @@ -551,4 +563,42 @@ OUString SmOoxmlImport::handleRad() return STR( "nroot {" ) + deg + STR( "}{" ) + e + STR( "}" ); } +OUString SmOoxmlImport::handleSpre() +{ + stream.ensureOpeningTag( M_TOKEN( sPre )); + OUString sub = readOMathArgInElement( M_TOKEN( sub )); + OUString sup = readOMathArgInElement( M_TOKEN( sup )); + OUString e = readOMathArgInElement( M_TOKEN( e )); + stream.ensureClosingTag( M_TOKEN( sPre )); + return STR( "{" ) + e + STR( "} lsub {" ) + sub + STR( "} lsup {" ) + sup + STR( "}" ); +} + +OUString SmOoxmlImport::handleSsub() +{ + stream.ensureOpeningTag( M_TOKEN( sSub )); + OUString e = readOMathArgInElement( M_TOKEN( e )); + OUString sub = readOMathArgInElement( M_TOKEN( sub )); + stream.ensureClosingTag( M_TOKEN( sSub )); + return STR( "{" ) + e + STR( "} rsub {" ) + sub + STR( "}" ); +} + +OUString SmOoxmlImport::handleSsubsup() +{ + stream.ensureOpeningTag( M_TOKEN( sSubSup )); + OUString e = readOMathArgInElement( M_TOKEN( e )); + OUString sub = readOMathArgInElement( M_TOKEN( sub )); + OUString sup = readOMathArgInElement( M_TOKEN( sup )); + stream.ensureClosingTag( M_TOKEN( sSubSup )); + return STR( "{" ) + e + STR( "} rsub {" ) + sub + STR( "} rsup {" ) + sup + STR( "}" ); +} + +OUString SmOoxmlImport::handleSsup() +{ + stream.ensureOpeningTag( M_TOKEN( sSup )); + OUString e = readOMathArgInElement( M_TOKEN( e )); + OUString sup = readOMathArgInElement( M_TOKEN( sup )); + stream.ensureClosingTag( M_TOKEN( sSup )); + return STR( "{" ) + e + STR( "} ^ {" ) + sup + STR( "}" ); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/starmath/source/ooxmlimport.hxx b/starmath/source/ooxmlimport.hxx index 8618a5636f96..08c357daf32a 100644 --- a/starmath/source/ooxmlimport.hxx +++ b/starmath/source/ooxmlimport.hxx @@ -58,6 +58,10 @@ private: rtl::OUString handleNary(); rtl::OUString handleR(); rtl::OUString handleRad(); + rtl::OUString handleSpre(); + rtl::OUString handleSsub(); + rtl::OUString handleSsubsup(); + rtl::OUString handleSsup(); rtl::OUString readOMathArg(); rtl::OUString readOMathArgInElement( int token ); oox::formulaimport::XmlStream& stream; |