diff options
author | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-03-11 11:26:05 +0100 |
---|---|---|
committer | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-03-11 11:26:05 +0100 |
commit | a25c3f5d7b47120b4b48d518fd97e81ed8f4e83f (patch) | |
tree | 0811460d9cbfa1d7643eca28c72bdfe18686a6e6 /starmath | |
parent | 2f2c66a2f9994401780daf36618292d7c7a8f230 (diff) | |
parent | 6d466e187b459263b41a33122bb7cd244bd1ea1c (diff) |
autorecovery: merged changes from m74. Still need to find out how to re-do two patches (to module_hidden_ooo.scp and file_ooo.scp in scp2/source/ooo) which do not apply anymore.
Diffstat (limited to 'starmath')
72 files changed, 2167 insertions, 2414 deletions
diff --git a/starmath/inc/action.hxx b/starmath/inc/action.hxx index 33e5a7f4f5..50a77dbf21 100644 --- a/starmath/inc/action.hxx +++ b/starmath/inc/action.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: action.hxx,v $ - * $Revision: 1.5 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/applicat.hxx b/starmath/inc/applicat.hxx index bef74d8ddc..1c29e26d1d 100644 --- a/starmath/inc/applicat.hxx +++ b/starmath/inc/applicat.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: applicat.hxx,v $ - * $Revision: 1.6 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/config.hxx b/starmath/inc/config.hxx index 2af382d399..0fa37b49bb 100644 --- a/starmath/inc/config.hxx +++ b/starmath/inc/config.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: config.hxx,v $ - * $Revision: 1.5 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx index e759705483..3e5ec1d296 100644 --- a/starmath/inc/dialog.hxx +++ b/starmath/inc/dialog.hxx @@ -1,14 +1,11 @@ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: dialog.hxx,v $ - * $Revision: 1.21 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/document.hxx b/starmath/inc/document.hxx index eeeb3abc70..fb2aa9d994 100644 --- a/starmath/inc/document.hxx +++ b/starmath/inc/document.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: document.hxx,v $ - * $Revision: 1.35.26.1 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/edit.hxx b/starmath/inc/edit.hxx index c6e3121ced..084501e153 100644 --- a/starmath/inc/edit.hxx +++ b/starmath/inc/edit.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: edit.hxx,v $ - * $Revision: 1.15 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -33,7 +30,7 @@ #include <vcl/window.hxx> #include <vcl/timer.hxx> #include <svtools/transfer.hxx> -#include <svx/editdata.hxx> +#include <editeng/editdata.hxx> #include <svtools/colorcfg.hxx> //#ifndef _ACCESSIBILITY_HXX_ diff --git a/starmath/inc/format.hxx b/starmath/inc/format.hxx index 4d30b5252e..7b8a09ac82 100644 --- a/starmath/inc/format.hxx +++ b/starmath/inc/format.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: format.hxx,v $ - * $Revision: 1.9 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/makefile.mk b/starmath/inc/makefile.mk index efff07a65c..930e5281c6 100644 --- a/starmath/inc/makefile.mk +++ b/starmath/inc/makefile.mk @@ -2,14 +2,10 @@ # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # -# Copyright 2008 by Sun Microsystems, Inc. +# Copyright 2000, 2010 Oracle and/or its affiliates. # # OpenOffice.org - a multi-platform office productivity suite # -# $RCSfile: makefile.mk,v $ -# -# $Revision: 1.4 $ -# # This file is part of OpenOffice.org. # # OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/node.hxx b/starmath/inc/node.hxx index e46bae6d8c..99545ec541 100644 --- a/starmath/inc/node.hxx +++ b/starmath/inc/node.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: node.hxx,v $ - * $Revision: 1.19 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/parse.hxx b/starmath/inc/parse.hxx index cf4758fe8c..9577c91f0a 100644 --- a/starmath/inc/parse.hxx +++ b/starmath/inc/parse.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: parse.hxx,v $ - * $Revision: 1.10 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/pch/precompiled_starmath.cxx b/starmath/inc/pch/precompiled_starmath.cxx index 347dffc482..75f679f436 100644 --- a/starmath/inc/pch/precompiled_starmath.cxx +++ b/starmath/inc/pch/precompiled_starmath.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: precompiled_starmath.cxx,v $ - * $Revision: 1.3 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/pch/precompiled_starmath.hxx b/starmath/inc/pch/precompiled_starmath.hxx index 9bad70879f..cefebf1a2b 100644 --- a/starmath/inc/pch/precompiled_starmath.hxx +++ b/starmath/inc/pch/precompiled_starmath.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: precompiled_starmath.hxx,v $ - * $Revision: 1.3 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/rect.hxx b/starmath/inc/rect.hxx index 472b03b2f4..78d98d593f 100644 --- a/starmath/inc/rect.hxx +++ b/starmath/inc/rect.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: rect.hxx,v $ - * $Revision: 1.7 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/smdll.hxx b/starmath/inc/smdll.hxx index 1368916b64..01a1f22a7a 100644 --- a/starmath/inc/smdll.hxx +++ b/starmath/inc/smdll.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: smdll.hxx,v $ - * $Revision: 1.4 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/smmod.hxx b/starmath/inc/smmod.hxx index e7d947cf27..9956f81dfe 100644 --- a/starmath/inc/smmod.hxx +++ b/starmath/inc/smmod.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: smmod.hxx,v $ - * $Revision: 1.18 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/starmath.hrc b/starmath/inc/starmath.hrc index 0de1c6d023..456964a07e 100644 --- a/starmath/inc/starmath.hrc +++ b/starmath/inc/starmath.hrc @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: starmath.hrc,v $ - * $Revision: 1.20 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -30,13 +27,9 @@ #ifndef _STARMATH_HRC #define _STARMATH_HRC -#ifndef _SVX_SVXIDS_HRC #include <svl/solar.hrc> -#endif -#ifndef _SFXSIDS_HRC //autogen #include <sfx2/sfxsids.hrc> -#endif - +#include <editeng/memberids.hrc> #define SID_NEXTERR (SID_SMA_START + 1) #define SID_PREVERR (SID_SMA_START + 2) diff --git a/starmath/inc/symbol.hxx b/starmath/inc/symbol.hxx index f2949aa5f5..17a353a039 100644 --- a/starmath/inc/symbol.hxx +++ b/starmath/inc/symbol.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: symbol.hxx,v $ - * $Revision: 1.17 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/toolbox.hxx b/starmath/inc/toolbox.hxx index b87f20a98c..b41102f57e 100644 --- a/starmath/inc/toolbox.hxx +++ b/starmath/inc/toolbox.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: toolbox.hxx,v $ - * $Revision: 1.11 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/types.hxx b/starmath/inc/types.hxx index 781ce9b19d..a3c1872961 100644 --- a/starmath/inc/types.hxx +++ b/starmath/inc/types.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: types.hxx,v $ - * $Revision: 1.9 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/unomodel.hxx b/starmath/inc/unomodel.hxx index 5cd53723dd..03a3cf6014 100644 --- a/starmath/inc/unomodel.hxx +++ b/starmath/inc/unomodel.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: unomodel.hxx,v $ - * $Revision: 1.13 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/utility.hxx b/starmath/inc/utility.hxx index a8ce47e068..7ccf6fa015 100644 --- a/starmath/inc/utility.hxx +++ b/starmath/inc/utility.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: utility.hxx,v $ - * $Revision: 1.11 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/inc/view.hxx b/starmath/inc/view.hxx index ef277013da..76f64c60c8 100644 --- a/starmath/inc/view.hxx +++ b/starmath/inc/view.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: view.hxx,v $ - * $Revision: 1.24 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/qa/unoapi/makefile.mk b/starmath/qa/unoapi/makefile.mk index c37570b3af..93169ee517 100644 --- a/starmath/qa/unoapi/makefile.mk +++ b/starmath/qa/unoapi/makefile.mk @@ -2,14 +2,10 @@ # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # -# Copyright 2008 by Sun Microsystems, Inc. +# Copyright 2000, 2010 Oracle and/or its affiliates. # # OpenOffice.org - a multi-platform office productivity suite # -# $RCSfile: makefile.mk,v $ -# -# $Revision: 1.6 $ -# # This file is part of OpenOffice.org. # # OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/sdi/makefile.mk b/starmath/sdi/makefile.mk index f868756f59..a2d965bc22 100644 --- a/starmath/sdi/makefile.mk +++ b/starmath/sdi/makefile.mk @@ -1,15 +1,11 @@ #************************************************************************* # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2008 by Sun Microsystems, Inc. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. # # OpenOffice.org - a multi-platform office productivity suite # -# $RCSfile: makefile.mk,v $ -# -# $Revision: 1.8 $ -# # This file is part of OpenOffice.org. # # OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/sdi/smath.sdi b/starmath/sdi/smath.sdi index 9d1bd22ebb..f62dd0b5c4 100644 --- a/starmath/sdi/smath.sdi +++ b/starmath/sdi/smath.sdi @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: smath.sdi,v $ - * $Revision: 1.11 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/sdi/smitems.sdi b/starmath/sdi/smitems.sdi index a071a52f83..af62aa70bb 100644 --- a/starmath/sdi/smitems.sdi +++ b/starmath/sdi/smitems.sdi @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: svxitems.sdi,v $ - * $Revision: 1.4 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/sdi/smslots.sdi b/starmath/sdi/smslots.sdi index 88bd108bdd..92eb8ded63 100644 --- a/starmath/sdi/smslots.sdi +++ b/starmath/sdi/smslots.sdi @@ -1,14 +1,11 @@ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: smslots.sdi,v $ - * $Revision: 1.10 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -35,6 +32,7 @@ StarMath [ HelpText ( "StarMath Application" ) SlotIdFile ( "starmath.hrc" ) + SlotIdFile ( "editeng/editids.hrc" ) SlotIdFile ( "sfx2/sfxsids.hrc" ) SlotIdFile ( "svx/svxids.hrc" ) ] diff --git a/starmath/source/accessibility.cxx b/starmath/source/accessibility.cxx index ec5c005d68..10ba6f9fbd 100644 --- a/starmath/source/accessibility.cxx +++ b/starmath/source/accessibility.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: accessibility.cxx,v $ - * $Revision: 1.38 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -53,12 +50,12 @@ #include <vos/mutex.hxx> #include <svl/itemset.hxx> -#include <svx/editobj.hxx> -#include <svx/editdata.hxx> -#include <svx/editview.hxx> -#include <svx/eeitem.hxx> -#include <svx/outliner.hxx> -#include <svx/unoedhlp.hxx> +#include <editeng/editobj.hxx> +#include <editeng/editdata.hxx> +#include <editeng/editview.hxx> +#include <editeng/eeitem.hxx> +#include <editeng/outliner.hxx> +#include <editeng/unoedhlp.hxx> #include "accessibility.hxx" diff --git a/starmath/source/accessibility.hxx b/starmath/source/accessibility.hxx index 3c0c3fcc63..f031f0d9b5 100644 --- a/starmath/source/accessibility.hxx +++ b/starmath/source/accessibility.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: accessibility.hxx,v $ - * $Revision: 1.24 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -54,8 +51,8 @@ #include <cppuhelper/implbase6.hxx> #include <svl/brdcst.hxx> -#include <svx/editeng.hxx> -#include <svx/unoedsrc.hxx> // SvxEditSource, SvxTextForwarder, SvxViewForwarder, SvxEditViewForwarder +#include <editeng/editeng.hxx> +#include <editeng/unoedsrc.hxx> // SvxEditSource, SvxTextForwarder, SvxViewForwarder, SvxEditViewForwarder #include <svx/AccessibleTextHelper.hxx> #include <edit.hxx> diff --git a/starmath/source/action.cxx b/starmath/source/action.cxx index 81e4a374ca..6265c19d73 100644 --- a/starmath/source/action.cxx +++ b/starmath/source/action.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: action.cxx,v $ - * $Revision: 1.6 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/cfgitem.cxx b/starmath/source/cfgitem.cxx index 693fe32fa2..277d806f8e 100644 --- a/starmath/source/cfgitem.cxx +++ b/starmath/source/cfgitem.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: cfgitem.cxx,v $ - * $Revision: 1.20 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/cfgitem.hxx b/starmath/source/cfgitem.hxx index bc62a7a6d3..77d00e2dca 100644 --- a/starmath/source/cfgitem.hxx +++ b/starmath/source/cfgitem.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: cfgitem.hxx,v $ - * $Revision: 1.14 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/commands.src b/starmath/source/commands.src index 038f30d49f..0b42320ad7 100644 --- a/starmath/source/commands.src +++ b/starmath/source/commands.src @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: commands.src,v $ - * $Revision: 1.31 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/config.cxx b/starmath/source/config.cxx index 3a8034f51f..b06be09534 100644 --- a/starmath/source/config.cxx +++ b/starmath/source/config.cxx @@ -1,14 +1,11 @@ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: config.cxx,v $ - * $Revision: 1.12 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/detreg.cxx b/starmath/source/detreg.cxx index 8e9d5d1d26..602c99bb1b 100644 --- a/starmath/source/detreg.cxx +++ b/starmath/source/detreg.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: detreg.cxx,v $ - * $Revision: 1.6 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/dialog.cxx b/starmath/source/dialog.cxx index fe16822b6e..52cd03109b 100644 --- a/starmath/source/dialog.cxx +++ b/starmath/source/dialog.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: dialog.cxx,v $ - * $Revision: 1.44 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/dialog.hrc b/starmath/source/dialog.hrc index 0890e5839f..026c17e700 100644 --- a/starmath/source/dialog.hrc +++ b/starmath/source/dialog.hrc @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: dialog.hrc,v $ - * $Revision: 1.6 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/document.cxx b/starmath/source/document.cxx index abebb47e94..c4c1af898e 100644 --- a/starmath/source/document.cxx +++ b/starmath/source/document.cxx @@ -1,14 +1,11 @@ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: document.cxx,v $ - * $Revision: 1.94.26.1 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -71,17 +68,17 @@ #include <svl/undo.hxx> #include <svl/urihelper.hxx> #include <svl/whiter.hxx> -#include <svx/editeng.hxx> -#include <svx/editstat.hxx> -#include <svx/eeitem.hxx> -#include <svx/fhgtitem.hxx> -#include <svx/fontitem.hxx> -#include <svx/unolingu.hxx> +#include <editeng/editeng.hxx> +#include <editeng/editstat.hxx> +#include <editeng/eeitem.hxx> +#include <editeng/fhgtitem.hxx> +#include <editeng/fontitem.hxx> +#include <editeng/unolingu.hxx> #include <ucbhelper/content.hxx> #include <vcl/mapmod.hxx> #include <vcl/mapunit.hxx> #include <vcl/msgbox.hxx> - +#include <sfx2/sfx.hrc> #include <document.hxx> #include <action.hxx> #include <config.hxx> @@ -97,8 +94,8 @@ #include "mathtype.hxx" #include "mathmlimport.hxx" #include "mathmlexport.hxx" - - +#include <sfx2/sfxsids.hrc> +#include <svx/svxids.hrc> using namespace ::com::sun::star; using namespace ::com::sun::star::accessibility; diff --git a/starmath/source/edit.cxx b/starmath/source/edit.cxx index 6e9a1827f3..20e9b35a55 100644 --- a/starmath/source/edit.cxx +++ b/starmath/source/edit.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: edit.cxx,v $ - * $Revision: 1.40 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -47,19 +44,19 @@ #include <vcl/menu.hxx> -#include <svx/editview.hxx> -#include <svx/editeng.hxx> -#include <svx/editstat.hxx> -#include <svx/eeitem.hxx> +#include <editeng/editview.hxx> +#include <editeng/editeng.hxx> +#include <editeng/editstat.hxx> +#include <editeng/eeitem.hxx> #include <sfx2/dispatch.hxx> #include <svl/intitem.hxx> #include <svl/itempool.hxx> #include <svl/stritem.hxx> -#include <svx/fhgtitem.hxx> -#include <svx/wghtitem.hxx> -#include <svx/lrspitem.hxx> +#include <editeng/fhgtitem.hxx> +#include <editeng/wghtitem.hxx> +#include <editeng/lrspitem.hxx> #include <svl/itemset.hxx> -#include <svx/fontitem.hxx> +#include <editeng/fontitem.hxx> #include <sfx2/viewfrm.hxx> #include "edit.hxx" diff --git a/starmath/source/eqnolefilehdr.cxx b/starmath/source/eqnolefilehdr.cxx index 8992af5211..9eb2ffc5f3 100644 --- a/starmath/source/eqnolefilehdr.cxx +++ b/starmath/source/eqnolefilehdr.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: eqnolefilehdr.cxx,v $ - * $Revision: 1.5 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/eqnolefilehdr.hxx b/starmath/source/eqnolefilehdr.hxx index 1fbe4db167..e5efed22c0 100644 --- a/starmath/source/eqnolefilehdr.hxx +++ b/starmath/source/eqnolefilehdr.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: eqnolefilehdr.hxx,v $ - * $Revision: 1.4 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/format.cxx b/starmath/source/format.cxx index c187a9e65b..b59bd810cd 100644 --- a/starmath/source/format.cxx +++ b/starmath/source/format.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: format.cxx,v $ - * $Revision: 1.14 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -34,7 +31,7 @@ #include <tools/stream.hxx> #include <vcl/svapp.hxx> -#include <svx/scripttypeitem.hxx> +#include <editeng/scripttypeitem.hxx> #include "format.hxx" ///////////////////////////////////////////////////////////////// diff --git a/starmath/source/makefile.mk b/starmath/source/makefile.mk index af775dc5df..a69a900107 100644 --- a/starmath/source/makefile.mk +++ b/starmath/source/makefile.mk @@ -2,14 +2,10 @@ # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # -# Copyright 2008 by Sun Microsystems, Inc. +# Copyright 2000, 2010 Oracle and/or its affiliates. # # OpenOffice.org - a multi-platform office productivity suite # -# $RCSfile: makefile.mk,v $ -# -# $Revision: 1.35 $ -# # This file is part of OpenOffice.org. # # OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/math_pch.cxx b/starmath/source/math_pch.cxx index 7a58e8aa62..95eb42a8f4 100644 --- a/starmath/source/math_pch.cxx +++ b/starmath/source/math_pch.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: math_pch.cxx,v $ - * $Revision: 1.17 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -817,7 +814,7 @@ #include <sfx2/ctrlitem.hxx> #include <sfx2/viewfac.hxx> #include <edit.hxx> -#include <svx/editdata.hxx> +#include <editeng/editdata.hxx> #include <toolbox.hxx> #include <vcl/toolbox.hxx> #include <vcl/dockwin.hxx> diff --git a/starmath/source/mathmlexport.cxx b/starmath/source/mathmlexport.cxx index c9b12abcdb..8188f6dc37 100644 --- a/starmath/source/mathmlexport.cxx +++ b/starmath/source/mathmlexport.cxx @@ -1,1568 +1,1565 @@ -/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: x $
- * $Revision: 1.00 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_starmath.hxx"
-
-/*
- Warning: The SvXMLElementExport helper class creates the beginning and
- closing tags of xml elements in its constructor and destructor, so theres
- hidden stuff going on, on occasion the ordering of these classes declarations
- may be significant
-*/
-
-
-#include <com/sun/star/xml/sax/XErrorHandler.hpp>
-#include <com/sun/star/xml/sax/XEntityResolver.hpp>
-#include <com/sun/star/xml/sax/InputSource.hpp>
-#include <com/sun/star/xml/sax/XDTDHandler.hpp>
-#include <com/sun/star/xml/sax/XParser.hpp>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XActiveDataControl.hpp>
-#include <com/sun/star/document/XDocumentProperties.hpp>
-#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
-#include <com/sun/star/packages/zip/ZipIOException.hpp>
-#include <com/sun/star/task/XStatusIndicatorFactory.hpp>
-#include <com/sun/star/beans/PropertyAttribute.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/embed/ElementModes.hpp>
-#include <com/sun/star/uno/Any.h>
-
-#include <rtl/math.hxx>
-#include <sfx2/frame.hxx>
-#include <sfx2/docfile.hxx>
-#include <tools/debug.hxx>
-#include <tools/urlobj.hxx>
-#include <svtools/sfxecode.hxx>
-#include <unotools/saveopt.hxx>
-#include <svl/stritem.hxx>
-#include <svl/itemprop.hxx>
-#include <unotools/processfactory.hxx>
-#include <unotools/streamwrap.hxx>
-#include <xmloff/xmlnmspe.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/attrlist.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/xmlmetai.hxx>
-#include <osl/mutex.hxx>
-#include <comphelper/genericpropertyset.hxx>
-
-#include <memory>
-
-#include "mathmlexport.hxx"
-#include "mathtype.hxx"
-#include <starmath.hrc>
-#include <unomodel.hxx>
-#include <document.hxx>
-#include <utility.hxx>
-
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::document;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-#define EXPORT_SVC_NAME RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.XMLExportFilter")
-
-#undef WANTEXCEPT
-
-
-////////////////////////////////////////////////////////////
-
-sal_Bool SmXMLExportWrapper::Export(SfxMedium &rMedium)
-{
- sal_Bool bRet=sal_True;
- uno::Reference<lang::XMultiServiceFactory>
- xServiceFactory(utl::getProcessServiceFactory());
- DBG_ASSERT(xServiceFactory.is(),"got no service manager");
-
- //Get model
- uno::Reference< lang::XComponent > xModelComp(xModel, uno::UNO_QUERY );
-
- sal_Bool bEmbedded = sal_False;
- uno::Reference <lang::XUnoTunnel> xTunnel;
- xTunnel = uno::Reference <lang::XUnoTunnel> (xModel,uno::UNO_QUERY);
- SmModel *pModel = reinterpret_cast<SmModel *>
- (xTunnel->getSomething(SmModel::getUnoTunnelId()));
-
- SmDocShell *pDocShell = pModel ?
- static_cast<SmDocShell*>(pModel->GetObjectShell()) : 0;
- if ( pDocShell &&
- SFX_CREATE_MODE_EMBEDDED == pDocShell->GetCreateMode() )
- bEmbedded = sal_True;
-
- uno::Reference<task::XStatusIndicator> xStatusIndicator;
- if (!bEmbedded)
- {
- if (pDocShell /*&& pDocShell->GetMedium()*/)
- {
- DBG_ASSERT( pDocShell->GetMedium() == &rMedium,
- "different SfxMedium found" );
-
- SfxItemSet* pSet = rMedium.GetItemSet();
- if (pSet)
- {
- const SfxUnoAnyItem* pItem = static_cast<const SfxUnoAnyItem*>(
- pSet->GetItem(SID_PROGRESS_STATUSBAR_CONTROL) );
- if (pItem)
- pItem->GetValue() >>= xStatusIndicator;
- }
- }
-
- // set progress range and start status indicator
- if (xStatusIndicator.is())
- {
- sal_Int32 nProgressRange = bFlat ? 1 : 3;
- xStatusIndicator->start(String(SmResId(STR_STATSTR_WRITING)),
- nProgressRange);
- }
- }
-
-
- // create XPropertySet with three properties for status indicator
- comphelper::PropertyMapEntry aInfoMap[] =
- {
- { "UsePrettyPrinting", sizeof("UsePrettyPrinting")-1, 0,
- &::getBooleanCppuType(),
- beans::PropertyAttribute::MAYBEVOID, 0},
- { "BaseURI", sizeof("BaseURI")-1, 0,
- &::getCppuType( (OUString *)0 ),
- beans::PropertyAttribute::MAYBEVOID, 0 },
- { "StreamRelPath", sizeof("StreamRelPath")-1, 0,
- &::getCppuType( (OUString *)0 ),
- beans::PropertyAttribute::MAYBEVOID, 0 },
- { "StreamName", sizeof("StreamName")-1, 0,
- &::getCppuType( (OUString *)0 ),
- beans::PropertyAttribute::MAYBEVOID, 0 },
- { NULL, 0, 0, NULL, 0, 0 }
- };
- uno::Reference< beans::XPropertySet > xInfoSet(
- comphelper::GenericPropertySet_CreateInstance(
- new comphelper::PropertySetInfo( aInfoMap ) ) );
-
- SvtSaveOptions aSaveOpt;
- OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
- sal_Bool bUsePrettyPrinting( bFlat || aSaveOpt.IsPrettyPrinting() );
- Any aAny;
- aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
- xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
-
- // Set base URI
- OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BaseURI") );
- xInfoSet->setPropertyValue( sPropName, makeAny( rMedium.GetBaseURL( true ) ) );
-
- sal_Int32 nSteps=0;
- if (xStatusIndicator.is())
- xStatusIndicator->setValue(nSteps++);
- if (!bFlat) //Storage (Package) of Stream
- {
- uno::Reference < embed::XStorage > xStg = rMedium.GetOutputStorage();
- sal_Bool bOASIS = ( SotStorage::GetVersion( xStg ) > SOFFICE_FILEFORMAT_60 );
-
- // TODO/LATER: handle the case of embedded links gracefully
- if ( bEmbedded ) //&& !pStg->IsRoot() )
- {
- OUString aName;
- if ( rMedium.GetItemSet() )
- {
- const SfxStringItem* pDocHierarchItem = static_cast<const SfxStringItem*>(
- rMedium.GetItemSet()->GetItem(SID_DOC_HIERARCHICALNAME) );
- if ( pDocHierarchItem )
- aName = pDocHierarchItem->GetValue();
- }
-
- if ( aName.getLength() )
- {
- sPropName = OUString(RTL_CONSTASCII_USTRINGPARAM("StreamRelPath"));
- xInfoSet->setPropertyValue( sPropName, makeAny( aName ) );
- }
- }
-
- if ( !bEmbedded )
- {
- if (xStatusIndicator.is())
- xStatusIndicator->setValue(nSteps++);
-
- bRet = WriteThroughComponent(
- xStg, xModelComp, "meta.xml", xServiceFactory, xInfoSet,
- (bOASIS ? "com.sun.star.comp.Math.XMLOasisMetaExporter"
- : "com.sun.star.comp.Math.XMLMetaExporter"),
- sal_False);
- }
- if ( bRet )
- {
- if (xStatusIndicator.is())
- xStatusIndicator->setValue(nSteps++);
-
- bRet = WriteThroughComponent(
- xStg, xModelComp, "content.xml", xServiceFactory, xInfoSet,
- "com.sun.star.comp.Math.XMLContentExporter");
- }
-
- if ( bRet )
- {
- if (xStatusIndicator.is())
- xStatusIndicator->setValue(nSteps++);
-
- bRet = WriteThroughComponent(
- xStg, xModelComp, "settings.xml", xServiceFactory, xInfoSet,
- (bOASIS ? "com.sun.star.comp.Math.XMLOasisSettingsExporter"
- : "com.sun.star.comp.Math.XMLSettingsExporter") );
- }
- }
- else
- {
- SvStream *pStream = rMedium.GetOutStream();
- uno::Reference<io::XOutputStream> xOut(
- new utl::OOutputStreamWrapper(*pStream) );
-
- if (xStatusIndicator.is())
- xStatusIndicator->setValue(nSteps++);
-
- bRet = WriteThroughComponent(
- xOut, xModelComp, xServiceFactory, xInfoSet,
- "com.sun.star.comp.Math.XMLContentExporter");
- }
-
- if (xStatusIndicator.is())
- xStatusIndicator->end();
-
- return bRet;
-}
-
-
-/// export through an XML exporter component (output stream version)
-sal_Bool SmXMLExportWrapper::WriteThroughComponent(
- Reference<io::XOutputStream> xOutputStream,
- Reference<XComponent> xComponent,
- Reference<lang::XMultiServiceFactory> & rFactory,
- Reference<beans::XPropertySet> & rPropSet,
- const sal_Char* pComponentName )
-{
- DBG_ASSERT(xOutputStream.is(), "I really need an output stream!");
- DBG_ASSERT(xComponent.is(), "Need component!");
- DBG_ASSERT(NULL != pComponentName, "Need component name!");
-
- // get component
- Reference< io::XActiveDataSource > xSaxWriter(
- rFactory->createInstance(
- OUString::createFromAscii("com.sun.star.xml.sax.Writer") ),
- UNO_QUERY );
- DBG_ASSERT( xSaxWriter.is(), "can't instantiate XML writer" );
- if (!xSaxWriter.is())
- return sal_False;
-
- // connect XML writer to output stream
- xSaxWriter->setOutputStream( xOutputStream );
-
- // prepare arguments (prepend doc handler to given arguments)
- Reference<xml::sax::XDocumentHandler> xDocHandler( xSaxWriter,UNO_QUERY);
-
- Sequence<Any> aArgs( 2 );
- aArgs[0] <<= xDocHandler;
- aArgs[1] <<= rPropSet;
-
- // get filter component
- Reference< document::XExporter > xExporter(
- rFactory->createInstanceWithArguments(
- OUString::createFromAscii(pComponentName), aArgs), UNO_QUERY);
- DBG_ASSERT( xExporter.is(),
- "can't instantiate export filter component" );
- if ( !xExporter.is() )
- return sal_False;
-
-
- // connect model and filter
- xExporter->setSourceDocument( xComponent );
-
- // filter!
- Reference < XFilter > xFilter( xExporter, UNO_QUERY );
- uno::Sequence< PropertyValue > aProps(0);
- xFilter->filter( aProps );
-
- uno::Reference<lang::XUnoTunnel> xFilterTunnel;
- xFilterTunnel = uno::Reference<lang::XUnoTunnel>
- ( xFilter, uno::UNO_QUERY );
- SmXMLExport *pFilter = reinterpret_cast< SmXMLExport * >(
- sal::static_int_cast< sal_uIntPtr >(
- xFilterTunnel->getSomething( SmXMLExport::getUnoTunnelId() )));
- return pFilter ? pFilter->GetSuccess() : sal_True;
-}
-
-
-/// export through an XML exporter component (storage version)
-sal_Bool SmXMLExportWrapper::WriteThroughComponent(
- const Reference < embed::XStorage >& xStorage,
- Reference<XComponent> xComponent,
- const sal_Char* pStreamName,
- Reference<lang::XMultiServiceFactory> & rFactory,
- Reference<beans::XPropertySet> & rPropSet,
- const sal_Char* pComponentName,
- sal_Bool bCompress
- )
-{
- DBG_ASSERT(xStorage.is(), "Need storage!");
- DBG_ASSERT(NULL != pStreamName, "Need stream name!");
-
- // open stream
- Reference < io::XStream > xStream;
- OUString sStreamName = OUString::createFromAscii(pStreamName);
- try
- {
- xStream = xStorage->openStreamElement( sStreamName,
- embed::ElementModes::READWRITE | embed::ElementModes::TRUNCATE );
- }
- catch ( uno::Exception& )
- {
- DBG_ERROR( "Can't create output stream in package!" );
- return sal_False;
- }
-
- String aPropName( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM("MediaType") ) );
- OUString aMime( RTL_CONSTASCII_USTRINGPARAM("text/xml") );
- uno::Any aAny;
- aAny <<= aMime;
-
- uno::Reference < beans::XPropertySet > xSet( xStream, uno::UNO_QUERY );
- xSet->setPropertyValue( aPropName, aAny );
-
- if ( !bCompress )
- {
- aPropName = String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM("Compressed") );
- sal_Bool bFalse = sal_False;
- aAny.setValue( &bFalse, ::getBooleanCppuType() );
- xSet->setPropertyValue( aPropName, aAny );
- }
-
- // even plain stream must be encrypted in encrypted document
- OUString aTmpPropName( RTL_CONSTASCII_USTRINGPARAM("UseCommonStoragePasswordEncryption") );
- sal_Bool bTrue = sal_True;
- aAny.setValue( &bTrue, ::getBooleanCppuType() );
- xSet->setPropertyValue( aTmpPropName, aAny );
-
- // set Base URL
- if ( rPropSet.is() )
- {
- OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("StreamName") );
- rPropSet->setPropertyValue( sPropName, makeAny( sStreamName ) );
- }
-
- // write the stuff
- sal_Bool bRet = WriteThroughComponent( xStream->getOutputStream(), xComponent, rFactory,
- rPropSet, pComponentName );
-
- // stream is closed by SAX parser
- //if ( bRet )
- // xStream->getOutputStream()->closeOutput();
-
- return bRet;
-}
-
-////////////////////////////////////////////////////////////
-
-// #110680#
-SmXMLExport::SmXMLExport(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory,
- sal_uInt16 nExportFlags)
-: SvXMLExport( xServiceFactory, MAP_INCH, XML_MATH, nExportFlags ) ,
- pTree(0) ,
- bSuccess(sal_False)
-{
-}
-
-sal_Int64 SAL_CALL SmXMLExport::getSomething(
- const uno::Sequence< sal_Int8 >& rId )
-throw(uno::RuntimeException)
-{
- if ( rId.getLength() == 16 &&
- 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(),
- rId.getConstArray(), 16 ) )
- return sal::static_int_cast< sal_Int64 >(reinterpret_cast< sal_uIntPtr >(this));
-
- return SvXMLExport::getSomething( rId );
-}
-
-const uno::Sequence< sal_Int8 > & SmXMLExport::getUnoTunnelId() throw()
-{
- static uno::Sequence< sal_Int8 > * pSeq = 0;
- if ( !pSeq )
- {
- osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
- if ( !pSeq )
- {
- static uno::Sequence< sal_Int8 > aSeq( 16 );
- rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
- pSeq = &aSeq;
- }
- }
- return *pSeq;
-}
-
-OUString SAL_CALL SmXMLExport_getImplementationName() throw()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Math.XMLExporter" ) );
-}
-
-uno::Sequence< OUString > SAL_CALL SmXMLExport_getSupportedServiceNames()
- throw()
-{
- const OUString aServiceName( EXPORT_SVC_NAME );
- const uno::Sequence< OUString > aSeq( &aServiceName, 1 );
- return aSeq;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL SmXMLExport_createInstance(
- const uno::Reference< lang::XMultiServiceFactory > & rSMgr)
- throw( uno::Exception )
-{
- // #110680#
- // return (cppu::OWeakObject*)new SmXMLExport( EXPORT_ALL );
- // EXPORT_OASIS is required here allthough there is no differrence between
- // OOo and OASIS, because without the flag, a transformation to OOo would
- // be chained in.
- return (cppu::OWeakObject*)new SmXMLExport( rSMgr, EXPORT_OASIS|EXPORT_ALL );
-}
-
-////////////////////////////////////////////////////////////
-
-OUString SAL_CALL SmXMLExportMetaOOO_getImplementationName() throw()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Math.XMLMetaExporter" ) );
-}
-
-uno::Sequence< OUString > SAL_CALL SmXMLExportMetaOOO_getSupportedServiceNames()
- throw()
-{
- const OUString aServiceName( EXPORT_SVC_NAME );
- const uno::Sequence< OUString > aSeq( &aServiceName, 1 );
- return aSeq;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL SmXMLExportMetaOOO_createInstance(
- const uno::Reference< lang::XMultiServiceFactory > & rSMgr)
-throw( uno::Exception )
-{
- // #110680#
- // return (cppu::OWeakObject*)new SmXMLExport( EXPORT_META );
- return (cppu::OWeakObject*)new SmXMLExport( rSMgr, EXPORT_META );
-}
-
-////////////////////////////////////////////////////////////
-
-OUString SAL_CALL SmXMLExportMeta_getImplementationName() throw()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Math.XMLOasisMetaExporter" ) );
-}
-
-uno::Sequence< OUString > SAL_CALL SmXMLExportMeta_getSupportedServiceNames()
-throw()
-{
- const OUString aServiceName( EXPORT_SVC_NAME );
- const uno::Sequence< OUString > aSeq( &aServiceName, 1 );
- return aSeq;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL SmXMLExportMeta_createInstance(
- const uno::Reference< lang::XMultiServiceFactory > & rSMgr)
-throw( uno::Exception )
-{
- // #110680#
- // return (cppu::OWeakObject*)new SmXMLExport( EXPORT_META );
- return (cppu::OWeakObject*)new SmXMLExport( rSMgr, EXPORT_OASIS|EXPORT_META );
-}
-
-////////////////////////////////////////////////////////////
-
-OUString SAL_CALL SmXMLExportSettingsOOO_getImplementationName() throw()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Math.XMLSettingsExporter" ) );
-}
-
-uno::Sequence< OUString > SAL_CALL SmXMLExportSettingsOOO_getSupportedServiceNames()
-throw()
-{
- const OUString aServiceName( EXPORT_SVC_NAME );
- const uno::Sequence< OUString > aSeq( &aServiceName, 1 );
- return aSeq;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL SmXMLExportSettingsOOO_createInstance(
- const uno::Reference< lang::XMultiServiceFactory > & rSMgr)
-throw( uno::Exception )
-{
- // #110680#
- // return (cppu::OWeakObject*)new SmXMLExport( EXPORT_SETTINGS );
- return (cppu::OWeakObject*)new SmXMLExport( rSMgr, EXPORT_SETTINGS );
-}
-
-////////////////////////////////////////////////////////////
-
-OUString SAL_CALL SmXMLExportSettings_getImplementationName() throw()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Math.XMLOasisSettingsExporter" ) );
-}
-
-uno::Sequence< OUString > SAL_CALL SmXMLExportSettings_getSupportedServiceNames()
-throw()
-{
- const OUString aServiceName( EXPORT_SVC_NAME );
- const uno::Sequence< OUString > aSeq( &aServiceName, 1 );
- return aSeq;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL SmXMLExportSettings_createInstance(
- const uno::Reference< lang::XMultiServiceFactory > & rSMgr)
-throw( uno::Exception )
-{
- // #110680#
- // return (cppu::OWeakObject*)new SmXMLExport( EXPORT_SETTINGS );
- return (cppu::OWeakObject*)new SmXMLExport( rSMgr, EXPORT_OASIS|EXPORT_SETTINGS );
-}
-
-////////////////////////////////////////////////////////////
-
-OUString SAL_CALL SmXMLExportContent_getImplementationName() throw()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Math.XMLContentExporter" ) );
-}
-
-uno::Sequence< OUString > SAL_CALL SmXMLExportContent_getSupportedServiceNames()
- throw()
-{
- const OUString aServiceName( EXPORT_SVC_NAME );
- const uno::Sequence< OUString > aSeq( &aServiceName, 1 );
- return aSeq;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL SmXMLExportContent_createInstance(
- const uno::Reference< lang::XMultiServiceFactory > & rSMgr)
-throw( uno::Exception )
-{
- // #110680#
- // return (cppu::OWeakObject*)new SmXMLExport( EXPORT_CONTENT );
- // The EXPORT_OASIS flag is only required to avoid that a transformer is
- // chanied in
- return (cppu::OWeakObject*)new SmXMLExport( rSMgr, EXPORT_OASIS|EXPORT_CONTENT );
-}
-
-////////////////////////////////////////////////////////////
-
-// XServiceInfo
-// override empty method from parent class
-rtl::OUString SAL_CALL SmXMLExport::getImplementationName()
-throw(uno::RuntimeException)
-{
- OUString aTxt;
- switch( getExportFlags() )
- {
- case EXPORT_META:
- aTxt = SmXMLExportMeta_getImplementationName();
- break;
- case EXPORT_SETTINGS:
- aTxt = SmXMLExportSettings_getImplementationName();
- break;
- case EXPORT_CONTENT:
- aTxt = SmXMLExportContent_getImplementationName();
- break;
- case EXPORT_ALL:
- default:
- aTxt = SmXMLExport_getImplementationName();
- break;
- }
- return aTxt;
-}
-
-sal_uInt32 SmXMLExport::exportDoc(enum XMLTokenEnum eClass)
-{
- if ( (getExportFlags() & EXPORT_CONTENT) == 0 )
- {
- SvXMLExport::exportDoc( eClass );
- }
- else
- {
- uno::Reference <frame::XModel> xModel = GetModel();
- uno::Reference <lang::XUnoTunnel> xTunnel;
- xTunnel = uno::Reference <lang::XUnoTunnel> (xModel,uno::UNO_QUERY);
- SmModel *pModel = reinterpret_cast<SmModel *>
- (xTunnel->getSomething(SmModel::getUnoTunnelId()));
-
- if (pModel)
- {
- SmDocShell *pDocShell =
- static_cast<SmDocShell*>(pModel->GetObjectShell());
- pTree = pDocShell->GetFormulaTree();
- aText = pDocShell->GetText();
- }
-
- GetDocHandler()->startDocument();
-
- /*Add xmlns line*/
- SvXMLAttributeList &rList = GetAttrList();
-
- // make use of a default namespace
- ResetNamespaceMap(); // Math doesn't need namespaces from xmloff, since it now uses default namespaces (because that is common with current MathML usage in the web)
- _GetNamespaceMap().Add( OUString::createFromAscii(""), GetXMLToken(XML_N_MATH), XML_NAMESPACE_MATH );
-
- rList.AddAttribute(GetNamespaceMap().GetAttrNameByKey(XML_NAMESPACE_MATH_IDX),
- GetNamespaceMap().GetNameByKey( XML_NAMESPACE_MATH_IDX));
-
- //I think we need something like ImplExportEntities();
- _ExportContent();
- GetDocHandler()->endDocument();
- }
-
- bSuccess=sal_True;
- return 0;
-}
-
-void SmXMLExport::_ExportContent()
-{
- SvXMLElementExport aEquation(*this, XML_NAMESPACE_MATH, XML_MATH, sal_True, sal_True);
- SvXMLElementExport *pSemantics=0;
-
- if (aText.Len())
- {
- pSemantics = new SvXMLElementExport(*this, XML_NAMESPACE_MATH,
- XML_SEMANTICS, sal_True, sal_True);
- }
-
- ExportNodes(pTree, 0);
-
- if (aText.Len())
- {
- // Convert symbol names
- uno::Reference <frame::XModel> xModel = GetModel();
- uno::Reference <lang::XUnoTunnel> xTunnel;
- xTunnel = uno::Reference <lang::XUnoTunnel> (xModel,uno::UNO_QUERY);
- SmModel *pModel = reinterpret_cast<SmModel *>
- (xTunnel->getSomething(SmModel::getUnoTunnelId()));
- SmDocShell *pDocShell = pModel ?
- static_cast<SmDocShell*>(pModel->GetObjectShell()) : 0;
- DBG_ASSERT( pDocShell, "doc shell missing" );
- if (pDocShell)
- {
- SmParser &rParser = pDocShell->GetParser();
- BOOL bVal = rParser.IsExportSymbolNames();
- rParser.SetExportSymbolNames( TRUE );
- SmNode *pTmpTree = rParser.Parse( aText );
- aText = rParser.GetText();
- delete pTmpTree;
- rParser.SetExportSymbolNames( bVal );
- }
-
- AddAttribute(XML_NAMESPACE_MATH, XML_ENCODING,
- OUString(RTL_CONSTASCII_USTRINGPARAM("StarMath 5.0")));
- SvXMLElementExport aAnnotation(*this, XML_NAMESPACE_MATH,
- XML_ANNOTATION, sal_True, sal_False);
- GetDocHandler()->characters(OUString( aText ));
- }
- delete pSemantics;
-}
-
-void SmXMLExport::GetViewSettings( Sequence < PropertyValue >& aProps)
-{
- uno::Reference <frame::XModel> xModel = GetModel();
- if ( !xModel.is() )
- return;
-
- uno::Reference <lang::XUnoTunnel> xTunnel;
- xTunnel = uno::Reference <lang::XUnoTunnel> (xModel,uno::UNO_QUERY);
- SmModel *pModel = reinterpret_cast<SmModel *>
- (xTunnel->getSomething(SmModel::getUnoTunnelId()));
-
- if ( !pModel )
- return;
-
- SmDocShell *pDocShell =
- static_cast<SmDocShell*>(pModel->GetObjectShell());
- if ( !pDocShell )
- return;
-
- aProps.realloc( 4 );
- PropertyValue *pValue = aProps.getArray();
- sal_Int32 nIndex = 0;
-
- Rectangle aRect( pDocShell->GetVisArea() );
-
- pValue[nIndex].Name = OUString( RTL_CONSTASCII_USTRINGPARAM ( "ViewAreaTop") );
- pValue[nIndex++].Value <<= aRect.Top();
-
- pValue[nIndex].Name = OUString( RTL_CONSTASCII_USTRINGPARAM ( "ViewAreaLeft") );
- pValue[nIndex++].Value <<= aRect.Left();
-
- pValue[nIndex].Name = OUString( RTL_CONSTASCII_USTRINGPARAM ( "ViewAreaWidth") );
- pValue[nIndex++].Value <<= aRect.GetWidth();
-
- pValue[nIndex].Name = OUString( RTL_CONSTASCII_USTRINGPARAM ( "ViewAreaHeight") );
- pValue[nIndex++].Value <<= aRect.GetHeight();
-}
-
-void SmXMLExport::GetConfigurationSettings( Sequence < PropertyValue > & rProps)
-{
- Reference < XPropertySet > xProps ( GetModel(), UNO_QUERY );
- if ( xProps.is() )
- {
- Reference< XPropertySetInfo > xPropertySetInfo = xProps->getPropertySetInfo();
- if (xPropertySetInfo.is())
- {
- Sequence< Property > aProps = xPropertySetInfo->getProperties();
- sal_Int32 nCount(aProps.getLength());
- if (nCount > 0)
- {
- rProps.realloc(nCount);
- PropertyValue* pProps = rProps.getArray();
- if (pProps)
- {
- const OUString sFormula ( RTL_CONSTASCII_USTRINGPARAM ( "Formula" ) );
- const OUString sBasicLibraries ( RTL_CONSTASCII_USTRINGPARAM ( "BasicLibraries" ) );
- const OUString sDialogLibraries ( RTL_CONSTASCII_USTRINGPARAM ( "DialogLibraries" ) );
- const OUString sRuntimeUID ( RTL_CONSTASCII_USTRINGPARAM ( "RuntimeUID" ) );
- for (sal_Int32 i = 0; i < nCount; i++, pProps++)
- {
- const OUString &rPropName = aProps[i].Name;
- if (rPropName != sFormula &&
- rPropName != sBasicLibraries &&
- rPropName != sDialogLibraries &&
- rPropName != sRuntimeUID)
- {
- pProps->Name = rPropName;
- pProps->Value = xProps->getPropertyValue(rPropName);
- }
- }
- }
- }
- }
- }
-}
-
-void SmXMLExport::ExportLine(const SmNode *pNode, int nLevel)
-{
- ExportExpression(pNode, nLevel);
-}
-
-void SmXMLExport::ExportBinaryHorizontal(const SmNode *pNode, int nLevel)
-{
- ExportExpression(pNode, nLevel);
-}
-
-void SmXMLExport::ExportUnaryHorizontal(const SmNode *pNode, int nLevel)
-{
- ExportExpression(pNode, nLevel);
-}
-
-void SmXMLExport::ExportExpression(const SmNode *pNode, int nLevel)
-{
- SvXMLElementExport *pRow=0;
- ULONG nSize = pNode->GetNumSubNodes();
-
- if (nSize > 1)
- pRow = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MROW, sal_True, sal_True);
-
- //if (nSize)
- //{
- for (USHORT i = 0; i < nSize; i++)
- if (const SmNode *pTemp = pNode->GetSubNode(i))
- ExportNodes(pTemp, nLevel+1);
- //}
-#if 0
- else
- {
- //This saves us from situations like "a newline" where the
- //lack of a term following the newline would otherwise create
- //a incorrect token like <mtr/>
- SvXMLElementExport aDummy(*this, XML_NAMESPACE_MATH, XML_MI, sal_True, sal_False);
- sal_Unicode nArse[2] = {'\n','\0'};
- GetDocHandler()->characters(nArse);
- }
-#endif
-
- delete pRow;
-}
-
-void SmXMLExport::ExportBinaryVertical(const SmNode *pNode, int nLevel)
-{
- DBG_ASSERT(pNode->GetNumSubNodes()==3,"Bad Fraction");
- SvXMLElementExport aFraction(*this, XML_NAMESPACE_MATH, XML_MFRAC, sal_True, sal_True);
- ExportNodes(pNode->GetSubNode(0), nLevel);
- ExportNodes(pNode->GetSubNode(2), nLevel);
-}
-
-void SmXMLExport::ExportTable(const SmNode *pNode, int nLevel)
-{
- SvXMLElementExport *pTable=0;
-
- USHORT nSize = pNode->GetNumSubNodes();
-
- //If the list ends in newline then the last entry has
- //no subnodes, the newline is superfulous so we just drop
- //the last node, inclusion would create a bad MathML
- //table
- if (nSize >= 1 && pNode->GetSubNode(nSize-1)->GetNumSubNodes() == 0)
- --nSize;
-
- // try to avoid creating a mtable element when the formula consists only
- // of a single output line
- if (nLevel || (nSize >1))
- pTable = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MTABLE, sal_True, sal_True);
-
- for (USHORT i = 0; i < nSize; i++)
- if (const SmNode *pTemp = pNode->GetSubNode(i))
- {
- SvXMLElementExport *pRow=0;
- SvXMLElementExport *pCell=0;
- if (pTable)
- {
- pRow = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MTR, sal_True, sal_True);
- pCell = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MTD, sal_True, sal_True);
- }
- ExportNodes(pTemp, nLevel+1);
- delete pCell;
- delete pRow;
- }
-
- delete pTable;
-}
-
-void SmXMLExport::ExportMath(const SmNode *pNode, int /*nLevel*/)
-{
- const SmMathSymbolNode *pTemp = static_cast<const SmMathSymbolNode *>(pNode);
- SvXMLElementExport aMath(*this, XML_NAMESPACE_MATH, XML_MO, sal_True, sal_False);
- sal_Unicode nArse[2];
- nArse[0] = pTemp->GetText().GetChar(0);
- sal_Unicode cTmp = ConvertMathToMathML( nArse[0] );
- if (cTmp != 0)
- nArse[0] = cTmp;
- DBG_ASSERT(nArse[0] != 0xffff,"Non existant symbol");
- nArse[1] = 0;
- GetDocHandler()->characters(nArse);
-}
-
-void SmXMLExport::ExportText(const SmNode *pNode, int /*nLevel*/)
-{
- SvXMLElementExport *pText;
- const SmTextNode *pTemp = static_cast<const SmTextNode *>(pNode);
- switch (pNode->GetToken().eType)
- {
- default:
- case TIDENT:
- {
- //Note that we change the fontstyle to italic for strings that
- //are italic and longer than a single character.
- sal_Bool bIsItalic = IsItalic( pTemp->GetFont() );
- if ((pTemp->GetText().Len() > 1) && bIsItalic)
- AddAttribute(XML_NAMESPACE_MATH, XML_MATHVARIANT, XML_ITALIC);
- else if ((pTemp->GetText().Len() == 1) && !bIsItalic)
- AddAttribute(XML_NAMESPACE_MATH, XML_MATHVARIANT, XML_NORMAL);
- pText = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MI,sal_True,sal_False);
- break;
- }
- case TNUMBER:
- pText = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MN,sal_True,sal_False);
- break;
- case TTEXT:
- pText = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MTEXT,sal_True,sal_False);
- break;
- }
- GetDocHandler()->characters(OUString(pTemp->GetText().GetBuffer()));
- delete pText;
-}
-
-void SmXMLExport::ExportBlank(const SmNode * /*pNode*/, int /*nLevel*/)
-{
- //!! exports an empty <mi> tag since for example "~_~" is allowed in
- //!! Math (so it has no sense at all) but must not result in an empty
- //!! <msub> tag in MathML !!
-
- SvXMLElementExport *pText;
- //const SmBlankNode *pTemp = static_cast<const SmBlankNode *>(pNode);
-
- pText = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MI, sal_True, sal_False);
-
- GetDocHandler()->characters( OUString() );
- delete pText;
-}
-
-void SmXMLExport::ExportSubSupScript(const SmNode *pNode, int nLevel)
-{
- const SmNode *pSub = 0;
- const SmNode *pSup = 0;
- const SmNode *pCSub = 0;
- const SmNode *pCSup = 0;
- const SmNode *pLSub = 0;
- const SmNode *pLSup = 0;
- SvXMLElementExport *pThing = 0, *pThing2 = 0;
-
- //if we have prescripts at all then we must use the tensor notation
-
- //This is one of those excellent locations where scope is vital to
- //arrange the construction and destruction of the element helper
- //classes correctly
- pLSub = pNode->GetSubNode(LSUB+1);
- pLSup = pNode->GetSubNode(LSUP+1);
- if (pLSub || pLSup)
- {
- SvXMLElementExport aMultiScripts(*this, XML_NAMESPACE_MATH,
- XML_MMULTISCRIPTS, sal_True, sal_True);
-
-
- if (NULL != (pCSub = pNode->GetSubNode(CSUB+1))
- && NULL != (pCSup = pNode->GetSubNode(CSUP+1)))
- {
- pThing2 = new SvXMLElementExport(*this, XML_NAMESPACE_MATH,
- XML_MUNDEROVER, sal_True,sal_True);
- }
- else if (NULL != (pCSub = pNode->GetSubNode(CSUB+1)))
- {
- pThing2 = new SvXMLElementExport(*this, XML_NAMESPACE_MATH,
- XML_MUNDER, sal_True,sal_True);
- }
- else if (NULL != (pCSup = pNode->GetSubNode(CSUP+1)))
- {
- pThing2 = new SvXMLElementExport(*this, XML_NAMESPACE_MATH,
- XML_MOVER, sal_True,sal_True);
- }
-
- ExportNodes(pNode->GetSubNode(0), nLevel+1); //Main Term
-
- if (pCSub)
- ExportNodes(pCSub, nLevel+1);
- if (pCSup)
- ExportNodes(pCSup, nLevel+1);
- delete pThing2;
-
- pSub = pNode->GetSubNode(RSUB+1);
- pSup = pNode->GetSubNode(RSUP+1);
- if (pSub || pSup)
- {
- if (pSub)
- ExportNodes(pSub, nLevel+1);
- else
- {
- SvXMLElementExport aNone(*this, XML_NAMESPACE_MATH, XML_NONE,sal_True,sal_True);
- }
- if (pSup)
- ExportNodes(pSup, nLevel+1);
- else
- {
- SvXMLElementExport aNone(*this, XML_NAMESPACE_MATH, XML_NONE,sal_True,sal_True);
- }
- }
-
- //Seperator element between suffix and prefix sub/sup pairs
- {
- SvXMLElementExport aPrescripts(*this, XML_NAMESPACE_MATH,
- XML_MPRESCRIPTS, sal_True,sal_True);
- }
-
- if (pLSub)
- ExportNodes(pLSub, nLevel+1);
- else
- {
- SvXMLElementExport aNone(*this, XML_NAMESPACE_MATH, XML_NONE,
- sal_True,sal_True);
-
- }
- if (pLSup)
- ExportNodes(pLSup, nLevel+1);
- else
- {
- SvXMLElementExport aNone(*this, XML_NAMESPACE_MATH, XML_NONE,
- sal_True,sal_True);
-
- }
- }
- else
- {
- if (NULL != (pSub = pNode->GetSubNode(RSUB+1)) &&
- NULL != (pSup = pNode->GetSubNode(RSUP+1)))
- {
- pThing = new SvXMLElementExport(*this, XML_NAMESPACE_MATH,
- XML_MSUBSUP, sal_True,sal_True);
- }
- else if (NULL != (pSub = pNode->GetSubNode(RSUB+1)))
- {
- pThing = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MSUB,
- sal_True,sal_True);
- }
- else if (NULL != (pSup = pNode->GetSubNode(RSUP+1)))
- {
- pThing = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MSUP,
- sal_True,sal_True);
- }
-
- if (NULL != (pCSub = pNode->GetSubNode(CSUB+1))
- && NULL != (pCSup=pNode->GetSubNode(CSUP+1)))
- {
- pThing2 = new SvXMLElementExport(*this, XML_NAMESPACE_MATH,
- XML_MUNDEROVER, sal_True,sal_True);
- }
- else if (NULL != (pCSub = pNode->GetSubNode(CSUB+1)))
- {
- pThing2 = new SvXMLElementExport(*this, XML_NAMESPACE_MATH,
- XML_MUNDER, sal_True,sal_True);
- }
- else if (NULL != (pCSup = pNode->GetSubNode(CSUP+1)))
- {
- pThing2 = new SvXMLElementExport(*this, XML_NAMESPACE_MATH,
- XML_MOVER, sal_True,sal_True);
- }
- ExportNodes(pNode->GetSubNode(0), nLevel+1); //Main Term
-
- if (pCSub)
- ExportNodes(pCSub, nLevel+1);
- if (pCSup)
- ExportNodes(pCSup, nLevel+1);
- delete pThing2;
-
- if (pSub)
- ExportNodes(pSub, nLevel+1);
- if (pSup)
- ExportNodes(pSup, nLevel+1);
- delete pThing;
- }
-}
-
-void SmXMLExport::ExportBrace(const SmNode *pNode, int nLevel)
-{
- const SmNode *pTemp;
- const SmNode *pLeft=pNode->GetSubNode(0);
- const SmNode *pRight=pNode->GetSubNode(2);
- SvXMLElementExport *pFences=0,*pRow=0;
- if ( ((pLeft) && (pLeft->GetToken().eType != TNONE)) &&
- ((pRight) && (pRight->GetToken().eType != TNONE)) &&
- (pNode->GetScaleMode() == SCALE_HEIGHT))
- {
- sal_Unicode nArse[2];
- nArse[1] = 0;
- nArse[0] = static_cast<
- const SmMathSymbolNode* >(pLeft)->GetText().GetChar(0);
- DBG_ASSERT(nArse[0] != 0xffff,"Non existant symbol");
- AddAttribute(XML_NAMESPACE_MATH, XML_OPEN,nArse);
- nArse[0] = static_cast<
- const SmMathSymbolNode* >(pRight)->GetText().GetChar(0);
- DBG_ASSERT(nArse[0] != 0xffff,"Non existant symbol");
- AddAttribute(XML_NAMESPACE_MATH, XML_CLOSE,nArse);
- pFences = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MFENCED,
- sal_True,sal_True);
- }
- else if (pLeft && (pLeft->GetToken().eType != TNONE))
- {
- pRow = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MROW,
- sal_True, sal_True);
- if (pNode->GetScaleMode() == SCALE_HEIGHT)
- AddAttribute(XML_NAMESPACE_MATH, XML_STRETCHY, XML_TRUE);
- else
- AddAttribute(XML_NAMESPACE_MATH, XML_STRETCHY, XML_FALSE);
- ExportNodes(pLeft, nLevel+1);
- }
- else
- pRow = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MROW,
- sal_True, sal_True);
-
- if (NULL != (pTemp = pNode->GetSubNode(1)))
- ExportNodes(pTemp, nLevel+1);
- if (pFences)
- delete pFences;
- else if (pRight && (pRight->GetToken().eType != TNONE))
- {
- if (pNode->GetScaleMode() == SCALE_HEIGHT)
- AddAttribute(XML_NAMESPACE_MATH, XML_STRETCHY, XML_TRUE);
- else
- AddAttribute(XML_NAMESPACE_MATH, XML_STRETCHY, XML_FALSE);
- ExportNodes(pRight, nLevel+1);
- }
- delete pRow;
-}
-
-void SmXMLExport::ExportRoot(const SmNode *pNode, int nLevel)
-{
- if (pNode->GetSubNode(0))
- {
- SvXMLElementExport aRoot(*this, XML_NAMESPACE_MATH, XML_MROOT,sal_True,
- sal_True);
- ExportNodes(pNode->GetSubNode(2), nLevel+1);
- ExportNodes(pNode->GetSubNode(0), nLevel+1);
- }
- else
- {
- SvXMLElementExport aSqrt(*this, XML_NAMESPACE_MATH, XML_MSQRT,sal_True,
- sal_True);
- ExportNodes(pNode->GetSubNode(2), nLevel+1);
- }
-}
-
-void SmXMLExport::ExportOperator(const SmNode *pNode, int nLevel)
-{
- /*we need to either use content or font and size attributes
- *here*/
-#if 0
- {
- SvXMLElementExport aMath(*this, XML_NAMESPACE_MATH, XML_MO,
- sal_True,sal_False);
- SmTextNode *pTemp = (SmTextNode *)pNode->GetSubNode(0);
- GetDocHandler()->characters(pTemp->GetText());
- }
-#endif
- SvXMLElementExport aRow(*this, XML_NAMESPACE_MATH, XML_MROW,
- sal_True, sal_True);
- ExportNodes(pNode->GetSubNode(0), nLevel+1);
- ExportNodes(pNode->GetSubNode(1), nLevel+1);
-}
-
-void SmXMLExport::ExportAttributes(const SmNode *pNode, int nLevel)
-{
- SvXMLElementExport *pElement=0;
-
- if (pNode->GetToken().eType == TUNDERLINE)
- {
- AddAttribute(XML_NAMESPACE_MATH, XML_ACCENTUNDER,
- XML_TRUE);
- pElement = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MUNDER,
- sal_True,sal_True);
- }
- else if (pNode->GetToken().eType != TOVERSTRIKE)
- {
- AddAttribute(XML_NAMESPACE_MATH, XML_ACCENT,
- XML_TRUE);
- pElement = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MOVER,
- sal_True,sal_True);
- }
-
- ExportNodes(pNode->GetSubNode(1), nLevel+1);
- switch (pNode->GetToken().eType)
- {
- case TOVERLINE:
- {
- //proper entity support required
- SvXMLElementExport aMath(*this, XML_NAMESPACE_MATH, XML_MO,
- sal_True,sal_True);
-#if 0
- GetDocHandler()->characters(
- OUString(RTL_CONSTASCII_USTRINGPARAM("&overbar;")));
-#else
- sal_Unicode nArse[2] = {0xAF,0x00};
-#endif
- GetDocHandler()->characters(nArse);
- }
- break;
- case TUNDERLINE:
- {
- //proper entity support required
- SvXMLElementExport aMath(*this, XML_NAMESPACE_MATH, XML_MO,
- sal_True,sal_True);
-#if 0
- GetDocHandler()->characters(
- OUString(RTL_CONSTASCII_USTRINGPARAM("&underbar;")));
-#else
- sal_Unicode nArse[2] = {0x0332,0x00};
-#endif
- GetDocHandler()->characters(nArse);
- }
- break;
- case TOVERSTRIKE:
- break;
- default:
- ExportNodes(pNode->GetSubNode(0), nLevel+1);
- break;
- }
- delete pElement;
-}
-
-static bool lcl_HasEffectOnMathvariant( const SmTokenType eType )
-{
- return eType == TBOLD || eType == TNBOLD ||
- eType == TITALIC || eType == TNBOLD ||
- eType == TSANS || eType == TSERIF || eType == TFIXED;
-}
-
-void SmXMLExport::ExportFont(const SmNode *pNode, int nLevel)
-{
- SvXMLElementExport *pElement = 0;
-
- //
- // gather the mathvariant attribut relevant data from all
- // successively following SmFontNodes...
- //
- int nBold = -1; // for the following variables: -1 = yet undefined; 0 = false; 1 = true;
- int nItalic = -1; // for the following variables: -1 = yet undefined; 0 = false; 1 = true;
- int nSansSerifFixed = -1;
- SmTokenType eNodeType = TUNKNOWN;
- while (lcl_HasEffectOnMathvariant( (eNodeType = pNode->GetToken().eType) ))
- {
- switch (eNodeType)
- {
- case TBOLD : nBold = 1; break;
- case TNBOLD : nBold = 0; break;
- case TITALIC : nItalic = 1; break;
- case TNITALIC : nItalic = 0; break;
- case TSANS : nSansSerifFixed = 0; break;
- case TSERIF : nSansSerifFixed = 1; break;
- case TFIXED : nSansSerifFixed = 2; break;
- default:
- DBG_ASSERT( 0, "unexpected case" );
- }
- // According to the parser every node that is to be evaluated heres
- // has a single non-zero subnode at index 1!! Thus we only need to check
- // that single node for follow-up nodes that have an effect on the attribute.
- if (pNode->GetNumSubNodes() > 1 && pNode->GetSubNode(1) &&
- lcl_HasEffectOnMathvariant( pNode->GetSubNode(1)->GetToken().eType))
- {
- pNode = pNode->GetSubNode(1);
- }
- else
- break;
- }
-
- switch (pNode->GetToken().eType)
- {
- //wrap a phantom element around everything*/
- case TPHANTOM:
- pElement = new SvXMLElementExport(*this, XML_NAMESPACE_MATH,
- XML_MPHANTOM, sal_True,sal_True);
- break;
- case TBLACK:
- AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_BLACK);
- break;
- case TWHITE:
- AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_WHITE);
- break;
- case TRED:
- AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_RED);
- break;
- case TGREEN:
- AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_GREEN);
- break;
- case TBLUE:
- AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_BLUE);
- break;
- case TCYAN:
- AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_AQUA);
- break;
- case TMAGENTA:
- AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_FUCHSIA);
- break;
- case TYELLOW:
- AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_YELLOW);
- break;
- case TSIZE:
- {
- const SmFontNode *pFontNode = static_cast<const SmFontNode *>(pNode);
- const Fraction &aFrac = pFontNode->GetSizeParameter();
-
- OUStringBuffer sStrBuf;
- switch(pFontNode->GetSizeType())
- {
- case FNTSIZ_MULTIPLY:
- SvXMLUnitConverter::convertDouble(sStrBuf,
- static_cast<double>(aFrac*Fraction(100.00)));
- sStrBuf.append(static_cast<sal_Unicode>('%'));
- break;
- case FNTSIZ_DIVIDE:
- SvXMLUnitConverter::convertDouble(sStrBuf,
- static_cast<double>(Fraction(100.00)/aFrac));
- sStrBuf.append(static_cast<sal_Unicode>('%'));
- break;
- case FNTSIZ_ABSOLUT:
- SvXMLUnitConverter::convertDouble(sStrBuf,
- static_cast<double>(aFrac));
- sStrBuf.append(
- GetXMLToken(XML_UNIT_PT));
- break;
- default:
- {
- //The problem here is that the wheels fall off because
- //font size is stored in 100th's of a mm not pts, and
- //rounding errors take their toll on the original
- //value specified in points.
-
- //Must fix StarMath to retain the original pt values
- Fraction aTemp = Sm100th_mmToPts(pFontNode->GetFont().
- GetSize().Height());
-
- if (pFontNode->GetSizeType() == FNTSIZ_MINUS)
- aTemp-=aFrac;
- else
- aTemp+=aFrac;
-
- double mytest = static_cast<double>(aTemp);
-
- mytest = ::rtl::math::round(mytest,1);
- SvXMLUnitConverter::convertDouble(sStrBuf,mytest);
- sStrBuf.append(GetXMLToken(XML_UNIT_PT));
- }
- break;
- }
-
- OUString sStr(sStrBuf.makeStringAndClear());
- AddAttribute(XML_NAMESPACE_MATH, XML_MATHSIZE, sStr);
- }
- break;
- case TBOLD:
- case TITALIC:
- case TNBOLD:
- case TNITALIC:
- case TFIXED:
- case TSANS:
- case TSERIF:
- {
- // nBold: -1 = yet undefined; 0 = false; 1 = true;
- // nItalic: -1 = yet undefined; 0 = false; 1 = true;
- // nSansSerifFixed: -1 = undefined; 0 = sans; 1 = serif; 2 = fixed;
- const sal_Char *pText = "normal";
- if (nSansSerifFixed == -1 || nSansSerifFixed == 1)
- {
- pText = "normal";
- if (nBold == 1 && nItalic != 1)
- pText = "bold";
- else if (nBold != 1 && nItalic == 1)
- pText = "italic";
- else if (nBold == 1 && nItalic == 1)
- pText = "bold-italic";
- }
- else if (nSansSerifFixed == 0)
- {
- pText = "sans-serif";
- if (nBold == 1 && nItalic != 1)
- pText = "bold-sans-serif";
- else if (nBold != 1 && nItalic == 1)
- pText = "sans-serif-italic";
- else if (nBold == 1 && nItalic == 1)
- pText = "sans-serif-bold-italic";
- }
- else if (nSansSerifFixed == 2)
- pText = "monospace"; // no modifiers allowed for monospace ...
- else
- {
- DBG_ASSERT( 0, "unexpected case" );
- }
- AddAttribute(XML_NAMESPACE_MATH, XML_MATHVARIANT, A2OU(pText));
- }
- break;
- default:
- break;
-
- }
-#if 0
- if (pNode->GetNumSubNodes() > 1) //or in the future is a node that
- //cannot take the currently supported
- //properties
-#endif
- //for now we will just always export with a style and not worry about
- //anyone else for the moment.
- {
- //wrap a style around it
- SvXMLElementExport aStyle(*this, XML_NAMESPACE_MATH, XML_MSTYLE, sal_True,sal_True);
- ExportExpression(pNode, nLevel);
- }
-#if 0
- else
- ExportNodes(pNode->GetSubNode(0), nLevel+1);
-#endif
-
- delete pElement;
-}
-
-
-void SmXMLExport::ExportVerticalBrace(const SmNode *pNode, int nLevel)
-{
- //Place the overbrace value OVER a vertical brace and then place that
- //expression OVER the overbrace value, If someone can find a
- //dedicated term in MathML to handle this overbrace/underbrace concept
- //let me know. C.
- XMLTokenEnum which;
-
- switch (pNode->GetToken().eType)
- {
- case TOVERBRACE:
- default:
- which = XML_MOVER;
- break;
- case TUNDERBRACE:
- which = XML_MUNDER;
- break;
- }
-
- DBG_ASSERT(pNode->GetNumSubNodes()==3,"Bad Vertical Brace");
- SvXMLElementExport aOver1(*this, XML_NAMESPACE_MATH,which, sal_True, sal_True);
- {//Scoping
- // using accents will draw the over-/underbraces too close to the base
- // see http://www.w3.org/TR/MathML2/chapter3.html#id.3.4.5.2
- // also XML_ACCENT is illegal with XML_MUNDER. Thus no XML_ACCENT attribut here!
-// AddAttribute(XML_NAMESPACE_MATH, XML_ACCENT, XML_TRUE);
- SvXMLElementExport aOver2(*this, XML_NAMESPACE_MATH,which, sal_True, sal_True);
- ExportNodes(pNode->GetSubNode(0), nLevel);
- ExportNodes(pNode->GetSubNode(1), nLevel);
- }
- ExportNodes(pNode->GetSubNode(2), nLevel);
-}
-
-void SmXMLExport::ExportMatrix(const SmNode *pNode, int nLevel)
-{
- SvXMLElementExport aTable(*this, XML_NAMESPACE_MATH, XML_MTABLE, sal_True, sal_True);
- const SmMatrixNode *pMatrix = static_cast<const SmMatrixNode *>(pNode);
- USHORT i=0;
- for (ULONG y = 0; y < pMatrix->GetNumRows(); y++)
- {
- SvXMLElementExport aRow(*this, XML_NAMESPACE_MATH, XML_MTR, sal_True, sal_True);
- for (ULONG x = 0; x < pMatrix->GetNumCols(); x++)
- if (const SmNode *pTemp = pNode->GetSubNode(i++))
- {
- SvXMLElementExport aCell(*this, XML_NAMESPACE_MATH, XML_MTD, sal_True, sal_True);
- ExportNodes(pTemp, nLevel+1);
- }
- }
-}
-
-void SmXMLExport::ExportNodes(const SmNode *pNode, int nLevel)
-{
- if (!pNode)
- return;
- switch(pNode->GetType())
- {
- case NTABLE:
- ExportTable(pNode, nLevel);
- break;
- case NALIGN:
- case NBRACEBODY:
- case NEXPRESSION:
- ExportExpression(pNode, nLevel);
- break;
- case NLINE:
- ExportLine(pNode, nLevel);
- break;
- case NTEXT:
- ExportText(pNode, nLevel);
- break;
- case NSPECIAL: //NSPECIAL requires some sort of Entity preservation in the XML engine.
- case NGLYPH_SPECIAL:
- case NMATH:
- {
- sal_Unicode cTmp = 0;
- const SmTextNode *pTemp = static_cast< const SmTextNode * >(pNode);
- if (pTemp->GetText().Len() > 0)
- cTmp = ConvertMathToMathML( pTemp->GetText().GetChar(0) );
- if (cTmp == 0)
- {
- // no conversion to MathML implemented -> export it as text
- // thus at least it will not vanish into nothing
- ExportText(pNode, nLevel);
- }
- else
- {
- //To fully handle generic MathML we need to implement the full
- //operator dictionary, we will generate MathML with explicit
- //stretchiness for now.
- sal_Int16 nLength = GetAttrList().getLength();
- sal_Bool bAddStretch=sal_True;
- for ( sal_Int16 i = 0; i < nLength; i++ )
- {
- OUString sLocalName;
- sal_uInt16 nPrefix = GetNamespaceMap().GetKeyByAttrName(
- GetAttrList().getNameByIndex(i), &sLocalName );
-
- if ( ( XML_NAMESPACE_MATH == nPrefix ) &&
- IsXMLToken(sLocalName, XML_STRETCHY) )
- {
- bAddStretch = sal_False;
- break;
- }
- }
- if (bAddStretch)
- {
- AddAttribute(XML_NAMESPACE_MATH, XML_STRETCHY, XML_FALSE);
- }
- ExportMath(pNode, nLevel);
- }
- }
- break;
- case NPLACE:
- ExportMath(pNode, nLevel);
- break;
- case NBINHOR:
- ExportBinaryHorizontal(pNode, nLevel);
- break;
- case NUNHOR:
- ExportUnaryHorizontal(pNode, nLevel);
- break;
- case NBRACE:
- ExportBrace(pNode, nLevel);
- break;
- case NBINVER:
- ExportBinaryVertical(pNode, nLevel);
- break;
- case NSUBSUP:
- ExportSubSupScript(pNode, nLevel);
- break;
- case NROOT:
- ExportRoot(pNode, nLevel);
- break;
- case NOPER:
- ExportOperator(pNode, nLevel);
- break;
- case NATTRIBUT:
- ExportAttributes(pNode, nLevel);
- break;
- case NFONT:
- ExportFont(pNode, nLevel);
- break;
- case NVERTICAL_BRACE:
- ExportVerticalBrace(pNode, nLevel);
- break;
- case NMATRIX:
- ExportMatrix(pNode, nLevel);
- break;
- case NBLANK:
- ExportBlank(pNode, nLevel);
- break;
- default:
- DBG_ASSERT( 0, "Warning: failed to export a node?" );
- break;
-
-#if 0
- default:
- {
- ULONG nSize = pNode->GetNumSubNodes();
- for (ULONG i = 0; i < nSize; i++)
- if (SmNode *pTemp = pNode->GetSubNode(i))
- ExportNodes(pTemp, nLevel+1);
- }
- break;
-#endif
- }
-}
-
-////////////////////////////////////////////////////////////
-
+/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_starmath.hxx" + +/* + Warning: The SvXMLElementExport helper class creates the beginning and + closing tags of xml elements in its constructor and destructor, so theres + hidden stuff going on, on occasion the ordering of these classes declarations + may be significant +*/ + + +#include <com/sun/star/xml/sax/XErrorHandler.hpp> +#include <com/sun/star/xml/sax/XEntityResolver.hpp> +#include <com/sun/star/xml/sax/InputSource.hpp> +#include <com/sun/star/xml/sax/XDTDHandler.hpp> +#include <com/sun/star/xml/sax/XParser.hpp> +#include <com/sun/star/io/XActiveDataSource.hpp> +#include <com/sun/star/io/XActiveDataControl.hpp> +#include <com/sun/star/document/XDocumentProperties.hpp> +#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> +#include <com/sun/star/packages/zip/ZipIOException.hpp> +#include <com/sun/star/task/XStatusIndicatorFactory.hpp> +#include <com/sun/star/beans/PropertyAttribute.hpp> +#include <com/sun/star/container/XNameAccess.hpp> +#include <com/sun/star/embed/ElementModes.hpp> +#include <com/sun/star/uno/Any.h> + +#include <rtl/math.hxx> +#include <sfx2/frame.hxx> +#include <sfx2/docfile.hxx> +#include <tools/debug.hxx> +#include <tools/urlobj.hxx> +#include <svtools/sfxecode.hxx> +#include <unotools/saveopt.hxx> +#include <svl/stritem.hxx> +#include <svl/itemprop.hxx> +#include <unotools/processfactory.hxx> +#include <unotools/streamwrap.hxx> +#include <xmloff/xmlnmspe.hxx> +#include <xmloff/xmltoken.hxx> +#include <xmloff/nmspmap.hxx> +#include <xmloff/attrlist.hxx> +#include <xmloff/xmluconv.hxx> +#include <xmloff/xmlmetai.hxx> +#include <osl/mutex.hxx> +#include <comphelper/genericpropertyset.hxx> + +#include <memory> + +#include "mathmlexport.hxx" +#include "mathtype.hxx" +#include <starmath.hrc> +#include <unomodel.hxx> +#include <document.hxx> +#include <utility.hxx> + +using namespace ::com::sun::star::beans; +using namespace ::com::sun::star::container; +using namespace ::com::sun::star::document; +using namespace ::com::sun::star::lang; +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star; +using namespace ::xmloff::token; + +using ::rtl::OUString; +using ::rtl::OUStringBuffer; + +#define EXPORT_SVC_NAME RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.XMLExportFilter") + +#undef WANTEXCEPT + + +//////////////////////////////////////////////////////////// + +sal_Bool SmXMLExportWrapper::Export(SfxMedium &rMedium) +{ + sal_Bool bRet=sal_True; + uno::Reference<lang::XMultiServiceFactory> + xServiceFactory(utl::getProcessServiceFactory()); + DBG_ASSERT(xServiceFactory.is(),"got no service manager"); + + //Get model + uno::Reference< lang::XComponent > xModelComp(xModel, uno::UNO_QUERY ); + + sal_Bool bEmbedded = sal_False; + uno::Reference <lang::XUnoTunnel> xTunnel; + xTunnel = uno::Reference <lang::XUnoTunnel> (xModel,uno::UNO_QUERY); + SmModel *pModel = reinterpret_cast<SmModel *> + (xTunnel->getSomething(SmModel::getUnoTunnelId())); + + SmDocShell *pDocShell = pModel ? + static_cast<SmDocShell*>(pModel->GetObjectShell()) : 0; + if ( pDocShell && + SFX_CREATE_MODE_EMBEDDED == pDocShell->GetCreateMode() ) + bEmbedded = sal_True; + + uno::Reference<task::XStatusIndicator> xStatusIndicator; + if (!bEmbedded) + { + if (pDocShell /*&& pDocShell->GetMedium()*/) + { + DBG_ASSERT( pDocShell->GetMedium() == &rMedium, + "different SfxMedium found" ); + + SfxItemSet* pSet = rMedium.GetItemSet(); + if (pSet) + { + const SfxUnoAnyItem* pItem = static_cast<const SfxUnoAnyItem*>( + pSet->GetItem(SID_PROGRESS_STATUSBAR_CONTROL) ); + if (pItem) + pItem->GetValue() >>= xStatusIndicator; + } + } + + // set progress range and start status indicator + if (xStatusIndicator.is()) + { + sal_Int32 nProgressRange = bFlat ? 1 : 3; + xStatusIndicator->start(String(SmResId(STR_STATSTR_WRITING)), + nProgressRange); + } + } + + + // create XPropertySet with three properties for status indicator + comphelper::PropertyMapEntry aInfoMap[] = + { + { "UsePrettyPrinting", sizeof("UsePrettyPrinting")-1, 0, + &::getBooleanCppuType(), + beans::PropertyAttribute::MAYBEVOID, 0}, + { "BaseURI", sizeof("BaseURI")-1, 0, + &::getCppuType( (OUString *)0 ), + beans::PropertyAttribute::MAYBEVOID, 0 }, + { "StreamRelPath", sizeof("StreamRelPath")-1, 0, + &::getCppuType( (OUString *)0 ), + beans::PropertyAttribute::MAYBEVOID, 0 }, + { "StreamName", sizeof("StreamName")-1, 0, + &::getCppuType( (OUString *)0 ), + beans::PropertyAttribute::MAYBEVOID, 0 }, + { NULL, 0, 0, NULL, 0, 0 } + }; + uno::Reference< beans::XPropertySet > xInfoSet( + comphelper::GenericPropertySet_CreateInstance( + new comphelper::PropertySetInfo( aInfoMap ) ) ); + + SvtSaveOptions aSaveOpt; + OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting")); + sal_Bool bUsePrettyPrinting( bFlat || aSaveOpt.IsPrettyPrinting() ); + Any aAny; + aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() ); + xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny ); + + // Set base URI + OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BaseURI") ); + xInfoSet->setPropertyValue( sPropName, makeAny( rMedium.GetBaseURL( true ) ) ); + + sal_Int32 nSteps=0; + if (xStatusIndicator.is()) + xStatusIndicator->setValue(nSteps++); + if (!bFlat) //Storage (Package) of Stream + { + uno::Reference < embed::XStorage > xStg = rMedium.GetOutputStorage(); + sal_Bool bOASIS = ( SotStorage::GetVersion( xStg ) > SOFFICE_FILEFORMAT_60 ); + + // TODO/LATER: handle the case of embedded links gracefully + if ( bEmbedded ) //&& !pStg->IsRoot() ) + { + OUString aName; + if ( rMedium.GetItemSet() ) + { + const SfxStringItem* pDocHierarchItem = static_cast<const SfxStringItem*>( + rMedium.GetItemSet()->GetItem(SID_DOC_HIERARCHICALNAME) ); + if ( pDocHierarchItem ) + aName = pDocHierarchItem->GetValue(); + } + + if ( aName.getLength() ) + { + sPropName = OUString(RTL_CONSTASCII_USTRINGPARAM("StreamRelPath")); + xInfoSet->setPropertyValue( sPropName, makeAny( aName ) ); + } + } + + if ( !bEmbedded ) + { + if (xStatusIndicator.is()) + xStatusIndicator->setValue(nSteps++); + + bRet = WriteThroughComponent( + xStg, xModelComp, "meta.xml", xServiceFactory, xInfoSet, + (bOASIS ? "com.sun.star.comp.Math.XMLOasisMetaExporter" + : "com.sun.star.comp.Math.XMLMetaExporter"), + sal_False); + } + if ( bRet ) + { + if (xStatusIndicator.is()) + xStatusIndicator->setValue(nSteps++); + + bRet = WriteThroughComponent( + xStg, xModelComp, "content.xml", xServiceFactory, xInfoSet, + "com.sun.star.comp.Math.XMLContentExporter"); + } + + if ( bRet ) + { + if (xStatusIndicator.is()) + xStatusIndicator->setValue(nSteps++); + + bRet = WriteThroughComponent( + xStg, xModelComp, "settings.xml", xServiceFactory, xInfoSet, + (bOASIS ? "com.sun.star.comp.Math.XMLOasisSettingsExporter" + : "com.sun.star.comp.Math.XMLSettingsExporter") ); + } + } + else + { + SvStream *pStream = rMedium.GetOutStream(); + uno::Reference<io::XOutputStream> xOut( + new utl::OOutputStreamWrapper(*pStream) ); + + if (xStatusIndicator.is()) + xStatusIndicator->setValue(nSteps++); + + bRet = WriteThroughComponent( + xOut, xModelComp, xServiceFactory, xInfoSet, + "com.sun.star.comp.Math.XMLContentExporter"); + } + + if (xStatusIndicator.is()) + xStatusIndicator->end(); + + return bRet; +} + + +/// export through an XML exporter component (output stream version) +sal_Bool SmXMLExportWrapper::WriteThroughComponent( + Reference<io::XOutputStream> xOutputStream, + Reference<XComponent> xComponent, + Reference<lang::XMultiServiceFactory> & rFactory, + Reference<beans::XPropertySet> & rPropSet, + const sal_Char* pComponentName ) +{ + DBG_ASSERT(xOutputStream.is(), "I really need an output stream!"); + DBG_ASSERT(xComponent.is(), "Need component!"); + DBG_ASSERT(NULL != pComponentName, "Need component name!"); + + // get component + Reference< io::XActiveDataSource > xSaxWriter( + rFactory->createInstance( + OUString::createFromAscii("com.sun.star.xml.sax.Writer") ), + UNO_QUERY ); + DBG_ASSERT( xSaxWriter.is(), "can't instantiate XML writer" ); + if (!xSaxWriter.is()) + return sal_False; + + // connect XML writer to output stream + xSaxWriter->setOutputStream( xOutputStream ); + + // prepare arguments (prepend doc handler to given arguments) + Reference<xml::sax::XDocumentHandler> xDocHandler( xSaxWriter,UNO_QUERY); + + Sequence<Any> aArgs( 2 ); + aArgs[0] <<= xDocHandler; + aArgs[1] <<= rPropSet; + + // get filter component + Reference< document::XExporter > xExporter( + rFactory->createInstanceWithArguments( + OUString::createFromAscii(pComponentName), aArgs), UNO_QUERY); + DBG_ASSERT( xExporter.is(), + "can't instantiate export filter component" ); + if ( !xExporter.is() ) + return sal_False; + + + // connect model and filter + xExporter->setSourceDocument( xComponent ); + + // filter! + Reference < XFilter > xFilter( xExporter, UNO_QUERY ); + uno::Sequence< PropertyValue > aProps(0); + xFilter->filter( aProps ); + + uno::Reference<lang::XUnoTunnel> xFilterTunnel; + xFilterTunnel = uno::Reference<lang::XUnoTunnel> + ( xFilter, uno::UNO_QUERY ); + SmXMLExport *pFilter = reinterpret_cast< SmXMLExport * >( + sal::static_int_cast< sal_uIntPtr >( + xFilterTunnel->getSomething( SmXMLExport::getUnoTunnelId() ))); + return pFilter ? pFilter->GetSuccess() : sal_True; +} + + +/// export through an XML exporter component (storage version) +sal_Bool SmXMLExportWrapper::WriteThroughComponent( + const Reference < embed::XStorage >& xStorage, + Reference<XComponent> xComponent, + const sal_Char* pStreamName, + Reference<lang::XMultiServiceFactory> & rFactory, + Reference<beans::XPropertySet> & rPropSet, + const sal_Char* pComponentName, + sal_Bool bCompress + ) +{ + DBG_ASSERT(xStorage.is(), "Need storage!"); + DBG_ASSERT(NULL != pStreamName, "Need stream name!"); + + // open stream + Reference < io::XStream > xStream; + OUString sStreamName = OUString::createFromAscii(pStreamName); + try + { + xStream = xStorage->openStreamElement( sStreamName, + embed::ElementModes::READWRITE | embed::ElementModes::TRUNCATE ); + } + catch ( uno::Exception& ) + { + DBG_ERROR( "Can't create output stream in package!" ); + return sal_False; + } + + String aPropName( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM("MediaType") ) ); + OUString aMime( RTL_CONSTASCII_USTRINGPARAM("text/xml") ); + uno::Any aAny; + aAny <<= aMime; + + uno::Reference < beans::XPropertySet > xSet( xStream, uno::UNO_QUERY ); + xSet->setPropertyValue( aPropName, aAny ); + + if ( !bCompress ) + { + aPropName = String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM("Compressed") ); + sal_Bool bFalse = sal_False; + aAny.setValue( &bFalse, ::getBooleanCppuType() ); + xSet->setPropertyValue( aPropName, aAny ); + } + + // even plain stream must be encrypted in encrypted document + OUString aTmpPropName( RTL_CONSTASCII_USTRINGPARAM("UseCommonStoragePasswordEncryption") ); + sal_Bool bTrue = sal_True; + aAny.setValue( &bTrue, ::getBooleanCppuType() ); + xSet->setPropertyValue( aTmpPropName, aAny ); + + // set Base URL + if ( rPropSet.is() ) + { + OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("StreamName") ); + rPropSet->setPropertyValue( sPropName, makeAny( sStreamName ) ); + } + + // write the stuff + sal_Bool bRet = WriteThroughComponent( xStream->getOutputStream(), xComponent, rFactory, + rPropSet, pComponentName ); + + // stream is closed by SAX parser + //if ( bRet ) + // xStream->getOutputStream()->closeOutput(); + + return bRet; +} + +//////////////////////////////////////////////////////////// + +// #110680# +SmXMLExport::SmXMLExport( + const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory, + sal_uInt16 nExportFlags) +: SvXMLExport( xServiceFactory, MAP_INCH, XML_MATH, nExportFlags ) , + pTree(0) , + bSuccess(sal_False) +{ +} + +sal_Int64 SAL_CALL SmXMLExport::getSomething( + const uno::Sequence< sal_Int8 >& rId ) +throw(uno::RuntimeException) +{ + if ( rId.getLength() == 16 && + 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), + rId.getConstArray(), 16 ) ) + return sal::static_int_cast< sal_Int64 >(reinterpret_cast< sal_uIntPtr >(this)); + + return SvXMLExport::getSomething( rId ); +} + +const uno::Sequence< sal_Int8 > & SmXMLExport::getUnoTunnelId() throw() +{ + static uno::Sequence< sal_Int8 > * pSeq = 0; + if ( !pSeq ) + { + osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); + if ( !pSeq ) + { + static uno::Sequence< sal_Int8 > aSeq( 16 ); + rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); + pSeq = &aSeq; + } + } + return *pSeq; +} + +OUString SAL_CALL SmXMLExport_getImplementationName() throw() +{ + return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Math.XMLExporter" ) ); +} + +uno::Sequence< OUString > SAL_CALL SmXMLExport_getSupportedServiceNames() + throw() +{ + const OUString aServiceName( EXPORT_SVC_NAME ); + const uno::Sequence< OUString > aSeq( &aServiceName, 1 ); + return aSeq; +} + +uno::Reference< uno::XInterface > SAL_CALL SmXMLExport_createInstance( + const uno::Reference< lang::XMultiServiceFactory > & rSMgr) + throw( uno::Exception ) +{ + // #110680# + // return (cppu::OWeakObject*)new SmXMLExport( EXPORT_ALL ); + // EXPORT_OASIS is required here allthough there is no differrence between + // OOo and OASIS, because without the flag, a transformation to OOo would + // be chained in. + return (cppu::OWeakObject*)new SmXMLExport( rSMgr, EXPORT_OASIS|EXPORT_ALL ); +} + +//////////////////////////////////////////////////////////// + +OUString SAL_CALL SmXMLExportMetaOOO_getImplementationName() throw() +{ + return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Math.XMLMetaExporter" ) ); +} + +uno::Sequence< OUString > SAL_CALL SmXMLExportMetaOOO_getSupportedServiceNames() + throw() +{ + const OUString aServiceName( EXPORT_SVC_NAME ); + const uno::Sequence< OUString > aSeq( &aServiceName, 1 ); + return aSeq; +} + +uno::Reference< uno::XInterface > SAL_CALL SmXMLExportMetaOOO_createInstance( + const uno::Reference< lang::XMultiServiceFactory > & rSMgr) +throw( uno::Exception ) +{ + // #110680# + // return (cppu::OWeakObject*)new SmXMLExport( EXPORT_META ); + return (cppu::OWeakObject*)new SmXMLExport( rSMgr, EXPORT_META ); +} + +//////////////////////////////////////////////////////////// + +OUString SAL_CALL SmXMLExportMeta_getImplementationName() throw() +{ + return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Math.XMLOasisMetaExporter" ) ); +} + +uno::Sequence< OUString > SAL_CALL SmXMLExportMeta_getSupportedServiceNames() +throw() +{ + const OUString aServiceName( EXPORT_SVC_NAME ); + const uno::Sequence< OUString > aSeq( &aServiceName, 1 ); + return aSeq; +} + +uno::Reference< uno::XInterface > SAL_CALL SmXMLExportMeta_createInstance( + const uno::Reference< lang::XMultiServiceFactory > & rSMgr) +throw( uno::Exception ) +{ + // #110680# + // return (cppu::OWeakObject*)new SmXMLExport( EXPORT_META ); + return (cppu::OWeakObject*)new SmXMLExport( rSMgr, EXPORT_OASIS|EXPORT_META ); +} + +//////////////////////////////////////////////////////////// + +OUString SAL_CALL SmXMLExportSettingsOOO_getImplementationName() throw() +{ + return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Math.XMLSettingsExporter" ) ); +} + +uno::Sequence< OUString > SAL_CALL SmXMLExportSettingsOOO_getSupportedServiceNames() +throw() +{ + const OUString aServiceName( EXPORT_SVC_NAME ); + const uno::Sequence< OUString > aSeq( &aServiceName, 1 ); + return aSeq; +} + +uno::Reference< uno::XInterface > SAL_CALL SmXMLExportSettingsOOO_createInstance( + const uno::Reference< lang::XMultiServiceFactory > & rSMgr) +throw( uno::Exception ) +{ + // #110680# + // return (cppu::OWeakObject*)new SmXMLExport( EXPORT_SETTINGS ); + return (cppu::OWeakObject*)new SmXMLExport( rSMgr, EXPORT_SETTINGS ); +} + +//////////////////////////////////////////////////////////// + +OUString SAL_CALL SmXMLExportSettings_getImplementationName() throw() +{ + return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Math.XMLOasisSettingsExporter" ) ); +} + +uno::Sequence< OUString > SAL_CALL SmXMLExportSettings_getSupportedServiceNames() +throw() +{ + const OUString aServiceName( EXPORT_SVC_NAME ); + const uno::Sequence< OUString > aSeq( &aServiceName, 1 ); + return aSeq; +} + +uno::Reference< uno::XInterface > SAL_CALL SmXMLExportSettings_createInstance( + const uno::Reference< lang::XMultiServiceFactory > & rSMgr) +throw( uno::Exception ) +{ + // #110680# + // return (cppu::OWeakObject*)new SmXMLExport( EXPORT_SETTINGS ); + return (cppu::OWeakObject*)new SmXMLExport( rSMgr, EXPORT_OASIS|EXPORT_SETTINGS ); +} + +//////////////////////////////////////////////////////////// + +OUString SAL_CALL SmXMLExportContent_getImplementationName() throw() +{ + return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Math.XMLContentExporter" ) ); +} + +uno::Sequence< OUString > SAL_CALL SmXMLExportContent_getSupportedServiceNames() + throw() +{ + const OUString aServiceName( EXPORT_SVC_NAME ); + const uno::Sequence< OUString > aSeq( &aServiceName, 1 ); + return aSeq; +} + +uno::Reference< uno::XInterface > SAL_CALL SmXMLExportContent_createInstance( + const uno::Reference< lang::XMultiServiceFactory > & rSMgr) +throw( uno::Exception ) +{ + // #110680# + // return (cppu::OWeakObject*)new SmXMLExport( EXPORT_CONTENT ); + // The EXPORT_OASIS flag is only required to avoid that a transformer is + // chanied in + return (cppu::OWeakObject*)new SmXMLExport( rSMgr, EXPORT_OASIS|EXPORT_CONTENT ); +} + +//////////////////////////////////////////////////////////// + +// XServiceInfo +// override empty method from parent class +rtl::OUString SAL_CALL SmXMLExport::getImplementationName() +throw(uno::RuntimeException) +{ + OUString aTxt; + switch( getExportFlags() ) + { + case EXPORT_META: + aTxt = SmXMLExportMeta_getImplementationName(); + break; + case EXPORT_SETTINGS: + aTxt = SmXMLExportSettings_getImplementationName(); + break; + case EXPORT_CONTENT: + aTxt = SmXMLExportContent_getImplementationName(); + break; + case EXPORT_ALL: + default: + aTxt = SmXMLExport_getImplementationName(); + break; + } + return aTxt; +} + +sal_uInt32 SmXMLExport::exportDoc(enum XMLTokenEnum eClass) +{ + if ( (getExportFlags() & EXPORT_CONTENT) == 0 ) + { + SvXMLExport::exportDoc( eClass ); + } + else + { + uno::Reference <frame::XModel> xModel = GetModel(); + uno::Reference <lang::XUnoTunnel> xTunnel; + xTunnel = uno::Reference <lang::XUnoTunnel> (xModel,uno::UNO_QUERY); + SmModel *pModel = reinterpret_cast<SmModel *> + (xTunnel->getSomething(SmModel::getUnoTunnelId())); + + if (pModel) + { + SmDocShell *pDocShell = + static_cast<SmDocShell*>(pModel->GetObjectShell()); + pTree = pDocShell->GetFormulaTree(); + aText = pDocShell->GetText(); + } + + GetDocHandler()->startDocument(); + + /*Add xmlns line*/ + SvXMLAttributeList &rList = GetAttrList(); + + // make use of a default namespace + ResetNamespaceMap(); // Math doesn't need namespaces from xmloff, since it now uses default namespaces (because that is common with current MathML usage in the web) + _GetNamespaceMap().Add( OUString::createFromAscii(""), GetXMLToken(XML_N_MATH), XML_NAMESPACE_MATH ); + + rList.AddAttribute(GetNamespaceMap().GetAttrNameByKey(XML_NAMESPACE_MATH_IDX), + GetNamespaceMap().GetNameByKey( XML_NAMESPACE_MATH_IDX)); + + //I think we need something like ImplExportEntities(); + _ExportContent(); + GetDocHandler()->endDocument(); + } + + bSuccess=sal_True; + return 0; +} + +void SmXMLExport::_ExportContent() +{ + SvXMLElementExport aEquation(*this, XML_NAMESPACE_MATH, XML_MATH, sal_True, sal_True); + SvXMLElementExport *pSemantics=0; + + if (aText.Len()) + { + pSemantics = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, + XML_SEMANTICS, sal_True, sal_True); + } + + ExportNodes(pTree, 0); + + if (aText.Len()) + { + // Convert symbol names + uno::Reference <frame::XModel> xModel = GetModel(); + uno::Reference <lang::XUnoTunnel> xTunnel; + xTunnel = uno::Reference <lang::XUnoTunnel> (xModel,uno::UNO_QUERY); + SmModel *pModel = reinterpret_cast<SmModel *> + (xTunnel->getSomething(SmModel::getUnoTunnelId())); + SmDocShell *pDocShell = pModel ? + static_cast<SmDocShell*>(pModel->GetObjectShell()) : 0; + DBG_ASSERT( pDocShell, "doc shell missing" ); + if (pDocShell) + { + SmParser &rParser = pDocShell->GetParser(); + BOOL bVal = rParser.IsExportSymbolNames(); + rParser.SetExportSymbolNames( TRUE ); + SmNode *pTmpTree = rParser.Parse( aText ); + aText = rParser.GetText(); + delete pTmpTree; + rParser.SetExportSymbolNames( bVal ); + } + + AddAttribute(XML_NAMESPACE_MATH, XML_ENCODING, + OUString(RTL_CONSTASCII_USTRINGPARAM("StarMath 5.0"))); + SvXMLElementExport aAnnotation(*this, XML_NAMESPACE_MATH, + XML_ANNOTATION, sal_True, sal_False); + GetDocHandler()->characters(OUString( aText )); + } + delete pSemantics; +} + +void SmXMLExport::GetViewSettings( Sequence < PropertyValue >& aProps) +{ + uno::Reference <frame::XModel> xModel = GetModel(); + if ( !xModel.is() ) + return; + + uno::Reference <lang::XUnoTunnel> xTunnel; + xTunnel = uno::Reference <lang::XUnoTunnel> (xModel,uno::UNO_QUERY); + SmModel *pModel = reinterpret_cast<SmModel *> + (xTunnel->getSomething(SmModel::getUnoTunnelId())); + + if ( !pModel ) + return; + + SmDocShell *pDocShell = + static_cast<SmDocShell*>(pModel->GetObjectShell()); + if ( !pDocShell ) + return; + + aProps.realloc( 4 ); + PropertyValue *pValue = aProps.getArray(); + sal_Int32 nIndex = 0; + + Rectangle aRect( pDocShell->GetVisArea() ); + + pValue[nIndex].Name = OUString( RTL_CONSTASCII_USTRINGPARAM ( "ViewAreaTop") ); + pValue[nIndex++].Value <<= aRect.Top(); + + pValue[nIndex].Name = OUString( RTL_CONSTASCII_USTRINGPARAM ( "ViewAreaLeft") ); + pValue[nIndex++].Value <<= aRect.Left(); + + pValue[nIndex].Name = OUString( RTL_CONSTASCII_USTRINGPARAM ( "ViewAreaWidth") ); + pValue[nIndex++].Value <<= aRect.GetWidth(); + + pValue[nIndex].Name = OUString( RTL_CONSTASCII_USTRINGPARAM ( "ViewAreaHeight") ); + pValue[nIndex++].Value <<= aRect.GetHeight(); +} + +void SmXMLExport::GetConfigurationSettings( Sequence < PropertyValue > & rProps) +{ + Reference < XPropertySet > xProps ( GetModel(), UNO_QUERY ); + if ( xProps.is() ) + { + Reference< XPropertySetInfo > xPropertySetInfo = xProps->getPropertySetInfo(); + if (xPropertySetInfo.is()) + { + Sequence< Property > aProps = xPropertySetInfo->getProperties(); + sal_Int32 nCount(aProps.getLength()); + if (nCount > 0) + { + rProps.realloc(nCount); + PropertyValue* pProps = rProps.getArray(); + if (pProps) + { + const OUString sFormula ( RTL_CONSTASCII_USTRINGPARAM ( "Formula" ) ); + const OUString sBasicLibraries ( RTL_CONSTASCII_USTRINGPARAM ( "BasicLibraries" ) ); + const OUString sDialogLibraries ( RTL_CONSTASCII_USTRINGPARAM ( "DialogLibraries" ) ); + const OUString sRuntimeUID ( RTL_CONSTASCII_USTRINGPARAM ( "RuntimeUID" ) ); + for (sal_Int32 i = 0; i < nCount; i++, pProps++) + { + const OUString &rPropName = aProps[i].Name; + if (rPropName != sFormula && + rPropName != sBasicLibraries && + rPropName != sDialogLibraries && + rPropName != sRuntimeUID) + { + pProps->Name = rPropName; + pProps->Value = xProps->getPropertyValue(rPropName); + } + } + } + } + } + } +} + +void SmXMLExport::ExportLine(const SmNode *pNode, int nLevel) +{ + ExportExpression(pNode, nLevel); +} + +void SmXMLExport::ExportBinaryHorizontal(const SmNode *pNode, int nLevel) +{ + ExportExpression(pNode, nLevel); +} + +void SmXMLExport::ExportUnaryHorizontal(const SmNode *pNode, int nLevel) +{ + ExportExpression(pNode, nLevel); +} + +void SmXMLExport::ExportExpression(const SmNode *pNode, int nLevel) +{ + SvXMLElementExport *pRow=0; + ULONG nSize = pNode->GetNumSubNodes(); + + if (nSize > 1) + pRow = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MROW, sal_True, sal_True); + + //if (nSize) + //{ + for (USHORT i = 0; i < nSize; i++) + if (const SmNode *pTemp = pNode->GetSubNode(i)) + ExportNodes(pTemp, nLevel+1); + //} +#if 0 + else + { + //This saves us from situations like "a newline" where the + //lack of a term following the newline would otherwise create + //a incorrect token like <mtr/> + SvXMLElementExport aDummy(*this, XML_NAMESPACE_MATH, XML_MI, sal_True, sal_False); + sal_Unicode nArse[2] = {'\n','\0'}; + GetDocHandler()->characters(nArse); + } +#endif + + delete pRow; +} + +void SmXMLExport::ExportBinaryVertical(const SmNode *pNode, int nLevel) +{ + DBG_ASSERT(pNode->GetNumSubNodes()==3,"Bad Fraction"); + SvXMLElementExport aFraction(*this, XML_NAMESPACE_MATH, XML_MFRAC, sal_True, sal_True); + ExportNodes(pNode->GetSubNode(0), nLevel); + ExportNodes(pNode->GetSubNode(2), nLevel); +} + +void SmXMLExport::ExportTable(const SmNode *pNode, int nLevel) +{ + SvXMLElementExport *pTable=0; + + USHORT nSize = pNode->GetNumSubNodes(); + + //If the list ends in newline then the last entry has + //no subnodes, the newline is superfulous so we just drop + //the last node, inclusion would create a bad MathML + //table + if (nSize >= 1 && pNode->GetSubNode(nSize-1)->GetNumSubNodes() == 0) + --nSize; + + // try to avoid creating a mtable element when the formula consists only + // of a single output line + if (nLevel || (nSize >1)) + pTable = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MTABLE, sal_True, sal_True); + + for (USHORT i = 0; i < nSize; i++) + if (const SmNode *pTemp = pNode->GetSubNode(i)) + { + SvXMLElementExport *pRow=0; + SvXMLElementExport *pCell=0; + if (pTable) + { + pRow = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MTR, sal_True, sal_True); + pCell = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MTD, sal_True, sal_True); + } + ExportNodes(pTemp, nLevel+1); + delete pCell; + delete pRow; + } + + delete pTable; +} + +void SmXMLExport::ExportMath(const SmNode *pNode, int /*nLevel*/) +{ + const SmMathSymbolNode *pTemp = static_cast<const SmMathSymbolNode *>(pNode); + SvXMLElementExport aMath(*this, XML_NAMESPACE_MATH, XML_MO, sal_True, sal_False); + sal_Unicode nArse[2]; + nArse[0] = pTemp->GetText().GetChar(0); + sal_Unicode cTmp = ConvertMathToMathML( nArse[0] ); + if (cTmp != 0) + nArse[0] = cTmp; + DBG_ASSERT(nArse[0] != 0xffff,"Non existant symbol"); + nArse[1] = 0; + GetDocHandler()->characters(nArse); +} + +void SmXMLExport::ExportText(const SmNode *pNode, int /*nLevel*/) +{ + SvXMLElementExport *pText; + const SmTextNode *pTemp = static_cast<const SmTextNode *>(pNode); + switch (pNode->GetToken().eType) + { + default: + case TIDENT: + { + //Note that we change the fontstyle to italic for strings that + //are italic and longer than a single character. + sal_Bool bIsItalic = IsItalic( pTemp->GetFont() ); + if ((pTemp->GetText().Len() > 1) && bIsItalic) + AddAttribute(XML_NAMESPACE_MATH, XML_MATHVARIANT, XML_ITALIC); + else if ((pTemp->GetText().Len() == 1) && !bIsItalic) + AddAttribute(XML_NAMESPACE_MATH, XML_MATHVARIANT, XML_NORMAL); + pText = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MI,sal_True,sal_False); + break; + } + case TNUMBER: + pText = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MN,sal_True,sal_False); + break; + case TTEXT: + pText = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MTEXT,sal_True,sal_False); + break; + } + GetDocHandler()->characters(OUString(pTemp->GetText().GetBuffer())); + delete pText; +} + +void SmXMLExport::ExportBlank(const SmNode * /*pNode*/, int /*nLevel*/) +{ + //!! exports an empty <mi> tag since for example "~_~" is allowed in + //!! Math (so it has no sense at all) but must not result in an empty + //!! <msub> tag in MathML !! + + SvXMLElementExport *pText; + //const SmBlankNode *pTemp = static_cast<const SmBlankNode *>(pNode); + + pText = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MI, sal_True, sal_False); + + GetDocHandler()->characters( OUString() ); + delete pText; +} + +void SmXMLExport::ExportSubSupScript(const SmNode *pNode, int nLevel) +{ + const SmNode *pSub = 0; + const SmNode *pSup = 0; + const SmNode *pCSub = 0; + const SmNode *pCSup = 0; + const SmNode *pLSub = 0; + const SmNode *pLSup = 0; + SvXMLElementExport *pThing = 0, *pThing2 = 0; + + //if we have prescripts at all then we must use the tensor notation + + //This is one of those excellent locations where scope is vital to + //arrange the construction and destruction of the element helper + //classes correctly + pLSub = pNode->GetSubNode(LSUB+1); + pLSup = pNode->GetSubNode(LSUP+1); + if (pLSub || pLSup) + { + SvXMLElementExport aMultiScripts(*this, XML_NAMESPACE_MATH, + XML_MMULTISCRIPTS, sal_True, sal_True); + + + if (NULL != (pCSub = pNode->GetSubNode(CSUB+1)) + && NULL != (pCSup = pNode->GetSubNode(CSUP+1))) + { + pThing2 = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, + XML_MUNDEROVER, sal_True,sal_True); + } + else if (NULL != (pCSub = pNode->GetSubNode(CSUB+1))) + { + pThing2 = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, + XML_MUNDER, sal_True,sal_True); + } + else if (NULL != (pCSup = pNode->GetSubNode(CSUP+1))) + { + pThing2 = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, + XML_MOVER, sal_True,sal_True); + } + + ExportNodes(pNode->GetSubNode(0), nLevel+1); //Main Term + + if (pCSub) + ExportNodes(pCSub, nLevel+1); + if (pCSup) + ExportNodes(pCSup, nLevel+1); + delete pThing2; + + pSub = pNode->GetSubNode(RSUB+1); + pSup = pNode->GetSubNode(RSUP+1); + if (pSub || pSup) + { + if (pSub) + ExportNodes(pSub, nLevel+1); + else + { + SvXMLElementExport aNone(*this, XML_NAMESPACE_MATH, XML_NONE,sal_True,sal_True); + } + if (pSup) + ExportNodes(pSup, nLevel+1); + else + { + SvXMLElementExport aNone(*this, XML_NAMESPACE_MATH, XML_NONE,sal_True,sal_True); + } + } + + //Seperator element between suffix and prefix sub/sup pairs + { + SvXMLElementExport aPrescripts(*this, XML_NAMESPACE_MATH, + XML_MPRESCRIPTS, sal_True,sal_True); + } + + if (pLSub) + ExportNodes(pLSub, nLevel+1); + else + { + SvXMLElementExport aNone(*this, XML_NAMESPACE_MATH, XML_NONE, + sal_True,sal_True); + + } + if (pLSup) + ExportNodes(pLSup, nLevel+1); + else + { + SvXMLElementExport aNone(*this, XML_NAMESPACE_MATH, XML_NONE, + sal_True,sal_True); + + } + } + else + { + if (NULL != (pSub = pNode->GetSubNode(RSUB+1)) && + NULL != (pSup = pNode->GetSubNode(RSUP+1))) + { + pThing = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, + XML_MSUBSUP, sal_True,sal_True); + } + else if (NULL != (pSub = pNode->GetSubNode(RSUB+1))) + { + pThing = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MSUB, + sal_True,sal_True); + } + else if (NULL != (pSup = pNode->GetSubNode(RSUP+1))) + { + pThing = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MSUP, + sal_True,sal_True); + } + + if (NULL != (pCSub = pNode->GetSubNode(CSUB+1)) + && NULL != (pCSup=pNode->GetSubNode(CSUP+1))) + { + pThing2 = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, + XML_MUNDEROVER, sal_True,sal_True); + } + else if (NULL != (pCSub = pNode->GetSubNode(CSUB+1))) + { + pThing2 = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, + XML_MUNDER, sal_True,sal_True); + } + else if (NULL != (pCSup = pNode->GetSubNode(CSUP+1))) + { + pThing2 = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, + XML_MOVER, sal_True,sal_True); + } + ExportNodes(pNode->GetSubNode(0), nLevel+1); //Main Term + + if (pCSub) + ExportNodes(pCSub, nLevel+1); + if (pCSup) + ExportNodes(pCSup, nLevel+1); + delete pThing2; + + if (pSub) + ExportNodes(pSub, nLevel+1); + if (pSup) + ExportNodes(pSup, nLevel+1); + delete pThing; + } +} + +void SmXMLExport::ExportBrace(const SmNode *pNode, int nLevel) +{ + const SmNode *pTemp; + const SmNode *pLeft=pNode->GetSubNode(0); + const SmNode *pRight=pNode->GetSubNode(2); + SvXMLElementExport *pFences=0,*pRow=0; + if ( ((pLeft) && (pLeft->GetToken().eType != TNONE)) && + ((pRight) && (pRight->GetToken().eType != TNONE)) && + (pNode->GetScaleMode() == SCALE_HEIGHT)) + { + sal_Unicode nArse[2]; + nArse[1] = 0; + nArse[0] = static_cast< + const SmMathSymbolNode* >(pLeft)->GetText().GetChar(0); + DBG_ASSERT(nArse[0] != 0xffff,"Non existant symbol"); + AddAttribute(XML_NAMESPACE_MATH, XML_OPEN,nArse); + nArse[0] = static_cast< + const SmMathSymbolNode* >(pRight)->GetText().GetChar(0); + DBG_ASSERT(nArse[0] != 0xffff,"Non existant symbol"); + AddAttribute(XML_NAMESPACE_MATH, XML_CLOSE,nArse); + pFences = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MFENCED, + sal_True,sal_True); + } + else if (pLeft && (pLeft->GetToken().eType != TNONE)) + { + pRow = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MROW, + sal_True, sal_True); + if (pNode->GetScaleMode() == SCALE_HEIGHT) + AddAttribute(XML_NAMESPACE_MATH, XML_STRETCHY, XML_TRUE); + else + AddAttribute(XML_NAMESPACE_MATH, XML_STRETCHY, XML_FALSE); + ExportNodes(pLeft, nLevel+1); + } + else + pRow = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MROW, + sal_True, sal_True); + + if (NULL != (pTemp = pNode->GetSubNode(1))) + ExportNodes(pTemp, nLevel+1); + if (pFences) + delete pFences; + else if (pRight && (pRight->GetToken().eType != TNONE)) + { + if (pNode->GetScaleMode() == SCALE_HEIGHT) + AddAttribute(XML_NAMESPACE_MATH, XML_STRETCHY, XML_TRUE); + else + AddAttribute(XML_NAMESPACE_MATH, XML_STRETCHY, XML_FALSE); + ExportNodes(pRight, nLevel+1); + } + delete pRow; +} + +void SmXMLExport::ExportRoot(const SmNode *pNode, int nLevel) +{ + if (pNode->GetSubNode(0)) + { + SvXMLElementExport aRoot(*this, XML_NAMESPACE_MATH, XML_MROOT,sal_True, + sal_True); + ExportNodes(pNode->GetSubNode(2), nLevel+1); + ExportNodes(pNode->GetSubNode(0), nLevel+1); + } + else + { + SvXMLElementExport aSqrt(*this, XML_NAMESPACE_MATH, XML_MSQRT,sal_True, + sal_True); + ExportNodes(pNode->GetSubNode(2), nLevel+1); + } +} + +void SmXMLExport::ExportOperator(const SmNode *pNode, int nLevel) +{ + /*we need to either use content or font and size attributes + *here*/ +#if 0 + { + SvXMLElementExport aMath(*this, XML_NAMESPACE_MATH, XML_MO, + sal_True,sal_False); + SmTextNode *pTemp = (SmTextNode *)pNode->GetSubNode(0); + GetDocHandler()->characters(pTemp->GetText()); + } +#endif + SvXMLElementExport aRow(*this, XML_NAMESPACE_MATH, XML_MROW, + sal_True, sal_True); + ExportNodes(pNode->GetSubNode(0), nLevel+1); + ExportNodes(pNode->GetSubNode(1), nLevel+1); +} + +void SmXMLExport::ExportAttributes(const SmNode *pNode, int nLevel) +{ + SvXMLElementExport *pElement=0; + + if (pNode->GetToken().eType == TUNDERLINE) + { + AddAttribute(XML_NAMESPACE_MATH, XML_ACCENTUNDER, + XML_TRUE); + pElement = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MUNDER, + sal_True,sal_True); + } + else if (pNode->GetToken().eType != TOVERSTRIKE) + { + AddAttribute(XML_NAMESPACE_MATH, XML_ACCENT, + XML_TRUE); + pElement = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, XML_MOVER, + sal_True,sal_True); + } + + ExportNodes(pNode->GetSubNode(1), nLevel+1); + switch (pNode->GetToken().eType) + { + case TOVERLINE: + { + //proper entity support required + SvXMLElementExport aMath(*this, XML_NAMESPACE_MATH, XML_MO, + sal_True,sal_True); +#if 0 + GetDocHandler()->characters( + OUString(RTL_CONSTASCII_USTRINGPARAM("&overbar;"))); +#else + sal_Unicode nArse[2] = {0xAF,0x00}; +#endif + GetDocHandler()->characters(nArse); + } + break; + case TUNDERLINE: + { + //proper entity support required + SvXMLElementExport aMath(*this, XML_NAMESPACE_MATH, XML_MO, + sal_True,sal_True); +#if 0 + GetDocHandler()->characters( + OUString(RTL_CONSTASCII_USTRINGPARAM("&underbar;"))); +#else + sal_Unicode nArse[2] = {0x0332,0x00}; +#endif + GetDocHandler()->characters(nArse); + } + break; + case TOVERSTRIKE: + break; + default: + ExportNodes(pNode->GetSubNode(0), nLevel+1); + break; + } + delete pElement; +} + +static bool lcl_HasEffectOnMathvariant( const SmTokenType eType ) +{ + return eType == TBOLD || eType == TNBOLD || + eType == TITALIC || eType == TNBOLD || + eType == TSANS || eType == TSERIF || eType == TFIXED; +} + +void SmXMLExport::ExportFont(const SmNode *pNode, int nLevel) +{ + SvXMLElementExport *pElement = 0; + + // + // gather the mathvariant attribut relevant data from all + // successively following SmFontNodes... + // + int nBold = -1; // for the following variables: -1 = yet undefined; 0 = false; 1 = true; + int nItalic = -1; // for the following variables: -1 = yet undefined; 0 = false; 1 = true; + int nSansSerifFixed = -1; + SmTokenType eNodeType = TUNKNOWN; + while (lcl_HasEffectOnMathvariant( (eNodeType = pNode->GetToken().eType) )) + { + switch (eNodeType) + { + case TBOLD : nBold = 1; break; + case TNBOLD : nBold = 0; break; + case TITALIC : nItalic = 1; break; + case TNITALIC : nItalic = 0; break; + case TSANS : nSansSerifFixed = 0; break; + case TSERIF : nSansSerifFixed = 1; break; + case TFIXED : nSansSerifFixed = 2; break; + default: + DBG_ASSERT( 0, "unexpected case" ); + } + // According to the parser every node that is to be evaluated heres + // has a single non-zero subnode at index 1!! Thus we only need to check + // that single node for follow-up nodes that have an effect on the attribute. + if (pNode->GetNumSubNodes() > 1 && pNode->GetSubNode(1) && + lcl_HasEffectOnMathvariant( pNode->GetSubNode(1)->GetToken().eType)) + { + pNode = pNode->GetSubNode(1); + } + else + break; + } + + switch (pNode->GetToken().eType) + { + //wrap a phantom element around everything*/ + case TPHANTOM: + pElement = new SvXMLElementExport(*this, XML_NAMESPACE_MATH, + XML_MPHANTOM, sal_True,sal_True); + break; + case TBLACK: + AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_BLACK); + break; + case TWHITE: + AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_WHITE); + break; + case TRED: + AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_RED); + break; + case TGREEN: + AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_GREEN); + break; + case TBLUE: + AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_BLUE); + break; + case TCYAN: + AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_AQUA); + break; + case TMAGENTA: + AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_FUCHSIA); + break; + case TYELLOW: + AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_YELLOW); + break; + case TSIZE: + { + const SmFontNode *pFontNode = static_cast<const SmFontNode *>(pNode); + const Fraction &aFrac = pFontNode->GetSizeParameter(); + + OUStringBuffer sStrBuf; + switch(pFontNode->GetSizeType()) + { + case FNTSIZ_MULTIPLY: + SvXMLUnitConverter::convertDouble(sStrBuf, + static_cast<double>(aFrac*Fraction(100.00))); + sStrBuf.append(static_cast<sal_Unicode>('%')); + break; + case FNTSIZ_DIVIDE: + SvXMLUnitConverter::convertDouble(sStrBuf, + static_cast<double>(Fraction(100.00)/aFrac)); + sStrBuf.append(static_cast<sal_Unicode>('%')); + break; + case FNTSIZ_ABSOLUT: + SvXMLUnitConverter::convertDouble(sStrBuf, + static_cast<double>(aFrac)); + sStrBuf.append( + GetXMLToken(XML_UNIT_PT)); + break; + default: + { + //The problem here is that the wheels fall off because + //font size is stored in 100th's of a mm not pts, and + //rounding errors take their toll on the original + //value specified in points. + + //Must fix StarMath to retain the original pt values + Fraction aTemp = Sm100th_mmToPts(pFontNode->GetFont(). + GetSize().Height()); + + if (pFontNode->GetSizeType() == FNTSIZ_MINUS) + aTemp-=aFrac; + else + aTemp+=aFrac; + + double mytest = static_cast<double>(aTemp); + + mytest = ::rtl::math::round(mytest,1); + SvXMLUnitConverter::convertDouble(sStrBuf,mytest); + sStrBuf.append(GetXMLToken(XML_UNIT_PT)); + } + break; + } + + OUString sStr(sStrBuf.makeStringAndClear()); + AddAttribute(XML_NAMESPACE_MATH, XML_MATHSIZE, sStr); + } + break; + case TBOLD: + case TITALIC: + case TNBOLD: + case TNITALIC: + case TFIXED: + case TSANS: + case TSERIF: + { + // nBold: -1 = yet undefined; 0 = false; 1 = true; + // nItalic: -1 = yet undefined; 0 = false; 1 = true; + // nSansSerifFixed: -1 = undefined; 0 = sans; 1 = serif; 2 = fixed; + const sal_Char *pText = "normal"; + if (nSansSerifFixed == -1 || nSansSerifFixed == 1) + { + pText = "normal"; + if (nBold == 1 && nItalic != 1) + pText = "bold"; + else if (nBold != 1 && nItalic == 1) + pText = "italic"; + else if (nBold == 1 && nItalic == 1) + pText = "bold-italic"; + } + else if (nSansSerifFixed == 0) + { + pText = "sans-serif"; + if (nBold == 1 && nItalic != 1) + pText = "bold-sans-serif"; + else if (nBold != 1 && nItalic == 1) + pText = "sans-serif-italic"; + else if (nBold == 1 && nItalic == 1) + pText = "sans-serif-bold-italic"; + } + else if (nSansSerifFixed == 2) + pText = "monospace"; // no modifiers allowed for monospace ... + else + { + DBG_ASSERT( 0, "unexpected case" ); + } + AddAttribute(XML_NAMESPACE_MATH, XML_MATHVARIANT, A2OU(pText)); + } + break; + default: + break; + + } +#if 0 + if (pNode->GetNumSubNodes() > 1) //or in the future is a node that + //cannot take the currently supported + //properties +#endif + //for now we will just always export with a style and not worry about + //anyone else for the moment. + { + //wrap a style around it + SvXMLElementExport aStyle(*this, XML_NAMESPACE_MATH, XML_MSTYLE, sal_True,sal_True); + ExportExpression(pNode, nLevel); + } +#if 0 + else + ExportNodes(pNode->GetSubNode(0), nLevel+1); +#endif + + delete pElement; +} + + +void SmXMLExport::ExportVerticalBrace(const SmNode *pNode, int nLevel) +{ + //Place the overbrace value OVER a vertical brace and then place that + //expression OVER the overbrace value, If someone can find a + //dedicated term in MathML to handle this overbrace/underbrace concept + //let me know. C. + XMLTokenEnum which; + + switch (pNode->GetToken().eType) + { + case TOVERBRACE: + default: + which = XML_MOVER; + break; + case TUNDERBRACE: + which = XML_MUNDER; + break; + } + + DBG_ASSERT(pNode->GetNumSubNodes()==3,"Bad Vertical Brace"); + SvXMLElementExport aOver1(*this, XML_NAMESPACE_MATH,which, sal_True, sal_True); + {//Scoping + // using accents will draw the over-/underbraces too close to the base + // see http://www.w3.org/TR/MathML2/chapter3.html#id.3.4.5.2 + // also XML_ACCENT is illegal with XML_MUNDER. Thus no XML_ACCENT attribut here! +// AddAttribute(XML_NAMESPACE_MATH, XML_ACCENT, XML_TRUE); + SvXMLElementExport aOver2(*this, XML_NAMESPACE_MATH,which, sal_True, sal_True); + ExportNodes(pNode->GetSubNode(0), nLevel); + ExportNodes(pNode->GetSubNode(1), nLevel); + } + ExportNodes(pNode->GetSubNode(2), nLevel); +} + +void SmXMLExport::ExportMatrix(const SmNode *pNode, int nLevel) +{ + SvXMLElementExport aTable(*this, XML_NAMESPACE_MATH, XML_MTABLE, sal_True, sal_True); + const SmMatrixNode *pMatrix = static_cast<const SmMatrixNode *>(pNode); + USHORT i=0; + for (ULONG y = 0; y < pMatrix->GetNumRows(); y++) + { + SvXMLElementExport aRow(*this, XML_NAMESPACE_MATH, XML_MTR, sal_True, sal_True); + for (ULONG x = 0; x < pMatrix->GetNumCols(); x++) + if (const SmNode *pTemp = pNode->GetSubNode(i++)) + { + SvXMLElementExport aCell(*this, XML_NAMESPACE_MATH, XML_MTD, sal_True, sal_True); + ExportNodes(pTemp, nLevel+1); + } + } +} + +void SmXMLExport::ExportNodes(const SmNode *pNode, int nLevel) +{ + if (!pNode) + return; + switch(pNode->GetType()) + { + case NTABLE: + ExportTable(pNode, nLevel); + break; + case NALIGN: + case NBRACEBODY: + case NEXPRESSION: + ExportExpression(pNode, nLevel); + break; + case NLINE: + ExportLine(pNode, nLevel); + break; + case NTEXT: + ExportText(pNode, nLevel); + break; + case NSPECIAL: //NSPECIAL requires some sort of Entity preservation in the XML engine. + case NGLYPH_SPECIAL: + case NMATH: + { + sal_Unicode cTmp = 0; + const SmTextNode *pTemp = static_cast< const SmTextNode * >(pNode); + if (pTemp->GetText().Len() > 0) + cTmp = ConvertMathToMathML( pTemp->GetText().GetChar(0) ); + if (cTmp == 0) + { + // no conversion to MathML implemented -> export it as text + // thus at least it will not vanish into nothing + ExportText(pNode, nLevel); + } + else + { + //To fully handle generic MathML we need to implement the full + //operator dictionary, we will generate MathML with explicit + //stretchiness for now. + sal_Int16 nLength = GetAttrList().getLength(); + sal_Bool bAddStretch=sal_True; + for ( sal_Int16 i = 0; i < nLength; i++ ) + { + OUString sLocalName; + sal_uInt16 nPrefix = GetNamespaceMap().GetKeyByAttrName( + GetAttrList().getNameByIndex(i), &sLocalName ); + + if ( ( XML_NAMESPACE_MATH == nPrefix ) && + IsXMLToken(sLocalName, XML_STRETCHY) ) + { + bAddStretch = sal_False; + break; + } + } + if (bAddStretch) + { + AddAttribute(XML_NAMESPACE_MATH, XML_STRETCHY, XML_FALSE); + } + ExportMath(pNode, nLevel); + } + } + break; + case NPLACE: + ExportMath(pNode, nLevel); + break; + case NBINHOR: + ExportBinaryHorizontal(pNode, nLevel); + break; + case NUNHOR: + ExportUnaryHorizontal(pNode, nLevel); + break; + case NBRACE: + ExportBrace(pNode, nLevel); + break; + case NBINVER: + ExportBinaryVertical(pNode, nLevel); + break; + case NSUBSUP: + ExportSubSupScript(pNode, nLevel); + break; + case NROOT: + ExportRoot(pNode, nLevel); + break; + case NOPER: + ExportOperator(pNode, nLevel); + break; + case NATTRIBUT: + ExportAttributes(pNode, nLevel); + break; + case NFONT: + ExportFont(pNode, nLevel); + break; + case NVERTICAL_BRACE: + ExportVerticalBrace(pNode, nLevel); + break; + case NMATRIX: + ExportMatrix(pNode, nLevel); + break; + case NBLANK: + ExportBlank(pNode, nLevel); + break; + default: + DBG_ASSERT( 0, "Warning: failed to export a node?" ); + break; + +#if 0 + default: + { + ULONG nSize = pNode->GetNumSubNodes(); + for (ULONG i = 0; i < nSize; i++) + if (SmNode *pTemp = pNode->GetSubNode(i)) + ExportNodes(pTemp, nLevel+1); + } + break; +#endif + } +} + +//////////////////////////////////////////////////////////// + diff --git a/starmath/source/mathmlexport.hxx b/starmath/source/mathmlexport.hxx index fa76076e66..36a30e308d 100644 --- a/starmath/source/mathmlexport.hxx +++ b/starmath/source/mathmlexport.hxx @@ -1,146 +1,143 @@ -/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: x $
- * $Revision: 1.00 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _MATHMLEXPORT_HXX_
-#define _MATHMLEXPORT_HXX_
-
-#include <xmloff/xmlimp.hxx>
-#include <xmloff/xmlexp.hxx>
-#include <xmloff/DocumentSettingsContext.hxx>
-#include <xmloff/xmltoken.hxx>
-
-#include <node.hxx>
-
-class SfxMedium;
-namespace com { namespace sun { namespace star {
- namespace io {
- class XInputStream;
- class XOutputStream; }
- namespace beans {
- class XPropertySet; }
-} } }
-
-
-////////////////////////////////////////////////////////////
-
-class SmXMLExportWrapper
-{
- com::sun::star::uno::Reference<com::sun::star::frame::XModel> xModel;
- sal_Bool bFlat; //set true for export to flat .mml, set false for
- //export to a .sxm (or whatever) package
-public:
- SmXMLExportWrapper(com::sun::star::uno::Reference<com::sun::star::frame::XModel> &rRef)
- : xModel(rRef), bFlat(sal_True) {}
-
- sal_Bool Export(SfxMedium &rMedium);
- void SetFlat(sal_Bool bIn) {bFlat = bIn;}
-
- sal_Bool WriteThroughComponent(
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream >
- xOutputStream,
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >
- xComponent,
- ::com::sun::star::uno::Reference<
- ::com::sun::star::lang::XMultiServiceFactory > & rFactory,
- ::com::sun::star::uno::Reference<
- ::com::sun::star::beans::XPropertySet > & rPropSet,
- const sal_Char* pComponentName );
-
- sal_Bool WriteThroughComponent(
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStor,
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >
- xComponent,
- const sal_Char* pStreamName,
- ::com::sun::star::uno::Reference<
- ::com::sun::star::lang::XMultiServiceFactory > & rFactory,
- ::com::sun::star::uno::Reference<
- ::com::sun::star::beans::XPropertySet > & rPropSet,
- const sal_Char* pComponentName,
- sal_Bool bCompress=sal_True );
-};
-
-////////////////////////////////////////////////////////////
-
-class SmXMLExport : public SvXMLExport
-{
- const SmNode * pTree;
- String aText;
- sal_Bool bSuccess;
-
-protected:
- void ExportNodes(const SmNode *pNode, int nLevel);
- void ExportTable(const SmNode *pNode, int nLevel);
- void ExportLine(const SmNode *pNode, int nLevel);
- void ExportExpression(const SmNode *pNode, int nLevel);
- void ExportText(const SmNode *pNode, int nLevel);
- void ExportMath(const SmNode *pNode, int nLevel);
- void ExportPolygon(const SmNode *pNode, int nLevel);
- void ExportBinaryHorizontal(const SmNode *pNode, int nLevel);
- void ExportUnaryHorizontal(const SmNode *pNode, int nLevel);
- void ExportBrace(const SmNode *pNode, int nLevel);
- void ExportBinaryVertical(const SmNode *pNode, int nLevel);
- void ExportSubSupScript(const SmNode *pNode, int nLevel);
- void ExportRoot(const SmNode *pNode, int nLevel);
- void ExportOperator(const SmNode *pNode, int nLevel);
- void ExportAttributes(const SmNode *pNode, int nLevel);
- void ExportFont(const SmNode *pNode, int nLevel);
- void ExportVerticalBrace(const SmNode *pNode, int nLevel);
- void ExportMatrix(const SmNode *pNode, int nLevel);
- void ExportBlank(const SmNode *pNode, int nLevel);
-
-public:
- // #110680#
- SmXMLExport(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory,
- sal_uInt16 nExportFlags=EXPORT_ALL);
- virtual ~SmXMLExport() {};
-
- // XServiceInfo (override parent method)
- ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
-
- // XUnoTunnel
- sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw(::com::sun::star::uno::RuntimeException);
- static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw();
-
- void _ExportAutoStyles() {}
- void _ExportMasterStyles() {}
- void _ExportContent();
- sal_uInt32 exportDoc(enum ::xmloff::token::XMLTokenEnum eClass);
-
- virtual void GetViewSettings(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aProps);
- virtual void GetConfigurationSettings(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aProps);
-
- sal_Bool GetSuccess() {return bSuccess;}
-};
-
-////////////////////////////////////////////////////////////
-
-#endif
-
+/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _MATHMLEXPORT_HXX_ +#define _MATHMLEXPORT_HXX_ + +#include <xmloff/xmlimp.hxx> +#include <xmloff/xmlexp.hxx> +#include <xmloff/DocumentSettingsContext.hxx> +#include <xmloff/xmltoken.hxx> + +#include <node.hxx> + +class SfxMedium; +namespace com { namespace sun { namespace star { + namespace io { + class XInputStream; + class XOutputStream; } + namespace beans { + class XPropertySet; } +} } } + + +//////////////////////////////////////////////////////////// + +class SmXMLExportWrapper +{ + com::sun::star::uno::Reference<com::sun::star::frame::XModel> xModel; + sal_Bool bFlat; //set true for export to flat .mml, set false for + //export to a .sxm (or whatever) package +public: + SmXMLExportWrapper(com::sun::star::uno::Reference<com::sun::star::frame::XModel> &rRef) + : xModel(rRef), bFlat(sal_True) {} + + sal_Bool Export(SfxMedium &rMedium); + void SetFlat(sal_Bool bIn) {bFlat = bIn;} + + sal_Bool WriteThroughComponent( + ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > + xOutputStream, + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > + xComponent, + ::com::sun::star::uno::Reference< + ::com::sun::star::lang::XMultiServiceFactory > & rFactory, + ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet > & rPropSet, + const sal_Char* pComponentName ); + + sal_Bool WriteThroughComponent( + const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStor, + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > + xComponent, + const sal_Char* pStreamName, + ::com::sun::star::uno::Reference< + ::com::sun::star::lang::XMultiServiceFactory > & rFactory, + ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet > & rPropSet, + const sal_Char* pComponentName, + sal_Bool bCompress=sal_True ); +}; + +//////////////////////////////////////////////////////////// + +class SmXMLExport : public SvXMLExport +{ + const SmNode * pTree; + String aText; + sal_Bool bSuccess; + +protected: + void ExportNodes(const SmNode *pNode, int nLevel); + void ExportTable(const SmNode *pNode, int nLevel); + void ExportLine(const SmNode *pNode, int nLevel); + void ExportExpression(const SmNode *pNode, int nLevel); + void ExportText(const SmNode *pNode, int nLevel); + void ExportMath(const SmNode *pNode, int nLevel); + void ExportPolygon(const SmNode *pNode, int nLevel); + void ExportBinaryHorizontal(const SmNode *pNode, int nLevel); + void ExportUnaryHorizontal(const SmNode *pNode, int nLevel); + void ExportBrace(const SmNode *pNode, int nLevel); + void ExportBinaryVertical(const SmNode *pNode, int nLevel); + void ExportSubSupScript(const SmNode *pNode, int nLevel); + void ExportRoot(const SmNode *pNode, int nLevel); + void ExportOperator(const SmNode *pNode, int nLevel); + void ExportAttributes(const SmNode *pNode, int nLevel); + void ExportFont(const SmNode *pNode, int nLevel); + void ExportVerticalBrace(const SmNode *pNode, int nLevel); + void ExportMatrix(const SmNode *pNode, int nLevel); + void ExportBlank(const SmNode *pNode, int nLevel); + +public: + // #110680# + SmXMLExport( + const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory, + sal_uInt16 nExportFlags=EXPORT_ALL); + virtual ~SmXMLExport() {}; + + // XServiceInfo (override parent method) + ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException ); + + // XUnoTunnel + sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw(::com::sun::star::uno::RuntimeException); + static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); + + void _ExportAutoStyles() {} + void _ExportMasterStyles() {} + void _ExportContent(); + sal_uInt32 exportDoc(enum ::xmloff::token::XMLTokenEnum eClass); + + virtual void GetViewSettings(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aProps); + virtual void GetConfigurationSettings(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aProps); + + sal_Bool GetSuccess() {return bSuccess;} +}; + +//////////////////////////////////////////////////////////// + +#endif + diff --git a/starmath/source/mathmlimport.cxx b/starmath/source/mathmlimport.cxx index 56b35a96c6..4f3e9adc17 100644 --- a/starmath/source/mathmlimport.cxx +++ b/starmath/source/mathmlimport.cxx @@ -1,14 +1,11 @@ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: x $ - * $Revision: 1.00 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/mathmlimport.hxx b/starmath/source/mathmlimport.hxx index ed46efa823..4272dc2be8 100644 --- a/starmath/source/mathmlimport.hxx +++ b/starmath/source/mathmlimport.hxx @@ -1,350 +1,347 @@ -/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: x $
- * $Revision: 1.00 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _MATHMLIMPORT_HXX_
-#define _MATHMLIMPORT_HXX_
-
-#include <xmloff/xmlimp.hxx>
-#include <xmloff/xmlexp.hxx>
-#include <xmloff/DocumentSettingsContext.hxx>
-#include <xmloff/xmltoken.hxx>
-
-#include <node.hxx>
-
-class SfxMedium;
-namespace com { namespace sun { namespace star {
- namespace io {
- class XInputStream;
- class XOutputStream; }
- namespace beans {
- class XPropertySet; }
-} } }
-
-////////////////////////////////////////////////////////////
-
-class SmXMLImportWrapper
-{
- com::sun::star::uno::Reference<com::sun::star::frame::XModel> xModel;
-
-public:
- SmXMLImportWrapper(com::sun::star::uno::Reference<com::sun::star::frame::XModel> &rRef)
- : xModel(rRef) {}
-
- ULONG Import(SfxMedium &rMedium);
-
- ULONG ReadThroughComponent(
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > xInputStream,
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > xModelComponent,
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rFactory,
- ::com::sun::star::uno::Reference<
- ::com::sun::star::beans::XPropertySet > & rPropSet,
- const sal_Char* pFilterName,
- sal_Bool bEncrypted );
-
- ULONG ReadThroughComponent(
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > xModelComponent,
- const sal_Char* pStreamName,
- const sal_Char* pCompatibilityStreamName,
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rFactory,
- ::com::sun::star::uno::Reference<
- ::com::sun::star::beans::XPropertySet > & rPropSet,
- const sal_Char* pFilterName );
-};
-
-////////////////////////////////////////////////////////////
-
-class SmXMLImport : public SvXMLImport
-{
- SvXMLTokenMap *pPresLayoutElemTokenMap;
- SvXMLTokenMap *pPresLayoutAttrTokenMap;
- SvXMLTokenMap *pFencedAttrTokenMap;
- SvXMLTokenMap *pOperatorAttrTokenMap;
- SvXMLTokenMap *pAnnotationAttrTokenMap;
- SvXMLTokenMap *pPresElemTokenMap;
- SvXMLTokenMap *pPresScriptEmptyElemTokenMap;
- SvXMLTokenMap *pPresTableElemTokenMap;
- SvXMLTokenMap *pColorTokenMap;
-
- SmNodeStack aNodeStack;
- sal_Bool bSuccess;
- String aText;
-
-public:
- // #110680#
- SmXMLImport(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory,
- sal_uInt16 nImportFlags=IMPORT_ALL);
- virtual ~SmXMLImport() throw ();
-
- // XServiceInfo (override parent method)
- ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
-
- // XUnoTunnel
- sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw(::com::sun::star::uno::RuntimeException);
- static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw();
-
- void SAL_CALL endDocument(void)
- throw( ::com::sun::star::xml::sax::SAXException,
- ::com::sun::star::uno::RuntimeException );
-
- SvXMLImportContext *CreateContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateMathContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateRowContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateFracContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateNumberContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateTextContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateAnnotationContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateStringContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateIdentifierContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateOperatorContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateSpaceContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateSqrtContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateRootContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateStyleContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreatePaddedContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreatePhantomContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateFencedContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateErrorContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateSubContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateSupContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateSubSupContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateUnderContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateOverContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateUnderOverContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateMultiScriptsContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateNoneContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreatePrescriptsContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateTableContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateTableRowContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateTableCellContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateAlignGroupContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
- SvXMLImportContext *CreateActionContext(sal_uInt16 nPrefix,
- const rtl::OUString &rLocalName,
- const com::sun::star::uno::Reference <
- com::sun::star::xml::sax::XAttributeList> &xAttrList);
-
- const SvXMLTokenMap &GetPresLayoutElemTokenMap();
- const SvXMLTokenMap &GetPresLayoutAttrTokenMap();
- const SvXMLTokenMap &GetFencedAttrTokenMap();
- const SvXMLTokenMap &GetOperatorAttrTokenMap();
- const SvXMLTokenMap &GetAnnotationAttrTokenMap();
- const SvXMLTokenMap &GetPresElemTokenMap();
- const SvXMLTokenMap &GetPresScriptEmptyElemTokenMap();
- const SvXMLTokenMap &GetPresTableElemTokenMap();
- const SvXMLTokenMap &GetColorTokenMap();
-
- SmNodeStack & GetNodeStack() {return aNodeStack;}
- SmNode *GetTree() { return aNodeStack.Pop();}
- sal_Bool GetSuccess() { return bSuccess; }
- String &GetText() { return aText;}
-
- virtual void SetViewSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aViewProps);
- virtual void SetConfigurationSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aViewProps);
-};
-
-////////////////////////////////////////////////////////////
-
-enum SmXMLMathElemTokenMap
-{
- XML_TOK_MATH
-};
-
-enum SmXMLPresLayoutElemTokenMap
-{
- XML_TOK_SEMANTICS,
- XML_TOK_MSTYLE,
- XML_TOK_MERROR,
- XML_TOK_MPHANTOM,
- XML_TOK_MROW,
- XML_TOK_MFRAC,
- XML_TOK_MSQRT,
- XML_TOK_MROOT,
- XML_TOK_MSUB,
- XML_TOK_MSUP,
- XML_TOK_MSUBSUP,
- XML_TOK_MMULTISCRIPTS,
- XML_TOK_MUNDER,
- XML_TOK_MOVER,
- XML_TOK_MUNDEROVER,
- XML_TOK_MTABLE,
- XML_TOK_MACTION,
- XML_TOK_MFENCED,
- XML_TOK_MPADDED
-};
-
-enum SmXMLPresLayoutAttrTokenMap
-{
- XML_TOK_FONTWEIGHT,
- XML_TOK_FONTSTYLE,
- XML_TOK_FONTSIZE,
- XML_TOK_FONTFAMILY,
- XML_TOK_COLOR
-};
-
-
-enum SmXMLFencedAttrTokenMap
-{
- XML_TOK_OPEN,
- XML_TOK_CLOSE
-};
-
-
-enum SmXMLPresTableElemTokenMap
-{
- XML_TOK_MTR,
- XML_TOK_MTD
-};
-
-enum SmXMLPresElemTokenMap
-{
- XML_TOK_ANNOTATION,
- XML_TOK_MI,
- XML_TOK_MN,
- XML_TOK_MO,
- XML_TOK_MTEXT,
- XML_TOK_MSPACE,
- XML_TOK_MS,
- XML_TOK_MALIGNGROUP
-};
-
-enum SmXMLPresScriptEmptyElemTokenMap
-{
- XML_TOK_MPRESCRIPTS,
- XML_TOK_NONE
-};
-
-enum SmXMLOperatorAttrTokenMap
-{
- XML_TOK_STRETCHY
-};
-
-enum SmXMLAnnotationAttrTokenMap
-{
- XML_TOK_ENCODING
-};
-
-////////////////////////////////////////////////////////////
-
-#endif
-
+/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _MATHMLIMPORT_HXX_ +#define _MATHMLIMPORT_HXX_ + +#include <xmloff/xmlimp.hxx> +#include <xmloff/xmlexp.hxx> +#include <xmloff/DocumentSettingsContext.hxx> +#include <xmloff/xmltoken.hxx> + +#include <node.hxx> + +class SfxMedium; +namespace com { namespace sun { namespace star { + namespace io { + class XInputStream; + class XOutputStream; } + namespace beans { + class XPropertySet; } +} } } + +//////////////////////////////////////////////////////////// + +class SmXMLImportWrapper +{ + com::sun::star::uno::Reference<com::sun::star::frame::XModel> xModel; + +public: + SmXMLImportWrapper(com::sun::star::uno::Reference<com::sun::star::frame::XModel> &rRef) + : xModel(rRef) {} + + ULONG Import(SfxMedium &rMedium); + + ULONG ReadThroughComponent( + ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > xInputStream, + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > xModelComponent, + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rFactory, + ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet > & rPropSet, + const sal_Char* pFilterName, + sal_Bool bEncrypted ); + + ULONG ReadThroughComponent( + const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > xModelComponent, + const sal_Char* pStreamName, + const sal_Char* pCompatibilityStreamName, + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rFactory, + ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet > & rPropSet, + const sal_Char* pFilterName ); +}; + +//////////////////////////////////////////////////////////// + +class SmXMLImport : public SvXMLImport +{ + SvXMLTokenMap *pPresLayoutElemTokenMap; + SvXMLTokenMap *pPresLayoutAttrTokenMap; + SvXMLTokenMap *pFencedAttrTokenMap; + SvXMLTokenMap *pOperatorAttrTokenMap; + SvXMLTokenMap *pAnnotationAttrTokenMap; + SvXMLTokenMap *pPresElemTokenMap; + SvXMLTokenMap *pPresScriptEmptyElemTokenMap; + SvXMLTokenMap *pPresTableElemTokenMap; + SvXMLTokenMap *pColorTokenMap; + + SmNodeStack aNodeStack; + sal_Bool bSuccess; + String aText; + +public: + // #110680# + SmXMLImport( + const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory, + sal_uInt16 nImportFlags=IMPORT_ALL); + virtual ~SmXMLImport() throw (); + + // XServiceInfo (override parent method) + ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException ); + + // XUnoTunnel + sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw(::com::sun::star::uno::RuntimeException); + static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); + + void SAL_CALL endDocument(void) + throw( ::com::sun::star::xml::sax::SAXException, + ::com::sun::star::uno::RuntimeException ); + + SvXMLImportContext *CreateContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateMathContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateRowContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateFracContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateNumberContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateTextContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateAnnotationContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateStringContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateIdentifierContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateOperatorContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateSpaceContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateSqrtContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateRootContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateStyleContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreatePaddedContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreatePhantomContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateFencedContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateErrorContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateSubContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateSupContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateSubSupContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateUnderContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateOverContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateUnderOverContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateMultiScriptsContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateNoneContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreatePrescriptsContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateTableContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateTableRowContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateTableCellContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateAlignGroupContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + SvXMLImportContext *CreateActionContext(sal_uInt16 nPrefix, + const rtl::OUString &rLocalName, + const com::sun::star::uno::Reference < + com::sun::star::xml::sax::XAttributeList> &xAttrList); + + const SvXMLTokenMap &GetPresLayoutElemTokenMap(); + const SvXMLTokenMap &GetPresLayoutAttrTokenMap(); + const SvXMLTokenMap &GetFencedAttrTokenMap(); + const SvXMLTokenMap &GetOperatorAttrTokenMap(); + const SvXMLTokenMap &GetAnnotationAttrTokenMap(); + const SvXMLTokenMap &GetPresElemTokenMap(); + const SvXMLTokenMap &GetPresScriptEmptyElemTokenMap(); + const SvXMLTokenMap &GetPresTableElemTokenMap(); + const SvXMLTokenMap &GetColorTokenMap(); + + SmNodeStack & GetNodeStack() {return aNodeStack;} + SmNode *GetTree() { return aNodeStack.Pop();} + sal_Bool GetSuccess() { return bSuccess; } + String &GetText() { return aText;} + + virtual void SetViewSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aViewProps); + virtual void SetConfigurationSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aViewProps); +}; + +//////////////////////////////////////////////////////////// + +enum SmXMLMathElemTokenMap +{ + XML_TOK_MATH +}; + +enum SmXMLPresLayoutElemTokenMap +{ + XML_TOK_SEMANTICS, + XML_TOK_MSTYLE, + XML_TOK_MERROR, + XML_TOK_MPHANTOM, + XML_TOK_MROW, + XML_TOK_MFRAC, + XML_TOK_MSQRT, + XML_TOK_MROOT, + XML_TOK_MSUB, + XML_TOK_MSUP, + XML_TOK_MSUBSUP, + XML_TOK_MMULTISCRIPTS, + XML_TOK_MUNDER, + XML_TOK_MOVER, + XML_TOK_MUNDEROVER, + XML_TOK_MTABLE, + XML_TOK_MACTION, + XML_TOK_MFENCED, + XML_TOK_MPADDED +}; + +enum SmXMLPresLayoutAttrTokenMap +{ + XML_TOK_FONTWEIGHT, + XML_TOK_FONTSTYLE, + XML_TOK_FONTSIZE, + XML_TOK_FONTFAMILY, + XML_TOK_COLOR +}; + + +enum SmXMLFencedAttrTokenMap +{ + XML_TOK_OPEN, + XML_TOK_CLOSE +}; + + +enum SmXMLPresTableElemTokenMap +{ + XML_TOK_MTR, + XML_TOK_MTD +}; + +enum SmXMLPresElemTokenMap +{ + XML_TOK_ANNOTATION, + XML_TOK_MI, + XML_TOK_MN, + XML_TOK_MO, + XML_TOK_MTEXT, + XML_TOK_MSPACE, + XML_TOK_MS, + XML_TOK_MALIGNGROUP +}; + +enum SmXMLPresScriptEmptyElemTokenMap +{ + XML_TOK_MPRESCRIPTS, + XML_TOK_NONE +}; + +enum SmXMLOperatorAttrTokenMap +{ + XML_TOK_STRETCHY +}; + +enum SmXMLAnnotationAttrTokenMap +{ + XML_TOK_ENCODING +}; + +//////////////////////////////////////////////////////////// + +#endif + diff --git a/starmath/source/mathtype.cxx b/starmath/source/mathtype.cxx index f2a3d0e1c7..1b15ae096a 100644 --- a/starmath/source/mathtype.cxx +++ b/starmath/source/mathtype.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: mathtype.cxx,v $ - * $Revision: 1.40 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/mathtype.hxx b/starmath/source/mathtype.hxx index 6a36b384bf..7e3b7e0844 100644 --- a/starmath/source/mathtype.hxx +++ b/starmath/source/mathtype.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: mathtype.hxx,v $ - * $Revision: 1.12 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/menu_tmpl.src b/starmath/source/menu_tmpl.src index 7be1b733c3..70348c73d0 100644 --- a/starmath/source/menu_tmpl.src +++ b/starmath/source/menu_tmpl.src @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: menu_tmpl.src,v $ - * $Revision: 1.4 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx index 1ed55a5514..16b3495a1f 100644 --- a/starmath/source/node.cxx +++ b/starmath/source/node.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: node.cxx,v $ - * $Revision: 1.42 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/parse.cxx b/starmath/source/parse.cxx index b48e7541aa..072ccb2038 100644 --- a/starmath/source/parse.cxx +++ b/starmath/source/parse.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: parse.cxx,v $ - * $Revision: 1.35 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -39,7 +36,7 @@ #include <com/sun/star/i18n/UnicodeType.hpp> #include <i18npool/lang.h> #include <unotools/charclass.hxx> -#include <svx/unolingu.hxx> +#include <editeng/unolingu.hxx> #include <unotools/syslocale.hxx> #include "parse.hxx" #ifndef _STARMATH_HRC diff --git a/starmath/source/rect.cxx b/starmath/source/rect.cxx index 789c3bcd05..9f753ec5fe 100644 --- a/starmath/source/rect.cxx +++ b/starmath/source/rect.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: rect.cxx,v $ - * $Revision: 1.21 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/register.cxx b/starmath/source/register.cxx index 3a5179ed2f..7e393fe606 100644 --- a/starmath/source/register.cxx +++ b/starmath/source/register.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: register.cxx,v $ - * $Revision: 1.14 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/smdetect.cxx b/starmath/source/smdetect.cxx index 0fcc3f61da..bc01b2d7c9 100644 --- a/starmath/source/smdetect.cxx +++ b/starmath/source/smdetect.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: smdetect.cxx,v $ - * $Revision: 1.11 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/smdetect.hxx b/starmath/source/smdetect.hxx index e297ea6e33..214b2c9122 100644 --- a/starmath/source/smdetect.hxx +++ b/starmath/source/smdetect.hxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: smdetect.hxx,v $ - * $Revision: 1.4 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/smdll.cxx b/starmath/source/smdll.cxx index 9b18a1cd7e..2b4b90499a 100644 --- a/starmath/source/smdll.cxx +++ b/starmath/source/smdll.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: smdll.cxx,v $ - * $Revision: 1.13 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/smmod.cxx b/starmath/source/smmod.cxx index bc6c0ba57d..aa1f2b36bb 100644 --- a/starmath/source/smmod.cxx +++ b/starmath/source/smmod.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: smmod.cxx,v $ - * $Revision: 1.22 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/smres.src b/starmath/source/smres.src index 841c5746b9..b14bcef63d 100644 --- a/starmath/source/smres.src +++ b/starmath/source/smres.src @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: smres.src,v $ - * $Revision: 1.118 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -114,14 +111,12 @@ ModalDialog RID_FONTSIZEDIALOG SVLook = TRUE ; HelpID = SID_FONTSIZE ; Size = MAP_APPFONT ( 171 , 120 ) ; - /* ### ACHTUNG: Neuer Text in Resource? Schriftgr��en : Schriftgr��en */ Text [ en-US ] = "Font Sizes" ; FixedText 1 { Left = TRUE ; Pos = MAP_APPFONT ( 12 , 7 ) ; Size = MAP_APPFONT ( 40 , 10 ) ; - /* ### ACHTUNG: Neuer Text in Resource? ~Basisgr��e: : ~Basisgr��e: */ Text [ en-US ] = "Base ~size"; }; MetricField 1 @@ -246,7 +241,6 @@ ModalDialog RID_FONTSIZEDIALOG { Pos = MAP_APPFONT ( 6 , 24 ) ; Size = MAP_APPFONT ( 99 , 8 ) ; - /* ### ACHTUNG: Neuer Text in Resource? relative Gr��en : relative Gr��en */ Text [ en-US ] = "Relative sizes" ; }; OKButton 1 @@ -433,7 +427,6 @@ ModalDialog RID_DISTANCEDIALOG SVLook = TRUE ; HelpID = SID_DISTANCE ; Size = MAP_APPFONT ( 240 , 90 ) ; - /* ### ACHTUNG: Neuer Text in Resource? Abst�nde : Abst�nde */ Text [ en-US ] = "Spacing" ; FixedText 1 { @@ -564,7 +557,6 @@ ModalDialog RID_DISTANCEDIALOG { String 1 { - /* ### ACHTUNG: Neuer Text in Resource? Abst�nde : Abst�nde */ Text [ en-US ] = "Spacing" ; }; String 2 @@ -639,12 +631,10 @@ ModalDialog RID_DISTANCEDIALOG { String 1 { - /* ### ACHTUNG: Neuer Text in Resource? Br�che : Br�che */ Text [ en-US ] = "Fractions" ; }; String 2 { - /* ### ACHTUNG: Neuer Text in Resource? ~Z�hlerh�he: : ~Z�hlerh�he: */ Text [ en-US ] = "~Numerator"; }; Bitmap 20 @@ -676,7 +666,6 @@ ModalDialog RID_DISTANCEDIALOG }; String 2 { - /* ### ACHTUNG: Neuer Text in Resource? ~�berl�nge: : ~�berl�nge: */ Text [ en-US ] = "~Excess length"; }; Bitmap 20 @@ -689,7 +678,6 @@ ModalDialog RID_DISTANCEDIALOG }; String 3 { - /* ### ACHTUNG: Neuer Text in Resource? ~Strichst�rke: : ~Strichst�rke: */ Text [ en-US ] = "~Weight"; }; Bitmap 30 @@ -709,7 +697,6 @@ ModalDialog RID_DISTANCEDIALOG }; String 2 { - /* ### ACHTUNG: Neuer Text in Resource? Grenz~h�he: : Grenz~h�he: */ Text [ en-US ] = "~Upper limit"; }; Bitmap 20 @@ -815,7 +802,6 @@ ModalDialog RID_DISTANCEDIALOG }; String 2 { - /* ### ACHTUNG: Neuer Text in Resource? ~Prim�rh�he: : ~Prim�rh�he: */ Text [ en-US ] = "~Primary height"; }; Bitmap 20 @@ -847,7 +833,6 @@ ModalDialog RID_DISTANCEDIALOG }; String 2 { - /* ### ACHTUNG: Neuer Text in Resource? ~�bergr��e: : ~�bergr��e: */ Text [ en-US ] = "~Excess size"; }; Bitmap 20 @@ -1127,7 +1112,6 @@ ModalDialog RID_SYMBOLDIALOG Pos = MAP_APPFONT ( 177 , 6 ) ; Size = MAP_APPFONT ( 56 , 14 ) ; DefButton = TRUE ; - /* ### ACHTUNG: Neuer Text in Resource? ~�bernehmen : ~�bernehmen */ Text [ en-US ] = "~Insert" ; }; PushButton 3 @@ -1365,14 +1349,13 @@ ModalDialog RID_SYMDEFINEDIALOG WarningBox RID_NOMATHTYPEFACEWARNING { - Message [ en-US ] = "The \"StarMath\" font has not been installed.\nWithout this font %PRODUCTNAME Math cannot function correctly.\nPlease install this font and restart %PRODUCTNAME Math." ; + Message [ en-US ] = "The 'StarMath' font has not been installed.\nWithout this font %PRODUCTNAME Math cannot function correctly.\nPlease install this font and restart %PRODUCTNAME Math." ; }; QueryBox RID_DEFAULTSAVEQUERY { Buttons = WB_YES_NO ; DefButton = WB_DEF_YES ; - /* ### ACHTUNG: Neuer Text in Resource? Sollen die �nderungen als Standard gespeichert werden ?\n\nDiese �nderungen wirken sich auf alle neuen Formeln aus. : Sollen die �nderungen als Standard gespeichert werden ?\n\nDiese �nderungen wirken sich auf alle neuen Formeln aus. */ Message [ en-US ] = "Should the changes be saved as defaults?\n\nThese changes will apply for all new formulas." ; }; @@ -1438,7 +1421,6 @@ Menu RID_VIEWMENU { Identifier = SID_ZOOMIN ; HelpID = SID_ZOOMIN ; - /* ### ACHTUNG: Neuer Text in Resource? Vergr��ern : Vergr��ern */ Text [ en-US ] = "~Zoom In" ; }; MenuItem @@ -1782,7 +1764,6 @@ FloatingWindow RID_TOOLBOXWINDOW { Identifier = RID_XLESLANTY ; HelpId = HID_SMA_XLESLANTY ; - /* ### ACHTUNG: Neuer Text in Resource? ist kleiner gleich (schr�g) : ist keiner gleich */ Text [ en-US ] = "Is Less Than Or Equal To" ; }; ToolBoxItem @@ -2051,7 +2032,6 @@ FloatingWindow RID_TOOLBOXWINDOW { Identifier = RID_EX ; HelpId = HID_SMA_EX ; - /* ### ACHTUNG: Neuer Text in Resource? Exponentialfunktion : nat�rliche Exponentialfunktion */ Text [ en-US ] = "Exponential Function" ; }; ToolBoxItem @@ -2734,7 +2714,6 @@ FloatingWindow RID_TOOLBOXWINDOW { Identifier = RID_ALIGNCX ; HelpId = HID_SMA_ALIGNCX ; - /* ### ACHTUNG: Neuer Text in Resource? zentriert ausrichten : zentriert (horizontal) ausrichten */ Text [ en-US ] = "Align Center" ; }; ToolBoxItem @@ -3456,13 +3435,11 @@ String RID_ERR_FUNCEXPECTED String RID_ERR_UNOPEREXPECTED { - /* ### ACHTUNG: Neuer Text in Resource? Un�rer Operator erwartet : Un�rer Operator erwartet */ Text [ en-US ] = "Unary operator expected" ; }; String RID_ERR_BINOPEREXPECTED { - /* ### ACHTUNG: Neuer Text in Resource? Bin�rer Operator erwartet : Bin�rer Operator erwartet */ Text [ en-US ] = "Binary operator expected" ; }; @@ -3526,9 +3503,7 @@ ToolBox RID_MATH_TOOLBOX { Identifier = SID_ZOOMIN ; HelpID = SID_ZOOMIN ; - /* ### ACHTUNG: Neuer Text in Resource? Gr��er : Gr��er */ Text [ en-US ] = "Zoom In" ; - /* ### ACHTUNG: Neuer Text in Resource? Stellt den Ausschnitt vergr��ert dar : Stellt den Ausschnitt vergr��ert dar */ }; ToolBoxItem { @@ -3541,7 +3516,6 @@ ToolBox RID_MATH_TOOLBOX Identifier = SID_VIEW100 ; HelpID = SID_VIEW100 ; Text [ en-US ] = "Zoom 100%" ; - /* ### ACHTUNG: Neuer Text in Resource? Stellt den Ausschnitt in tats�chlicher Gr��e dar : Stellt den Ausschnitt in tats�chlicher Gr��e dar */ }; ToolBoxItem { @@ -3570,7 +3544,6 @@ ToolBox RID_MATH_TOOLBOX Identifier = SID_SYMBOLS_CATALOGUE ; HelpID = SID_SYMBOLS_CATALOGUE ; Text [ en-US ] = "Symbols" ; - /* ### ACHTUNG: Neuer Text in Resource? Symbole einf�gen und bearbeiten : Symbole einf�gen und bearbeiten */ }; }; }; @@ -3589,7 +3562,7 @@ StringArray RID_PRINTUIOPTIONS < "~Title row"; >; < "Specifies whether you want the name of the document to be included in the printout"; >; < "~Formula text"; >; - < "Specifies whether to include the contents of the \"Commands\" window at the bottom of the printout."; >; + < "Specifies whether to include the contents of the 'Commands' window at the bottom of the printout."; >; < "B~orders"; >; < "Applies a thin border to the formula area in the printout."; >; < "Size"; >; diff --git a/starmath/source/symbol.cxx b/starmath/source/symbol.cxx index 1e2aeb781a..7ed0ff1c7c 100644 --- a/starmath/source/symbol.cxx +++ b/starmath/source/symbol.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: symbol.cxx,v $ - * $Revision: 1.31 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/symbol.src b/starmath/source/symbol.src index 2b9c112ca5..dbac415495 100644 --- a/starmath/source/symbol.src +++ b/starmath/source/symbol.src @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: symbol.src,v $ - * $Revision: 1.53 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/toolbox.cxx b/starmath/source/toolbox.cxx index 64be515246..d5995e10a7 100644 --- a/starmath/source/toolbox.cxx +++ b/starmath/source/toolbox.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: toolbox.cxx,v $ - * $Revision: 1.23 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/toolbox.hrc b/starmath/source/toolbox.hrc index 2dc2c6d2e1..9b15d99e20 100644 --- a/starmath/source/toolbox.hrc +++ b/starmath/source/toolbox.hrc @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: toolbox.hrc,v $ - * $Revision: 1.5 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/typemap.cxx b/starmath/source/typemap.cxx index a76a819f7d..bfea7318b3 100644 --- a/starmath/source/typemap.cxx +++ b/starmath/source/typemap.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: typemap.cxx,v $ - * $Revision: 1.5 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/types.cxx b/starmath/source/types.cxx index eb5b06920a..e190edb79e 100644 --- a/starmath/source/types.cxx +++ b/starmath/source/types.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: types.cxx,v $ - * $Revision: 1.6 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/unodoc.cxx b/starmath/source/unodoc.cxx index 9914695438..c857b44302 100644 --- a/starmath/source/unodoc.cxx +++ b/starmath/source/unodoc.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: unodoc.cxx,v $ - * $Revision: 1.8 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/unomodel.cxx b/starmath/source/unomodel.cxx index be3e274a5f..7a9a9434bb 100644 --- a/starmath/source/unomodel.cxx +++ b/starmath/source/unomodel.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: unomodel.cxx,v $ - * $Revision: 1.49 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -40,7 +37,7 @@ #include <svl/itemprop.hxx> #include <unotools/localedatawrapper.hxx> #include <unotools/processfactory.hxx> -#include <svx/paperinf.hxx> +#include <editeng/paperinf.hxx> #include <vcl/settings.hxx> #include <vcl/print.hxx> #include <toolkit/awt/vclxdevice.hxx> diff --git a/starmath/source/utility.cxx b/starmath/source/utility.cxx index fea4e39f61..520181e3c1 100644 --- a/starmath/source/utility.cxx +++ b/starmath/source/utility.cxx @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: utility.cxx,v $ - * $Revision: 1.20 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx index 5e7315e58b..d8d6c657b0 100644 --- a/starmath/source/view.cxx +++ b/starmath/source/view.cxx @@ -1,14 +1,11 @@ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: view.cxx,v $ - * $Revision: 1.53 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -61,7 +58,7 @@ #include <svl/undo.hxx> #include <svl/whiter.hxx> #include <svx/dialogs.hrc> -#include <svx/editeng.hxx> +#include <editeng/editeng.hxx> #include <svx/svxdlg.hxx> #include <svx/zoomitem.hxx> #include <vcl/decoview.hxx> diff --git a/starmath/util/hidother.src b/starmath/util/hidother.src index 7449cabf2b..5a87a5709e 100644 --- a/starmath/util/hidother.src +++ b/starmath/util/hidother.src @@ -2,13 +2,10 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2008 by Sun Microsystems, Inc. + * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * - * $RCSfile: hidother.src,v $ - * $Revision: 1.4 $ - * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify diff --git a/starmath/util/makefile.mk b/starmath/util/makefile.mk index 0e11dc46aa..09e7382994 100644 --- a/starmath/util/makefile.mk +++ b/starmath/util/makefile.mk @@ -2,14 +2,10 @@ # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # -# Copyright 2008 by Sun Microsystems, Inc. +# Copyright 2000, 2010 Oracle and/or its affiliates. # # OpenOffice.org - a multi-platform office productivity suite # -# $RCSfile: makefile.mk,v $ -# -# $Revision: 1.20 $ -# # This file is part of OpenOffice.org. # # OpenOffice.org is free software: you can redistribute it and/or modify @@ -57,6 +53,7 @@ SHL1DEF=$(MISC)$/$(SHL1TARGET).def DEF1NAME= $(SHL1TARGET) SHL1STDLIBS= \ + $(EDITENGLIB) \ $(SVXCORELIB) \ $(SVXLIB) \ $(SFX2LIB) \ |