summaryrefslogtreecommitdiff
path: root/starmath
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2011-11-30 12:43:00 +0100
committerLuboš Luňák <l.lunak@suse.cz>2011-11-30 16:11:44 +0100
commitcb0965a860b6a08333eb1373b8018454da3b260f (patch)
tree60c34d96d94a643bcd55b688f288c0befb48a143 /starmath
parente6ba4a206f4e3ad7bac35a9dee1438e396d39998 (diff)
import docx m:sPre, m:sSub, m:sSubSup and m:Sup
Diffstat (limited to 'starmath')
-rw-r--r--starmath/source/ooxmlimport.cxx50
-rw-r--r--starmath/source/ooxmlimport.hxx4
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;