xref: /trunk/main/xmlhelp/source/treeview/tvread.hxx (revision 7b6bd0c4)
1*7b6bd0c4SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*7b6bd0c4SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*7b6bd0c4SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*7b6bd0c4SAndrew Rist  * distributed with this work for additional information
6*7b6bd0c4SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*7b6bd0c4SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*7b6bd0c4SAndrew Rist  * "License"); you may not use this file except in compliance
9*7b6bd0c4SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*7b6bd0c4SAndrew Rist  *
11*7b6bd0c4SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*7b6bd0c4SAndrew Rist  *
13*7b6bd0c4SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*7b6bd0c4SAndrew Rist  * software distributed under the License is distributed on an
15*7b6bd0c4SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*7b6bd0c4SAndrew Rist  * KIND, either express or implied.  See the License for the
17*7b6bd0c4SAndrew Rist  * specific language governing permissions and limitations
18*7b6bd0c4SAndrew Rist  * under the License.
19*7b6bd0c4SAndrew Rist  *
20*7b6bd0c4SAndrew Rist  *************************************************************/
21*7b6bd0c4SAndrew Rist 
22*7b6bd0c4SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _TREEVIEW_TVREAD_HXX_
25cdf0e10cSrcweir #define _TREEVIEW_TVREAD_HXX_
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #ifndef INCLUDED_STL_VECTOR
28cdf0e10cSrcweir #include <vector>
29cdf0e10cSrcweir #define INCLUDED_STL_VECTOR
30cdf0e10cSrcweir #endif
31cdf0e10cSrcweir #include <rtl/ref.hxx>
32cdf0e10cSrcweir #include <rtl/ustring.hxx>
33cdf0e10cSrcweir #include <ucbhelper/macros.hxx>
34cdf0e10cSrcweir #include <com/sun/star/uno/Type.hxx>
35cdf0e10cSrcweir #include <cppuhelper/weak.hxx>
36cdf0e10cSrcweir #include <com/sun/star/uno/XInterface.hpp>
37cdf0e10cSrcweir #include <com/sun/star/lang/XTypeProvider.hpp>
38cdf0e10cSrcweir #include <com/sun/star/container/XNameAccess.hpp>
39cdf0e10cSrcweir #include <com/sun/star/container/XHierarchicalNameAccess.hpp>
40cdf0e10cSrcweir #include <com/sun/star/util/XChangesNotifier.hpp>
41cdf0e10cSrcweir #include <com/sun/star/lang/XComponent.hpp>
42cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp>
43cdf0e10cSrcweir #include <com/sun/star/deployment/XPackage.hpp>
44cdf0e10cSrcweir #include "com/sun/star/ucb/XSimpleFileAccess.hpp"
45cdf0e10cSrcweir 
46cdf0e10cSrcweir namespace treeview {
47cdf0e10cSrcweir 
48cdf0e10cSrcweir 
49cdf0e10cSrcweir 	class ConfigData
50cdf0e10cSrcweir 	{
51cdf0e10cSrcweir 	public:
52cdf0e10cSrcweir         enum {
53cdf0e10cSrcweir             PRODUCTNAME, PRODUCTVERSION, VENDORNAME, VENDORVERSION,
54cdf0e10cSrcweir             VENDORSHORT };
55cdf0e10cSrcweir 		ConfigData();
56cdf0e10cSrcweir 		int                    m_vAdd[5];
57cdf0e10cSrcweir 		rtl::OUString          m_vReplacement[5];
58cdf0e10cSrcweir 		rtl::OUString          prodName,prodVersion,vendName,vendVersion,vendShort;
59cdf0e10cSrcweir 
60cdf0e10cSrcweir 		std::vector< sal_uInt64 >		vFileLen;
61cdf0e10cSrcweir 		std::vector< rtl::OUString >	vFileURL;
62cdf0e10cSrcweir 		rtl::OUString locale,system;
63cdf0e10cSrcweir 		rtl::OUString appendix;
64cdf0e10cSrcweir 
65cdf0e10cSrcweir 		void SAL_CALL replaceName( rtl::OUString& oustring ) const;
66cdf0e10cSrcweir 	};
67cdf0e10cSrcweir 
68cdf0e10cSrcweir 
69cdf0e10cSrcweir 	class TVDom;
70cdf0e10cSrcweir 	class TVChildTarget;
71cdf0e10cSrcweir 
72cdf0e10cSrcweir 	class TVBase
73cdf0e10cSrcweir 		: public cppu::OWeakObject,
74cdf0e10cSrcweir 		  public com::sun::star::lang::XTypeProvider,
75cdf0e10cSrcweir 		  public com::sun::star::container::XNameAccess,
76cdf0e10cSrcweir 		  public com::sun::star::container::XHierarchicalNameAccess,
77cdf0e10cSrcweir 		  public com::sun::star::util::XChangesNotifier,
78cdf0e10cSrcweir 		  public com::sun::star::lang::XComponent
79cdf0e10cSrcweir 	{
80cdf0e10cSrcweir 		friend class TVChildTarget;
81cdf0e10cSrcweir 
82cdf0e10cSrcweir 	public:
83cdf0e10cSrcweir 
~TVBase()84cdf0e10cSrcweir 		virtual ~TVBase() { }
85cdf0e10cSrcweir 
86cdf0e10cSrcweir 		// XInterface
87cdf0e10cSrcweir 		virtual com::sun::star::uno::Any SAL_CALL
88cdf0e10cSrcweir 		queryInterface(
89cdf0e10cSrcweir 			const com::sun::star::uno::Type& aType )
90cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException);
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 		virtual void SAL_CALL
93cdf0e10cSrcweir 		acquire(
94cdf0e10cSrcweir 			void )
95cdf0e10cSrcweir 			throw();
96cdf0e10cSrcweir 
97cdf0e10cSrcweir 		virtual void SAL_CALL
98cdf0e10cSrcweir 		release(
99cdf0e10cSrcweir 			void )
100cdf0e10cSrcweir 			throw();
101cdf0e10cSrcweir 
102cdf0e10cSrcweir 
103cdf0e10cSrcweir 		// XTypeProvider
104cdf0e10cSrcweir 
XTYPEPROVIDER_DECL()105cdf0e10cSrcweir 		XTYPEPROVIDER_DECL()
106cdf0e10cSrcweir 
107cdf0e10cSrcweir 
108cdf0e10cSrcweir 		// XNameAccess
109cdf0e10cSrcweir 
110cdf0e10cSrcweir 		virtual com::sun::star::uno::Type SAL_CALL
111cdf0e10cSrcweir 		getElementType(  )
112cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException )
113cdf0e10cSrcweir 		{
114cdf0e10cSrcweir 			return getCppuVoidType();
115cdf0e10cSrcweir 		}
116cdf0e10cSrcweir 
117cdf0e10cSrcweir 
hasElements()118cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL hasElements()
119cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException )
120cdf0e10cSrcweir 		{
121cdf0e10cSrcweir 			return true;
122cdf0e10cSrcweir 		}
123cdf0e10cSrcweir 
124cdf0e10cSrcweir 		// XChangesNotifier
125cdf0e10cSrcweir 
126cdf0e10cSrcweir 		virtual void SAL_CALL
addChangesListener(const com::sun::star::uno::Reference<com::sun::star::util::XChangesListener> & aListener)127cdf0e10cSrcweir 		addChangesListener(
128cdf0e10cSrcweir 			const com::sun::star::uno::Reference< com::sun::star::util::XChangesListener >& aListener )
129cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException )
130cdf0e10cSrcweir 		{
131cdf0e10cSrcweir 			// read only
132cdf0e10cSrcweir 			(void)aListener;
133cdf0e10cSrcweir 		}
134cdf0e10cSrcweir 
135cdf0e10cSrcweir 		virtual void SAL_CALL
removeChangesListener(const com::sun::star::uno::Reference<com::sun::star::util::XChangesListener> & aListener)136cdf0e10cSrcweir 		removeChangesListener(
137cdf0e10cSrcweir 			const com::sun::star::uno::Reference< com::sun::star::util::XChangesListener >& aListener )
138cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException )
139cdf0e10cSrcweir 		{
140cdf0e10cSrcweir 			// read only
141cdf0e10cSrcweir 			(void)aListener;
142cdf0e10cSrcweir 		}
143cdf0e10cSrcweir 
144cdf0e10cSrcweir 
145cdf0e10cSrcweir 		// XComponent
146cdf0e10cSrcweir 
dispose()147cdf0e10cSrcweir 		virtual void SAL_CALL dispose( )
148cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException )
149cdf0e10cSrcweir 		{
150cdf0e10cSrcweir 		}
151cdf0e10cSrcweir 
addEventListener(const com::sun::star::uno::Reference<com::sun::star::lang::XEventListener> & xListener)152cdf0e10cSrcweir 		virtual void SAL_CALL addEventListener(
153cdf0e10cSrcweir 			const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& xListener )
154cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException )
155cdf0e10cSrcweir 		{
156cdf0e10cSrcweir 			(void)xListener;
157cdf0e10cSrcweir 		}
158cdf0e10cSrcweir 
159cdf0e10cSrcweir 		virtual void SAL_CALL
removeEventListener(const com::sun::star::uno::Reference<com::sun::star::lang::XEventListener> & aListener)160cdf0e10cSrcweir 		removeEventListener(
161cdf0e10cSrcweir 			const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& aListener )
162cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException )
163cdf0e10cSrcweir 		{
164cdf0e10cSrcweir 			(void)aListener;
165cdf0e10cSrcweir 		}
166cdf0e10cSrcweir 
167cdf0e10cSrcweir 
168cdf0e10cSrcweir 		// Abstract functions
169cdf0e10cSrcweir 		// XNameAccess
170cdf0e10cSrcweir 
171cdf0e10cSrcweir 		virtual com::sun::star::uno::Any SAL_CALL
172cdf0e10cSrcweir 		getByName( const rtl::OUString& aName )
173cdf0e10cSrcweir 			throw( com::sun::star::container::NoSuchElementException,
174cdf0e10cSrcweir 				   com::sun::star::lang::WrappedTargetException,
175cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException) = 0;
176cdf0e10cSrcweir 
177cdf0e10cSrcweir 		virtual com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL
178cdf0e10cSrcweir 		getElementNames( )
179cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException ) = 0;
180cdf0e10cSrcweir 
181cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
182cdf0e10cSrcweir 		hasByName( const rtl::OUString& aName )
183cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException ) = 0;
184cdf0e10cSrcweir 
185cdf0e10cSrcweir 
186cdf0e10cSrcweir 		// XHierarchicalNameAccess
187cdf0e10cSrcweir 
188cdf0e10cSrcweir 		virtual com::sun::star::uno::Any SAL_CALL
189cdf0e10cSrcweir 		getByHierarchicalName( const rtl::OUString& aName )
190cdf0e10cSrcweir 			throw( com::sun::star::container::NoSuchElementException,
191cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException ) = 0;
192cdf0e10cSrcweir 
193cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
194cdf0e10cSrcweir 		hasByHierarchicalName( const rtl::OUString& aName )
195cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException ) = 0;
196cdf0e10cSrcweir 
197cdf0e10cSrcweir 	}; // end class TVBase
198cdf0e10cSrcweir 
199cdf0e10cSrcweir 
200cdf0e10cSrcweir 
201cdf0e10cSrcweir 
202cdf0e10cSrcweir 
203cdf0e10cSrcweir 	class TVRead
204cdf0e10cSrcweir 		: public TVBase
205cdf0e10cSrcweir 	{
206cdf0e10cSrcweir 		friend class TVChildTarget;
207cdf0e10cSrcweir 
208cdf0e10cSrcweir 	public:
209cdf0e10cSrcweir 		TVRead( const ConfigData& configData,TVDom* tvDom = 0 );
210cdf0e10cSrcweir 
211cdf0e10cSrcweir 		~TVRead();
212cdf0e10cSrcweir 
213cdf0e10cSrcweir 		// XNameAccess
214cdf0e10cSrcweir 
215cdf0e10cSrcweir 		virtual com::sun::star::uno::Any SAL_CALL
216cdf0e10cSrcweir 		getByName( const rtl::OUString& aName )
217cdf0e10cSrcweir 			throw( com::sun::star::container::NoSuchElementException,
218cdf0e10cSrcweir 				   com::sun::star::lang::WrappedTargetException,
219cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
220cdf0e10cSrcweir 
221cdf0e10cSrcweir 		virtual com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL
222cdf0e10cSrcweir 		getElementNames( )
223cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException );
224cdf0e10cSrcweir 
225cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
226cdf0e10cSrcweir 		hasByName( const rtl::OUString& aName )
227cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException );
228cdf0e10cSrcweir 
229cdf0e10cSrcweir 
230cdf0e10cSrcweir 		// XHierarchicalNameAccess
231cdf0e10cSrcweir 
232cdf0e10cSrcweir 		virtual com::sun::star::uno::Any SAL_CALL
233cdf0e10cSrcweir 		getByHierarchicalName( const rtl::OUString& aName )
234cdf0e10cSrcweir 			throw( com::sun::star::container::NoSuchElementException,
235cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException );
236cdf0e10cSrcweir 
237cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
238cdf0e10cSrcweir 		hasByHierarchicalName( const rtl::OUString& aName )
239cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException );
240cdf0e10cSrcweir 
241cdf0e10cSrcweir 
242cdf0e10cSrcweir 	private:
243cdf0e10cSrcweir 
244cdf0e10cSrcweir 		rtl::OUString                    Title;
245cdf0e10cSrcweir 		rtl::OUString                    TargetURL;
246cdf0e10cSrcweir 		rtl::Reference< TVChildTarget >  Children;
247cdf0e10cSrcweir 
248cdf0e10cSrcweir 	};  // end class TVRead
249cdf0e10cSrcweir 
250cdf0e10cSrcweir 
251cdf0e10cSrcweir 
252cdf0e10cSrcweir 
253cdf0e10cSrcweir 
254cdf0e10cSrcweir 
255cdf0e10cSrcweir 	class TVChildTarget
256cdf0e10cSrcweir 		: public TVBase
257cdf0e10cSrcweir 	{
258cdf0e10cSrcweir 	public:
259cdf0e10cSrcweir 
260cdf0e10cSrcweir 		TVChildTarget( const ConfigData& configData,TVDom* tvDom );
261cdf0e10cSrcweir 
262cdf0e10cSrcweir 		TVChildTarget( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& xMSF );
263cdf0e10cSrcweir 
264cdf0e10cSrcweir 		~TVChildTarget();
265cdf0e10cSrcweir 
266cdf0e10cSrcweir 		virtual com::sun::star::uno::Any SAL_CALL
267cdf0e10cSrcweir 		getByName( const rtl::OUString& aName )
268cdf0e10cSrcweir 			throw( com::sun::star::container::NoSuchElementException,
269cdf0e10cSrcweir 				   com::sun::star::lang::WrappedTargetException,
270cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
271cdf0e10cSrcweir 
272cdf0e10cSrcweir 		virtual com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL
273cdf0e10cSrcweir 		getElementNames( )
274cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException );
275cdf0e10cSrcweir 
276cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
277cdf0e10cSrcweir 		hasByName( const rtl::OUString& aName )
278cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException );
279cdf0e10cSrcweir 
280cdf0e10cSrcweir 
281cdf0e10cSrcweir 		// XHierarchicalNameAccess
282cdf0e10cSrcweir 
283cdf0e10cSrcweir 		virtual com::sun::star::uno::Any SAL_CALL
284cdf0e10cSrcweir 		getByHierarchicalName( const rtl::OUString& aName )
285cdf0e10cSrcweir 			throw( com::sun::star::container::NoSuchElementException,
286cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException );
287cdf0e10cSrcweir 
288cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
289cdf0e10cSrcweir 		hasByHierarchicalName( const rtl::OUString& aName )
290cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException );
291cdf0e10cSrcweir 
292cdf0e10cSrcweir 
293cdf0e10cSrcweir 	private:
294cdf0e10cSrcweir 		std::vector< rtl::Reference< TVRead > >   Elements;
295cdf0e10cSrcweir 
296cdf0e10cSrcweir 		ConfigData init(
297cdf0e10cSrcweir 			const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& xMSF );
298cdf0e10cSrcweir 
299cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >
300cdf0e10cSrcweir 		getConfiguration(
301cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xMSgr ) const;
302cdf0e10cSrcweir 
303cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::container::XHierarchicalNameAccess >
304cdf0e10cSrcweir 		getHierAccess( const ::com::sun::star::uno::Reference<  ::com::sun::star::lang::XMultiServiceFactory >& sProvider,
305cdf0e10cSrcweir 					   const char* file ) const;
306cdf0e10cSrcweir 
307cdf0e10cSrcweir 	  ::rtl::OUString
308cdf0e10cSrcweir 	  getKey( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XHierarchicalNameAccess >& xHierAccess,
309cdf0e10cSrcweir 				const char* key ) const;
310cdf0e10cSrcweir 
311cdf0e10cSrcweir 	  sal_Bool
312cdf0e10cSrcweir 	  getBooleanKey(
313cdf0e10cSrcweir 					const ::com::sun::star::uno::Reference< ::com::sun::star::container::XHierarchicalNameAccess >& xHierAccess,
314cdf0e10cSrcweir 					const char* key) const;
315cdf0e10cSrcweir 
316cdf0e10cSrcweir 	  void subst(
317cdf0e10cSrcweir 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xMSgr,
318cdf0e10cSrcweir 			rtl::OUString& instpath ) const;
319cdf0e10cSrcweir 
320cdf0e10cSrcweir 	};  // end class TVChildTarget
321cdf0e10cSrcweir 
322cdf0e10cSrcweir 
323cdf0e10cSrcweir 	enum IteratorState
324cdf0e10cSrcweir 	{
325cdf0e10cSrcweir 		USER_EXTENSIONS,
326cdf0e10cSrcweir 		SHARED_EXTENSIONS,
327cdf0e10cSrcweir         BUNDLED_EXTENSIONS,
328cdf0e10cSrcweir 		END_REACHED
329cdf0e10cSrcweir 	};
330cdf0e10cSrcweir 
331cdf0e10cSrcweir 	class ExtensionIteratorBase
332cdf0e10cSrcweir 	{
333cdf0e10cSrcweir 	public:
334cdf0e10cSrcweir 		ExtensionIteratorBase( const rtl::OUString& aLanguage );
335cdf0e10cSrcweir 		void init( void );
336cdf0e10cSrcweir 
337cdf0e10cSrcweir 	private:
338cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > implGetHelpPackageFromPackage
339cdf0e10cSrcweir 			( const com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > xPackage,
340cdf0e10cSrcweir 			  com::sun::star::uno::Reference< com::sun::star::deployment::XPackage >& o_xParentPackageBundle );
341cdf0e10cSrcweir 
342cdf0e10cSrcweir 	protected:
343cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > implGetNextUserHelpPackage
344cdf0e10cSrcweir 			( com::sun::star::uno::Reference< com::sun::star::deployment::XPackage >& o_xParentPackageBundle );
345cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > implGetNextSharedHelpPackage
346cdf0e10cSrcweir 			( com::sun::star::uno::Reference< com::sun::star::deployment::XPackage >& o_xParentPackageBundle );
347cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > implGetNextBundledHelpPackage
348cdf0e10cSrcweir 			( com::sun::star::uno::Reference< com::sun::star::deployment::XPackage >& o_xParentPackageBundle );
349cdf0e10cSrcweir 
350cdf0e10cSrcweir         void implGetLanguageVectorFromPackage( ::std::vector< ::rtl::OUString > &rv,
351cdf0e10cSrcweir 			com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > xPackage );
352cdf0e10cSrcweir 
353cdf0e10cSrcweir 		osl::Mutex																	m_aMutex;
354cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >	m_xContext;
355cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::ucb::XSimpleFileAccess >	m_xSFA;
356cdf0e10cSrcweir 
357cdf0e10cSrcweir 		IteratorState																m_eState;
358cdf0e10cSrcweir 		rtl::OUString																m_aLanguage;
359cdf0e10cSrcweir 
360cdf0e10cSrcweir 		com::sun::star::uno::Sequence< com::sun::star::uno::Reference
361cdf0e10cSrcweir 			< com::sun::star::deployment::XPackage > >								m_aUserPackagesSeq;
362cdf0e10cSrcweir 		bool																		m_bUserPackagesLoaded;
363cdf0e10cSrcweir 
364cdf0e10cSrcweir 		com::sun::star::uno::Sequence< com::sun::star::uno::Reference
365cdf0e10cSrcweir 			< com::sun::star::deployment::XPackage > >								m_aSharedPackagesSeq;
366cdf0e10cSrcweir 		bool																		m_bSharedPackagesLoaded;
367cdf0e10cSrcweir 
368cdf0e10cSrcweir         com::sun::star::uno::Sequence< com::sun::star::uno::Reference
369cdf0e10cSrcweir             < com::sun::star::deployment::XPackage > >								m_aBundledPackagesSeq;
370cdf0e10cSrcweir 		bool																		m_bBundledPackagesLoaded;
371cdf0e10cSrcweir 
372cdf0e10cSrcweir 		int																			m_iUserPackage;
373cdf0e10cSrcweir 		int																			m_iSharedPackage;
374cdf0e10cSrcweir         int																			m_iBundledPackage;
375cdf0e10cSrcweir 
376cdf0e10cSrcweir 	}; // end class ExtensionIteratorBase
377cdf0e10cSrcweir 
378cdf0e10cSrcweir 
379cdf0e10cSrcweir 	//===================================================================
380cdf0e10cSrcweir 	class TreeFileIterator : public ExtensionIteratorBase
381cdf0e10cSrcweir 	{
382cdf0e10cSrcweir 	public:
TreeFileIterator(const rtl::OUString & aLanguage)383cdf0e10cSrcweir 		TreeFileIterator( const rtl::OUString& aLanguage )
384cdf0e10cSrcweir 			: ExtensionIteratorBase( aLanguage )
385cdf0e10cSrcweir 		{}
386cdf0e10cSrcweir 
387cdf0e10cSrcweir 		rtl::OUString nextTreeFile( sal_Int32& rnFileSize );
388cdf0e10cSrcweir 
389cdf0e10cSrcweir 	private:
390cdf0e10cSrcweir 		rtl::OUString expandURL( const rtl::OUString& aURL );
391cdf0e10cSrcweir 		rtl::OUString implGetTreeFileFromPackage( sal_Int32& rnFileSize,
392cdf0e10cSrcweir 			com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > xPackage );
393cdf0e10cSrcweir 
394cdf0e10cSrcweir 	}; // end class TreeFileIterator
395cdf0e10cSrcweir 
396cdf0e10cSrcweir 
397cdf0e10cSrcweir }
398cdf0e10cSrcweir 
399cdf0e10cSrcweir 
400cdf0e10cSrcweir #endif
401