merged tag ooo/DEV300_m102
[LibreOffice.git] / starmath / source / mathmlexport.hxx
blob361d97e054b0059e3ad304e02f8282018de0202e
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * This file is part of OpenOffice.org.
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org. If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
26 ************************************************************************/
28 #ifndef _MATHMLEXPORT_HXX_
29 #define _MATHMLEXPORT_HXX_
31 #include <xmloff/xmlimp.hxx>
32 #include <xmloff/xmlexp.hxx>
33 #include <xmloff/DocumentSettingsContext.hxx>
34 #include <xmloff/xmltoken.hxx>
36 #include <node.hxx>
38 class SfxMedium;
39 namespace com { namespace sun { namespace star {
40 namespace io {
41 class XInputStream;
42 class XOutputStream; }
43 namespace beans {
44 class XPropertySet; }
45 } } }
48 ////////////////////////////////////////////////////////////
50 class SmXMLExportWrapper
52 com::sun::star::uno::Reference<com::sun::star::frame::XModel> xModel;
53 sal_Bool bFlat; //set true for export to flat .mml, set false for
54 //export to a .sxm (or whatever) package
55 public:
56 SmXMLExportWrapper(com::sun::star::uno::Reference<com::sun::star::frame::XModel> &rRef)
57 : xModel(rRef), bFlat(sal_True) {}
59 sal_Bool Export(SfxMedium &rMedium);
60 void SetFlat(sal_Bool bIn) {bFlat = bIn;}
62 sal_Bool WriteThroughComponent(
63 ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream >
64 xOutputStream,
65 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >
66 xComponent,
67 ::com::sun::star::uno::Reference<
68 ::com::sun::star::lang::XMultiServiceFactory > & rFactory,
69 ::com::sun::star::uno::Reference<
70 ::com::sun::star::beans::XPropertySet > & rPropSet,
71 const sal_Char* pComponentName );
73 sal_Bool WriteThroughComponent(
74 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStor,
75 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >
76 xComponent,
77 const sal_Char* pStreamName,
78 ::com::sun::star::uno::Reference<
79 ::com::sun::star::lang::XMultiServiceFactory > & rFactory,
80 ::com::sun::star::uno::Reference<
81 ::com::sun::star::beans::XPropertySet > & rPropSet,
82 const sal_Char* pComponentName,
83 sal_Bool bCompress=sal_True );
86 ////////////////////////////////////////////////////////////
88 class SmXMLExport : public SvXMLExport
90 const SmNode * pTree;
91 String aText;
92 sal_Bool bSuccess;
94 protected:
95 void ExportNodes(const SmNode *pNode, int nLevel);
96 void ExportTable(const SmNode *pNode, int nLevel);
97 void ExportLine(const SmNode *pNode, int nLevel);
98 void ExportExpression(const SmNode *pNode, int nLevel);
99 void ExportText(const SmNode *pNode, int nLevel);
100 void ExportMath(const SmNode *pNode, int nLevel);
101 void ExportPolygon(const SmNode *pNode, int nLevel);
102 void ExportBinaryHorizontal(const SmNode *pNode, int nLevel);
103 void ExportUnaryHorizontal(const SmNode *pNode, int nLevel);
104 void ExportBrace(const SmNode *pNode, int nLevel);
105 void ExportBinaryVertical(const SmNode *pNode, int nLevel);
106 void ExportSubSupScript(const SmNode *pNode, int nLevel);
107 void ExportRoot(const SmNode *pNode, int nLevel);
108 void ExportOperator(const SmNode *pNode, int nLevel);
109 void ExportAttributes(const SmNode *pNode, int nLevel);
110 void ExportFont(const SmNode *pNode, int nLevel);
111 void ExportVerticalBrace(const SmNode *pNode, int nLevel);
112 void ExportMatrix(const SmNode *pNode, int nLevel);
113 void ExportBlank(const SmNode *pNode, int nLevel);
115 public:
116 // #110680#
117 SmXMLExport(
118 const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory,
119 sal_uInt16 nExportFlags=EXPORT_ALL);
120 virtual ~SmXMLExport() {};
122 // XServiceInfo (override parent method)
123 ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
125 // XUnoTunnel
126 sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw(::com::sun::star::uno::RuntimeException);
127 static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw();
129 void _ExportAutoStyles() {}
130 void _ExportMasterStyles() {}
131 void _ExportContent();
132 sal_uInt32 exportDoc(enum ::xmloff::token::XMLTokenEnum eClass);
134 virtual void GetViewSettings(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aProps);
135 virtual void GetConfigurationSettings(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aProps);
137 sal_Bool GetSuccess() {return bSuccess;}
140 ////////////////////////////////////////////////////////////
142 #endif