1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski #ifndef _XMLFILTERCOMMON_HXX_
24*b1cdbd2cSJim Jagielski #define _XMLFILTERCOMMON_HXX_
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XComponent.hpp>
27*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XMultiServiceFactory.hpp>
28*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XHierarchicalName.hpp>
29*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XNameContainer.hpp>
30*b1cdbd2cSJim Jagielski #include <com/sun/star/io/XInputStream.hpp>
31*b1cdbd2cSJim Jagielski #include <com/sun/star/io/XOutputStream.hpp>
32*b1cdbd2cSJim Jagielski 
33*b1cdbd2cSJim Jagielski #include <vector>
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
36*b1cdbd2cSJim Jagielski 
37*b1cdbd2cSJim Jagielski extern ::rtl::OUString string_encode( const ::rtl::OUString & rText );
38*b1cdbd2cSJim Jagielski extern ::rtl::OUString string_decode( const ::rtl::OUString & rText );
39*b1cdbd2cSJim Jagielski 
40*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
41*b1cdbd2cSJim Jagielski 
42*b1cdbd2cSJim Jagielski extern bool isFileURL( const ::rtl::OUString & rURL );
43*b1cdbd2cSJim Jagielski 
44*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
45*b1cdbd2cSJim Jagielski 
46*b1cdbd2cSJim Jagielski bool copyStreams( ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > xIS, ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > xOS );
47*b1cdbd2cSJim Jagielski bool createDirectory( ::rtl::OUString& rURL );
48*b1cdbd2cSJim Jagielski 
49*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
50*b1cdbd2cSJim Jagielski 
51*b1cdbd2cSJim Jagielski class filter_info_impl
52*b1cdbd2cSJim Jagielski {
53*b1cdbd2cSJim Jagielski public:
54*b1cdbd2cSJim Jagielski 	rtl::OUString	maFilterName;
55*b1cdbd2cSJim Jagielski 	rtl::OUString	maType;
56*b1cdbd2cSJim Jagielski 	rtl::OUString	maDocumentService;
57*b1cdbd2cSJim Jagielski 	rtl::OUString	maFilterService;
58*b1cdbd2cSJim Jagielski 	rtl::OUString	maInterfaceName;
59*b1cdbd2cSJim Jagielski 	rtl::OUString	maComment;
60*b1cdbd2cSJim Jagielski 	rtl::OUString	maExtension;
61*b1cdbd2cSJim Jagielski 	rtl::OUString	maDTD;
62*b1cdbd2cSJim Jagielski 	rtl::OUString	maExportXSLT;
63*b1cdbd2cSJim Jagielski 	rtl::OUString	maImportXSLT;
64*b1cdbd2cSJim Jagielski 	rtl::OUString	maImportTemplate;
65*b1cdbd2cSJim Jagielski 	rtl::OUString	maDocType;
66*b1cdbd2cSJim Jagielski     rtl::OUString	maImportService;
67*b1cdbd2cSJim Jagielski     rtl::OUString	maExportService;
68*b1cdbd2cSJim Jagielski 
69*b1cdbd2cSJim Jagielski 	sal_Int32		maFlags;
70*b1cdbd2cSJim Jagielski 	sal_Int32		maFileFormatVersion;
71*b1cdbd2cSJim Jagielski 	sal_Int32		mnDocumentIconID;
72*b1cdbd2cSJim Jagielski 
73*b1cdbd2cSJim Jagielski     sal_Bool        mbReadonly;
74*b1cdbd2cSJim Jagielski 	filter_info_impl();
75*b1cdbd2cSJim Jagielski 	filter_info_impl( const filter_info_impl& rInfo );
76*b1cdbd2cSJim Jagielski 	int operator==( const filter_info_impl& ) const;
77*b1cdbd2cSJim Jagielski 
78*b1cdbd2cSJim Jagielski 	com::sun::star::uno::Sequence< rtl::OUString > getFilterUserData() const;
79*b1cdbd2cSJim Jagielski };
80*b1cdbd2cSJim Jagielski 
81*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
82*b1cdbd2cSJim Jagielski 
83*b1cdbd2cSJim Jagielski struct application_info_impl
84*b1cdbd2cSJim Jagielski {
85*b1cdbd2cSJim Jagielski 	rtl::OUString	maDocumentService;
86*b1cdbd2cSJim Jagielski 	rtl::OUString	maDocumentUIName;
87*b1cdbd2cSJim Jagielski 	rtl::OUString	maXMLImporter;
88*b1cdbd2cSJim Jagielski 	rtl::OUString	maXMLExporter;
89*b1cdbd2cSJim Jagielski 
90*b1cdbd2cSJim Jagielski 	application_info_impl( const sal_Char * pDocumentService, ResId& rUINameRes, const sal_Char * mpXMLImporter, const sal_Char * mpXMLExporter );
91*b1cdbd2cSJim Jagielski };
92*b1cdbd2cSJim Jagielski 
93*b1cdbd2cSJim Jagielski // --------------------------------------------------------------------
94*b1cdbd2cSJim Jagielski 
95*b1cdbd2cSJim Jagielski extern std::vector< application_info_impl* >& getApplicationInfos();
96*b1cdbd2cSJim Jagielski extern rtl::OUString getApplicationUIName( const rtl::OUString& rServiceName );
97*b1cdbd2cSJim Jagielski extern const application_info_impl* getApplicationInfo( const rtl::OUString& rServiceName );
98*b1cdbd2cSJim Jagielski 
99*b1cdbd2cSJim Jagielski extern ResMgr* getXSLTDialogResMgr();
100*b1cdbd2cSJim Jagielski 
101*b1cdbd2cSJim Jagielski #define RESID(x) ResId(x, *getXSLTDialogResMgr() )
102*b1cdbd2cSJim Jagielski 
103*b1cdbd2cSJim Jagielski #endif
104