From cb0965a860b6a08333eb1373b8018454da3b260f Mon Sep 17 00:00:00 2001 From: Luboš Luňák Date: Wed, 30 Nov 2011 12:43:00 +0100 Subject: import docx m:sPre, m:sSub, m:sSubSup and m:Sup --- starmath/source/ooxmlimport.cxx | 50 +++++++++++++++++++++++++++++++++++++++++ starmath/source/ooxmlimport.hxx | 4 ++++ 2 files changed, 54 insertions(+) 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; -- cgit