diff options
Diffstat (limited to 'starmath')
-rw-r--r-- | starmath/source/ooxmlimport.cxx | 76 | ||||
-rw-r--r-- | starmath/source/ooxmlimport.hxx | 2 |
2 files changed, 78 insertions, 0 deletions
diff --git a/starmath/source/ooxmlimport.cxx b/starmath/source/ooxmlimport.cxx index 6b30142a8721..746bb6e41791 100644 --- a/starmath/source/ooxmlimport.cxx +++ b/starmath/source/ooxmlimport.cxx @@ -77,6 +77,9 @@ OUString SmOoxmlImport::handleStream() break; switch( tag.token ) { + case OPENING( M_TOKEN( acc )): + ret += STR( " " ) + handleAcc(); + break; case OPENING( M_TOKEN( f )): ret += STR( " " ) + handleF(); break; @@ -89,6 +92,79 @@ OUString SmOoxmlImport::handleStream() return ret; } +OUString SmOoxmlImport::handleAcc() +{ + stream.ensureOpeningTag( M_TOKEN( acc )); + OUString acc; + if( XmlStream::Tag accPr = stream.checkOpeningTag( M_TOKEN( accPr ))) + { + if( XmlStream::Tag chr = stream.checkOpeningTag( M_TOKEN( chr ))) + { + acc = chr.attributes.getString( M_TOKEN( val ), STR( "" )); + stream.ensureClosingTag( M_TOKEN( chr )); + } + stream.ensureClosingTag( M_TOKEN( accPr )); + } + // see aTokenTable in parse.cxx + switch( acc.isEmpty() ? sal_Unicode( MS_ACUTE ) : acc[ 0 ] ) + { + case MS_CHECK: + acc = STR( "check" ); + break; + case MS_ACUTE: + acc = STR( "acute" ); + break; + case MS_GRAVE: + acc = STR( "grave" ); + break; + case MS_BREVE: + acc = STR( "breve" ); + break; + case MS_CIRCLE: + acc = STR( "circle" ); + break; + case MS_VEC: + acc = STR( "vec" ); + break; + case MS_TILDE: + acc = STR( "tilde" ); + break; + case MS_HAT: + acc = STR( "hat" ); + break; + case MS_DOT: + acc = STR( "dot" ); + break; + case MS_DDOT: + acc = STR( "ddot" ); + break; + case MS_DDDOT: + acc = STR( "dddot" ); + break; +// these characters do not exist it seems +// case MS_WIDETILDE: +// acc = STR( "widetilde" ); +// break; +// case TWIDEHAT: +// acc = STR( "widehat" ); +// break; +// case TWIDEVEC: +// acc = STR( "widevec" ); +// break; + default: + acc = STR( "acute" ); + break; + } + OUString e = handleE(); + stream.ensureClosingTag( M_TOKEN( acc )); + return acc + STR( " { " ) + e + STR( " }" ); +} + +OUString SmOoxmlImport::handleE() +{ +// TODO +} + // NOT complete OUString SmOoxmlImport::handleF() { diff --git a/starmath/source/ooxmlimport.hxx b/starmath/source/ooxmlimport.hxx index 594b8d6a86ed..c3787757a705 100644 --- a/starmath/source/ooxmlimport.hxx +++ b/starmath/source/ooxmlimport.hxx @@ -44,6 +44,8 @@ public: rtl::OUString ConvertToStarMath(); private: rtl::OUString handleStream(); + rtl::OUString handleAcc(); + rtl::OUString handleE(); rtl::OUString handleF(); rtl::OUString readR(); oox::formulaimport::XmlStream& stream; |