xref: /AOO41X/main/framework/inc/xml/menudocumenthandler.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir #ifndef __FRAMEWORK_XML_MENUDOCUMENTHANDLER_HXX_
29*cdf0e10cSrcweir #define __FRAMEWORK_XML_MENUDOCUMENTHANDLER_HXX_
30*cdf0e10cSrcweir 
31*cdf0e10cSrcweir //_________________________________________________________________________________________________________________
32*cdf0e10cSrcweir //	interface includes
33*cdf0e10cSrcweir //_________________________________________________________________________________________________________________
34*cdf0e10cSrcweir 
35*cdf0e10cSrcweir #ifndef __COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
36*cdf0e10cSrcweir #include <com/sun/star/xml/sax/XDocumentHandler.hpp>
37*cdf0e10cSrcweir #endif
38*cdf0e10cSrcweir #include <com/sun/star/container/XIndexContainer.hpp>
39*cdf0e10cSrcweir #include <com/sun/star/lang/XSingleComponentFactory.hpp>
40*cdf0e10cSrcweir #include <com/sun/star/beans/PropertyValue.hpp>
41*cdf0e10cSrcweir #include <com/sun/star/uno/Sequence.h>
42*cdf0e10cSrcweir #include <com/sun/star/uno/XComponentContext.hpp>
43*cdf0e10cSrcweir 
44*cdf0e10cSrcweir //_________________________________________________________________________________________________________________
45*cdf0e10cSrcweir //	other includes
46*cdf0e10cSrcweir //_________________________________________________________________________________________________________________
47*cdf0e10cSrcweir #include <threadhelp/threadhelpbase.hxx>
48*cdf0e10cSrcweir #include <rtl/ustring.hxx>
49*cdf0e10cSrcweir #include <cppuhelper/implbase1.hxx>
50*cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp>
51*cdf0e10cSrcweir #include <framework/fwedllapi.h>
52*cdf0e10cSrcweir 
53*cdf0e10cSrcweir //_________________________________________________________________________________________________________________
54*cdf0e10cSrcweir //	namespace
55*cdf0e10cSrcweir //_________________________________________________________________________________________________________________
56*cdf0e10cSrcweir 
57*cdf0e10cSrcweir namespace framework{
58*cdf0e10cSrcweir 
59*cdf0e10cSrcweir class FWE_DLLPUBLIC ReadMenuDocumentHandlerBase : public ThreadHelpBase,	// Struct for right initalization of mutex member! Must be first of baseclasses.
60*cdf0e10cSrcweir 									public ::cppu::WeakImplHelper1< ::com::sun::star::xml::sax::XDocumentHandler >
61*cdf0e10cSrcweir {
62*cdf0e10cSrcweir 	public:
63*cdf0e10cSrcweir 		ReadMenuDocumentHandlerBase();
64*cdf0e10cSrcweir 		virtual ~ReadMenuDocumentHandlerBase();
65*cdf0e10cSrcweir 
66*cdf0e10cSrcweir 		// XDocumentHandler
67*cdf0e10cSrcweir 		virtual void SAL_CALL startDocument(void)
68*cdf0e10cSrcweir 		throw (	::com::sun::star::xml::sax::SAXException,
69*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException ) = 0;
70*cdf0e10cSrcweir 
71*cdf0e10cSrcweir 		virtual void SAL_CALL endDocument(void)
72*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
73*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException ) = 0;
74*cdf0e10cSrcweir 
75*cdf0e10cSrcweir 		virtual void SAL_CALL startElement(
76*cdf0e10cSrcweir 			const rtl::OUString& aName,
77*cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
78*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
79*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException ) = 0;
80*cdf0e10cSrcweir 
81*cdf0e10cSrcweir 		virtual void SAL_CALL endElement(const rtl::OUString& aName)
82*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
83*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException ) = 0;
84*cdf0e10cSrcweir 
85*cdf0e10cSrcweir 		virtual void SAL_CALL characters(const rtl::OUString& aChars)
86*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
87*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException ) = 0;
88*cdf0e10cSrcweir 
89*cdf0e10cSrcweir 		virtual void SAL_CALL ignorableWhitespace(const rtl::OUString& aWhitespaces)
90*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
91*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
92*cdf0e10cSrcweir 
93*cdf0e10cSrcweir 		virtual void SAL_CALL processingInstruction(const rtl::OUString& aTarget,
94*cdf0e10cSrcweir 													const rtl::OUString& aData)
95*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
96*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
97*cdf0e10cSrcweir 
98*cdf0e10cSrcweir 		virtual void SAL_CALL setDocumentLocator(
99*cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > &xLocator)
100*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
101*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
102*cdf0e10cSrcweir 
103*cdf0e10cSrcweir 	protected:
104*cdf0e10cSrcweir 		::rtl::OUString getErrorLineString();
105*cdf0e10cSrcweir 
106*cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > m_xLocator;
107*cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler> m_xReader;
108*cdf0e10cSrcweir 		void initPropertyCommon( com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > &rProps,
109*cdf0e10cSrcweir 								 const rtl::OUString &rCommandURL, const rtl::OUString &rHelpId,
110*cdf0e10cSrcweir                                  const rtl::OUString &rLabel, sal_Int16 nItemStyleBits );
111*cdf0e10cSrcweir 	private:
112*cdf0e10cSrcweir 		rtl::OUString m_aType;
113*cdf0e10cSrcweir 		rtl::OUString m_aLabel;
114*cdf0e10cSrcweir 		rtl::OUString m_aContainer;
115*cdf0e10cSrcweir 		rtl::OUString m_aHelpURL;
116*cdf0e10cSrcweir 		rtl::OUString m_aCommandURL;
117*cdf0e10cSrcweir         rtl::OUString m_aStyle;
118*cdf0e10cSrcweir 		::com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > m_aItemProp;
119*cdf0e10cSrcweir };
120*cdf0e10cSrcweir 
121*cdf0e10cSrcweir 
122*cdf0e10cSrcweir class FWE_DLLPUBLIC OReadMenuDocumentHandler : public ReadMenuDocumentHandlerBase
123*cdf0e10cSrcweir {
124*cdf0e10cSrcweir 	public:
125*cdf0e10cSrcweir 		// #110897#
126*cdf0e10cSrcweir         OReadMenuDocumentHandler(
127*cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
128*cdf0e10cSrcweir 			const com::sun::star::uno::Reference< com::sun::star::container::XIndexContainer >& rItemContainer );
129*cdf0e10cSrcweir 		virtual ~OReadMenuDocumentHandler();
130*cdf0e10cSrcweir 
131*cdf0e10cSrcweir 		// #110897#
132*cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& getServiceFactory();
133*cdf0e10cSrcweir 
134*cdf0e10cSrcweir 		// XDocumentHandler
135*cdf0e10cSrcweir 		virtual void SAL_CALL startDocument(void)
136*cdf0e10cSrcweir 		throw (	::com::sun::star::xml::sax::SAXException,
137*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
138*cdf0e10cSrcweir 
139*cdf0e10cSrcweir 		virtual void SAL_CALL endDocument(void)
140*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
141*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
142*cdf0e10cSrcweir 
143*cdf0e10cSrcweir 		virtual void SAL_CALL startElement(
144*cdf0e10cSrcweir 			const rtl::OUString& aName,
145*cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
146*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
147*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
148*cdf0e10cSrcweir 
149*cdf0e10cSrcweir 		virtual void SAL_CALL endElement(const rtl::OUString& aName)
150*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
151*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
152*cdf0e10cSrcweir 
153*cdf0e10cSrcweir 		virtual void SAL_CALL characters(const rtl::OUString& aChars)
154*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
155*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
156*cdf0e10cSrcweir 
157*cdf0e10cSrcweir 	private:
158*cdf0e10cSrcweir           int		m_nElementDepth;
159*cdf0e10cSrcweir           sal_Bool	m_bMenuBarMode;
160*cdf0e10cSrcweir           com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > m_xMenuBarContainer;
161*cdf0e10cSrcweir           com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory > m_xContainerFactory;
162*cdf0e10cSrcweir           const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& mxServiceFactory;
163*cdf0e10cSrcweir };	// OReadMenuDocumentHandler
164*cdf0e10cSrcweir 
165*cdf0e10cSrcweir 
166*cdf0e10cSrcweir class FWE_DLLPUBLIC OReadMenuBarHandler : public ReadMenuDocumentHandlerBase
167*cdf0e10cSrcweir {
168*cdf0e10cSrcweir 	public:
169*cdf0e10cSrcweir 		// #110897#
170*cdf0e10cSrcweir 		OReadMenuBarHandler(
171*cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
172*cdf0e10cSrcweir 			const com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& rMenuBarContainer,
173*cdf0e10cSrcweir             const com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory >& rContainerFactory );
174*cdf0e10cSrcweir 		virtual ~OReadMenuBarHandler();
175*cdf0e10cSrcweir 
176*cdf0e10cSrcweir 		// #110897#
177*cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& getServiceFactory();
178*cdf0e10cSrcweir 
179*cdf0e10cSrcweir 		// XDocumentHandler
180*cdf0e10cSrcweir 		virtual void SAL_CALL startDocument(void)
181*cdf0e10cSrcweir 		throw (	::com::sun::star::xml::sax::SAXException,
182*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
183*cdf0e10cSrcweir 
184*cdf0e10cSrcweir 		virtual void SAL_CALL endDocument(void)
185*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
186*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
187*cdf0e10cSrcweir 
188*cdf0e10cSrcweir 		virtual void SAL_CALL startElement(
189*cdf0e10cSrcweir 			const rtl::OUString& aName,
190*cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
191*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
192*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
193*cdf0e10cSrcweir 
194*cdf0e10cSrcweir 		virtual void SAL_CALL endElement(const rtl::OUString& aName)
195*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
196*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
197*cdf0e10cSrcweir 
198*cdf0e10cSrcweir 		virtual void SAL_CALL characters(const rtl::OUString& aChars)
199*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
200*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
201*cdf0e10cSrcweir 
202*cdf0e10cSrcweir 	private:
203*cdf0e10cSrcweir 		int			m_nElementDepth;
204*cdf0e10cSrcweir 		sal_Bool	m_bMenuMode;
205*cdf0e10cSrcweir         com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > m_xMenuBarContainer;
206*cdf0e10cSrcweir         com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory > m_xContainerFactory;
207*cdf0e10cSrcweir 
208*cdf0e10cSrcweir 		// #110897#
209*cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& mxServiceFactory;
210*cdf0e10cSrcweir };	// OReadMenuBarHandler
211*cdf0e10cSrcweir 
212*cdf0e10cSrcweir 
213*cdf0e10cSrcweir class FWE_DLLPUBLIC OReadMenuHandler : public ReadMenuDocumentHandlerBase
214*cdf0e10cSrcweir {
215*cdf0e10cSrcweir 	public:
216*cdf0e10cSrcweir 		OReadMenuHandler( const com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& rMenuContainer,
217*cdf0e10cSrcweir                           const com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory >& rContainerFactory );
218*cdf0e10cSrcweir 		virtual ~OReadMenuHandler();
219*cdf0e10cSrcweir 
220*cdf0e10cSrcweir 		// XDocumentHandler
221*cdf0e10cSrcweir 		virtual void SAL_CALL startDocument(void)
222*cdf0e10cSrcweir 		throw (	::com::sun::star::xml::sax::SAXException,
223*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
224*cdf0e10cSrcweir 
225*cdf0e10cSrcweir 		virtual void SAL_CALL endDocument(void)
226*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
227*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
228*cdf0e10cSrcweir 
229*cdf0e10cSrcweir 		virtual void SAL_CALL startElement(
230*cdf0e10cSrcweir 			const rtl::OUString& aName,
231*cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs)
232*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
233*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
234*cdf0e10cSrcweir 
235*cdf0e10cSrcweir 		virtual void SAL_CALL endElement(const rtl::OUString& aName)
236*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
237*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
238*cdf0e10cSrcweir 
239*cdf0e10cSrcweir 		virtual void SAL_CALL characters(const rtl::OUString& aChars)
240*cdf0e10cSrcweir 		throw(	::com::sun::star::xml::sax::SAXException,
241*cdf0e10cSrcweir 				::com::sun::star::uno::RuntimeException );
242*cdf0e10cSrcweir 
243*cdf0e10cSrcweir 	private:
244*cdf0e10cSrcweir 		int					m_nElementDepth;
245*cdf0e10cSrcweir 		sal_Bool			m_bMenuPopupMode;
246*cdf0e10cSrcweir         com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > m_xMenuContainer;
247*cdf0e10cSrcweir         com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory > m_xContainerFactory;
248*cdf0e10cSrcweir }; // OReadMenuHandler
249*cdf0e10cSrcweir 
250*cdf0e10cSrcweir 
251*cdf0e10cSrcweir class FWE_DLLPUBLIC OReadMenuPopupHandler : public ReadMenuDocumentHandlerBase
252*cdf0e10cSrcweir {
253*cdf0e10cSrcweir 	public:
254*cdf0e10cSrcweir 		OReadMenuPopupHandler( const com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& rMenuContainer,
255*cdf0e10cSrcweir                                const com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory >& rContainerFactory );
256*cdf0e10cSrcweir 		virtual ~OReadMenuPopupHandler();
257*cdf0e10cSrcweir 
258*cdf0e10cSrcweir 		// XDocumentHandler
259*cdf0e10cSrcweir 		virtual void SAL_CALL startDocument(void)
260*cdf0e10cSrcweir 			throw (	::com::sun::star::xml::sax::SAXException,
261*cdf0e10cSrcweir 					::com::sun::star::uno::RuntimeException );
262*cdf0e10cSrcweir 
263*cdf0e10cSrcweir 		virtual void SAL_CALL endDocument(void)
264*cdf0e10cSrcweir 			throw (	::com::sun::star::xml::sax::SAXException,
265*cdf0e10cSrcweir 					::com::sun::star::uno::RuntimeException );
266*cdf0e10cSrcweir 
267*cdf0e10cSrcweir 		virtual void SAL_CALL startElement(
268*cdf0e10cSrcweir 			const rtl::OUString& aName,
269*cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference<
270*cdf0e10cSrcweir 				::com::sun::star::xml::sax::XAttributeList > &xAttribs)
271*cdf0e10cSrcweir 			throw (	::com::sun::star::xml::sax::SAXException,
272*cdf0e10cSrcweir 					::com::sun::star::uno::RuntimeException );
273*cdf0e10cSrcweir 
274*cdf0e10cSrcweir 		virtual void SAL_CALL endElement(const rtl::OUString& aName)
275*cdf0e10cSrcweir 			throw (	::com::sun::star::xml::sax::SAXException,
276*cdf0e10cSrcweir 					::com::sun::star::uno::RuntimeException );
277*cdf0e10cSrcweir 
278*cdf0e10cSrcweir 		virtual void SAL_CALL characters(const rtl::OUString& aChars)
279*cdf0e10cSrcweir 			throw (	::com::sun::star::xml::sax::SAXException,
280*cdf0e10cSrcweir 					::com::sun::star::uno::RuntimeException );
281*cdf0e10cSrcweir 
282*cdf0e10cSrcweir 	private:
283*cdf0e10cSrcweir 		enum NextElementClose { ELEM_CLOSE_NONE, ELEM_CLOSE_MENUITEM, ELEM_CLOSE_MENUSEPARATOR };
284*cdf0e10cSrcweir 
285*cdf0e10cSrcweir 		int					m_nElementDepth;
286*cdf0e10cSrcweir 		sal_Bool			m_bMenuMode;
287*cdf0e10cSrcweir         com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > m_xMenuContainer;
288*cdf0e10cSrcweir         com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory > m_xContainerFactory;
289*cdf0e10cSrcweir         com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >     m_xComponentContext;
290*cdf0e10cSrcweir 		NextElementClose	m_nNextElementExpected;
291*cdf0e10cSrcweir }; // OReadMenuPopupHandler
292*cdf0e10cSrcweir 
293*cdf0e10cSrcweir 
294*cdf0e10cSrcweir class FWE_DLLPUBLIC OWriteMenuDocumentHandler
295*cdf0e10cSrcweir {
296*cdf0e10cSrcweir 	public:
297*cdf0e10cSrcweir 		OWriteMenuDocumentHandler(
298*cdf0e10cSrcweir             const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& rMenuBarContainer,
299*cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler >& rDocumentHandler );
300*cdf0e10cSrcweir 		virtual ~OWriteMenuDocumentHandler();
301*cdf0e10cSrcweir 
302*cdf0e10cSrcweir 		void WriteMenuDocument() throw
303*cdf0e10cSrcweir 			( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
304*cdf0e10cSrcweir 	protected:
305*cdf0e10cSrcweir 		virtual void WriteMenu( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& rSubMenuContainer ) throw
306*cdf0e10cSrcweir 			( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
307*cdf0e10cSrcweir 
308*cdf0e10cSrcweir         virtual void WriteMenuItem( const rtl::OUString& aCommandURL, const rtl::OUString& aLabel, const rtl::OUString& aHelpURL, sal_Int16 nStyle = 0 );
309*cdf0e10cSrcweir 		virtual void WriteMenuSeparator();
310*cdf0e10cSrcweir 
311*cdf0e10cSrcweir         com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > m_xMenuBarContainer;
312*cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > m_xWriteDocumentHandler;
313*cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > m_xEmptyList;
314*cdf0e10cSrcweir 		::rtl::OUString m_aAttributeType;
315*cdf0e10cSrcweir };
316*cdf0e10cSrcweir 
317*cdf0e10cSrcweir } // namespace framework
318*cdf0e10cSrcweir 
319*cdf0e10cSrcweir #endif	// #ifndef __FRAMEWORK_XML_MENUDOCUMENTHANDLER_HXX_
320