xref: /aoo42x/main/svx/inc/svx/xmlexchg.hxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
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.
14  *
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).
20  *
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.
25  *
26  ************************************************************************/
27 
28 #ifndef _SVX_XMLEXCHG_HXX_
29 #define _SVX_XMLEXCHG_HXX_
30 
31 #include <svtools/transfer.hxx>
32 #include "svx/svxdllapi.h"
33 
34 namespace com {
35 	namespace sun {
36 		namespace star {
37 			namespace beans {
38 				class SAL_NO_VTABLE XPropertySet;
39 			}
40 		}
41 	}
42 }
43 
44 //........................................................................
45 namespace svx
46 {
47 //........................................................................
48 
49 
50 	//====================================================================
51 	//= OXFormsDescriptor
52 	//====================================================================
53 
54 	struct SVX_DLLPUBLIC OXFormsDescriptor {
55 
56 		String szName;
57 		String szServiceName;
58 		::com::sun::star::uno::Reference
59 			< ::com::sun::star::beans::XPropertySet >
60 				xPropSet;
61 
62 		inline OXFormsDescriptor( void ) {}
63 		inline OXFormsDescriptor( const OXFormsDescriptor &rhs ) { *this=rhs; }
64 		inline OXFormsDescriptor &operator = ( const OXFormsDescriptor &rhs ) {
65 			szName = rhs.szName;
66 			szServiceName = rhs.szServiceName;
67 			xPropSet = rhs.xPropSet;
68 			return (*this);
69 		}
70 	};
71 
72 	//====================================================================
73 	//= OXFormsTransferable
74 	//====================================================================
75 	class SVX_DLLPUBLIC OXFormsTransferable : public TransferableHelper {
76 
77 		protected:
78 
79 			// TransferableHelper overridables
80 			virtual void		AddSupportedFormats();
81 			virtual sal_Bool	GetData( const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
82 
83 			static sal_uInt32	getDescriptorFormatId();
84 
85 			OXFormsDescriptor m_aDescriptor;
86 
87 		public:
88 
89 			/** construct the transferable
90 			*/
91 			OXFormsTransferable( const OXFormsDescriptor &rhs );
92 
93 			/** extracts an xform descriptor from the transferable given
94 			*/
95 			static const OXFormsDescriptor &extractDescriptor( const TransferableDataHelper& _rData );
96 	};
97 
98 
99 //........................................................................
100 }	// namespace svx
101 //........................................................................
102 
103 #endif // _SVX_XMLEXCHG_HXX_
104 
105