1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_comphelper.hxx"
26 #ifndef _COMPHELPER_TYPEGENERATION_HXX
27 #include <comphelper/TypeGeneration.hxx>
28 #endif
29 #include <com/sun/star/script/XLibraryContainer.hpp>
30 #include <com/sun/star/style/LineSpacingMode.hpp>
31 #include <com/sun/star/style/ParagraphAdjust.hpp>
32 #include <com/sun/star/style/DropCapFormat.hpp>
33 #include <com/sun/star/style/LineSpacing.hpp>
34 #include <com/sun/star/style/TabStop.hpp>
35 #include <com/sun/star/style/TabAlign.hpp>
36 #include <com/sun/star/style/PageStyleLayout.hpp>
37 #include <com/sun/star/style/BreakType.hpp>
38 #include <com/sun/star/text/XModule.hpp>
39 #include <com/sun/star/text/XTextRangeMover.hpp>
40 #include <com/sun/star/text/XFootnotesSettingsSupplier.hpp>
41 #include <com/sun/star/text/XFootnote.hpp>
42 #include <com/sun/star/text/XFootnotesSupplier.hpp>
43 #include <com/sun/star/text/XEndnotesSupplier.hpp>
44 #include <com/sun/star/text/XEndnotesSettingsSupplier.hpp>
45 #include <com/sun/star/text/FootnoteNumbering.hpp>
46 #include <com/sun/star/text/XTextSectionsSupplier.hpp>
47 #include <com/sun/star/text/XTextSection.hpp>
48 #include <com/sun/star/text/SectionFileLink.hpp>
49 #include <com/sun/star/text/RelOrientation.hpp>
50 #include <com/sun/star/text/VertOrientation.hpp>
51 #include <com/sun/star/text/HorizontalAdjust.hpp>
52 #include <com/sun/star/text/DocumentStatistic.hpp>
53 #include <com/sun/star/text/HoriOrientation.hpp>
54 #include <com/sun/star/text/HoriOrientationFormat.hpp>
55 #include <com/sun/star/text/NotePrintMode.hpp>
56 #include <com/sun/star/text/SizeType.hpp>
57 #include <com/sun/star/text/VertOrientationFormat.hpp>
58 #include <com/sun/star/text/WrapTextMode.hpp>
59 //undef to prevent error (from sfx2/docfile.cxx)
60 #undef SEQUENCE
61 #include <com/sun/star/text/SetVariableType.hpp>
62 #include <com/sun/star/text/XTextFieldsSupplier.hpp>
63 #include <com/sun/star/text/UserDataPart.hpp>
64 #include <com/sun/star/text/ChapterFormat.hpp>
65 #include <com/sun/star/text/XTextField.hpp>
66 #include <com/sun/star/text/PlaceholderType.hpp>
67 #include <com/sun/star/text/TemplateDisplayFormat.hpp>
68 #include <com/sun/star/text/UserFieldFormat.hpp>
69 #include <com/sun/star/text/PageNumberType.hpp>
70 #include <com/sun/star/text/ReferenceFieldPart.hpp>
71 #include <com/sun/star/text/FilenameDisplayFormat.hpp>
72 #include <com/sun/star/text/XDependentTextField.hpp>
73 #include <com/sun/star/text/GraphicCrop.hpp>
74 #include <com/sun/star/text/XTextGraphicObjectsSupplier.hpp>
75 #include <com/sun/star/text/XTextTableCursor.hpp>
76 #include <com/sun/star/text/XTextTablesSupplier.hpp>
77 #include <com/sun/star/text/TableColumnSeparator.hpp>
78 #include <com/sun/star/text/XTextTable.hpp>
79 #include <com/sun/star/text/XDocumentIndexMark.hpp>
80 #include <com/sun/star/text/XDocumentIndexesSupplier.hpp>
81 #include <com/sun/star/text/XDocumentIndex.hpp>
82 #include <com/sun/star/text/XTextColumns.hpp>
83 #include <com/sun/star/text/TextColumnSequence.hpp>
84 #include <com/sun/star/text/XTextFramesSupplier.hpp>
85 #include <com/sun/star/text/XTextFrame.hpp>
86 #include <com/sun/star/beans/PropertyValues.hpp>
87 #include <com/sun/star/beans/XPropertySet.hpp>
88 #include <com/sun/star/beans/PropertyValue.hpp>
89 #include <com/sun/star/beans/PropertyState.hpp>
90 #include <com/sun/star/beans/XPropertySetInfo.hpp>
91 #include <com/sun/star/beans/XMultiPropertySet.hpp>
92 #include <com/sun/star/beans/XFastPropertySet.hpp>
93 #include <com/sun/star/beans/XVetoableChangeListener.hpp>
94 #include <com/sun/star/beans/XPropertyState.hpp>
95 #include <com/sun/star/beans/XPropertyStateChangeListener.hpp>
96 #ifndef _COM_SUN_STAR_BEANS_PropertyAttribute_HPP_
97 #include <com/sun/star/beans/PropertyAttribute.hpp>
98 #endif
99 #include <com/sun/star/beans/XPropertiesChangeListener.hpp>
100 #include <com/sun/star/beans/XPropertyChangeListener.hpp>
101 #include <com/sun/star/beans/XPropertyAccess.hpp>
102 #include <com/sun/star/beans/XPropertyContainer.hpp>
103 #include <com/sun/star/beans/NamedValue.hpp>
104 #include <com/sun/star/beans/PropertyStateChangeEvent.hpp>
105 #include <com/sun/star/beans/PropertyChangeEvent.hpp>
106 #include <com/sun/star/text/TextContentAnchorType.hpp>
107 #include <com/sun/star/awt/FontSlant.hpp>
108 #include <com/sun/star/awt/Size.hpp>
109 #include <com/sun/star/awt/XBitmap.hpp>
110 #include <com/sun/star/style/GraphicLocation.hpp>
111 #include <com/sun/star/style/VerticalAlignment.hpp>
112 #include <com/sun/star/container/XIndexReplace.hpp>
113 #include <com/sun/star/container/XIndexContainer.hpp>
114 #include <com/sun/star/table/ShadowFormat.hpp>
115 #include <com/sun/star/table/BorderLine.hpp>
116 #include <com/sun/star/table/TableBorder.hpp>
117 #include <com/sun/star/table/TableBorderDistances.hpp>
118 #include <com/sun/star/container/XNameContainer.hpp>
119 #include <com/sun/star/lang/Locale.hpp>
120 #include <com/sun/star/drawing/PointSequenceSequence.hpp>
121 #include <com/sun/star/i18n/XForbiddenCharacters.hpp>
122 #include <com/sun/star/drawing/ColorMode.hpp>
123 #include <com/sun/star/util/DateTime.hpp>
124 #include <com/sun/star/util/Date.hpp>
125 #include <com/sun/star/sdbc/XResultSet.hpp>
126 #include <com/sun/star/sdbc/XConnection.hpp>
127 #include <com/sun/star/frame/XModel.hpp>
128 // --> OD 2004-08-09 #i28749#
129 #include <com/sun/star/drawing/HomogenMatrix3.hpp>
130 // <--
131 #include <com/sun/star/graphic/XGraphic.hpp>
132 #include <com/sun/star/embed/XEmbeddedObject.hpp>
133 
134 //UUUU add types needed for fill style definitions in SW
135 #include <com/sun/star/drawing/RectanglePoint.hpp>
136 #include <com/sun/star/drawing/BitmapMode.hpp>
137 #include <com/sun/star/awt/Gradient.hpp>
138 #include <com/sun/star/drawing/Hatch.hpp>
139 #include <com/sun/star/drawing/FillStyle.hpp>
140 
141 using ::rtl::OUString;
142 using namespace ::com::sun::star;
143 using namespace ::com::sun::star::container;
144 using namespace ::com::sun::star::lang;
145 using namespace ::com::sun::star::awt;
146 using namespace ::com::sun::star::text;
147 using namespace ::com::sun::star::uno;
148 using namespace ::com::sun::star::beans;
149 using namespace ::com::sun::star::drawing;
150 using namespace ::com::sun::star::i18n;
151 using namespace ::comphelper;
152 
153 namespace comphelper
154 {
GenerateCppuType(CppuTypes eType,const com::sun::star::uno::Type * & pType)155 	void GenerateCppuType (
156         CppuTypes eType, const com::sun::star::uno::Type*& pType )
157 	{
158 		switch( eType )
159 		{
160 			case CPPUTYPE_BOOLEAN:		pType = &::getBooleanCppuType();	break;
161 			case CPPUTYPE_INT8:			pType = &::getCppuType( (sal_Int8*)0 );	break;
162 			case CPPUTYPE_INT16:		pType = &::getCppuType( (sal_Int16*)0 );	break;
163 			case CPPUTYPE_INT32:		pType = &::getCppuType( (sal_Int32*)0 );	break;
164 
165 			case CPPUTYPE_DOUBLE:		pType = &::getCppuType( (double*)0 ); break;
166 			case CPPUTYPE_FLOAT:		pType = &::getCppuType( (float*)0 );	break;
167 			case CPPUTYPE_OUSTRING:		pType = &::getCppuType( (OUString*)0 );	break;
168 			case CPPUTYPE_FONTSLANT:	pType = &::getCppuType( (FontSlant*)0 );	break;
169 			case CPPUTYPE_LOCALE:		pType = &::getCppuType( (Locale*)0 );	break;
170 			case CPPUTYPE_PROPERTYVALUE:pType = &::getCppuType( (Sequence<PropertyValue>*)0 );	break;
171 			case CPPUTYPE_PROPERTYVALUES:	pType = &::getCppuType( (Sequence<PropertyValues>*)0 );	break;
172 			case CPPUTYPE_BORDERLINE:	pType = &::getCppuType( (table::BorderLine*)0 );	break;
173 			case CPPUTYPE_BREAK:		pType = &::getCppuType( (style::BreakType*)0 );	break;
174 			case CPPUTYPE_GRAPHICLOC:	pType = &::getCppuType( (style::GraphicLocation*)0 );	break;
175 			case CPPUTYPE_DROPCAPFMT:	pType = &::getCppuType( (style::DropCapFormat*)0 );	break;
176 			case CPPUTYPE_LINESPACE:	pType = &::getCppuType( (style::LineSpacing*)0 );	break;
177 
178 			case CPPUTYPE_AWTSIZE:		pType = &::getCppuType( (awt::Size*)0 );	break;
179 			case CPPUTYPE_SHADOWFMT:	pType = &::getCppuType( (table::ShadowFormat*)0 );	break;
180 			case CPPUTYPE_TBLCOLSEP:	pType = &::getCppuType( (Sequence<text::TableColumnSeparator>*)0 );	break;
181 			case CPPUTYPE_PNTSEQSEQ:	pType = &::getCppuType( (PointSequenceSequence*)0 );	break;
182 			case CPPUTYPE_DOCIDXMRK:	pType = &::getCppuType( (Sequence< Reference< XDocumentIndexMark > >*)0 );	break;
183 			case CPPUTYPE_SEQINT8:		pType = &::getCppuType( (Sequence<sal_Int8>*)0 );	break;
184 			case CPPUTYPE_SEQTABSTOP:	pType = &::getCppuType( (Sequence<style::TabStop>*)0 ); break;
185 			case CPPUTYPE_SEQANCHORTYPE:pType = &::getCppuType( (Sequence<text::TextContentAnchorType>*)0 ); break;
186 			case CPPUTYPE_SEQDEPTXTFLD:	pType = &::getCppuType( (Sequence<Reference<XDependentTextField> >*)0); break;
187 			case CPPUTYPE_TXTCNTANCHOR:	pType = &::getCppuType( (text::TextContentAnchorType*)0 );	break;
188 			case CPPUTYPE_WRAPTXTMODE:	pType = &::getCppuType( (text::WrapTextMode*)0 );	break;
189 
190 			case CPPUTYPE_COLORMODE:	pType = &::getCppuType( (drawing::ColorMode*)0 ); break;
191 			case CPPUTYPE_PAGESTYLELAY:	pType = &::getCppuType( (style::PageStyleLayout*)0 ); break;
192 			case CPPUTYPE_VERTALIGN:	pType = &::getCppuType( (style::VerticalAlignment*)0 ); break;
193 			case CPPUTYPE_TABLEBORDER:	pType = &::getCppuType( (table::TableBorder*)0 ); break;
194 			case CPPUTYPE_GRFCROP:		pType = &::getCppuType( (text::GraphicCrop*)0 ); break;
195 			case CPPUTYPE_SECTFILELNK:	pType = &::getCppuType( (text::SectionFileLink*)0 ); break;
196 			case CPPUTYPE_PAGENUMTYPE: 	pType = &::getCppuType( (text::PageNumberType*)0); break;
197 			case CPPUTYPE_DATETIME:		pType = &::getCppuType( (util::DateTime*)0 ); break;
198 			case CPPUTYPE_DATE:			pType = &::getCppuType( (util::Date*)0 ); break;
199 
200 			case CPPUTYPE_REFINTERFACE:	pType = &::getCppuType( (Reference<XInterface>*)0 );	break;
201 			case CPPUTYPE_REFIDXREPL:	pType = &::getCppuType( (Reference<container::XIndexReplace>*)0 );	break;
202 			case CPPUTYPE_REFNAMECNT:	pType = &::getCppuType( (Reference<container::XNameContainer>*)0 );	break;
203 			case CPPUTYPE_REFTEXTFRAME:	pType = &::getCppuType( (Reference<text::XTextFrame>*)0 );	break;
204 			case CPPUTYPE_REFTEXTSECTION:	pType = &::getCppuType( (Reference<text::XTextSection>*)0 );	break;
205 			case CPPUTYPE_REFFOOTNOTE:	pType = &::getCppuType( (Reference<text::XFootnote>*)0 );	break;
206 			case CPPUTYPE_REFTEXT:		pType = &::getCppuType( (Reference<text::XText>*)0 );	break;
207 			case CPPUTYPE_REFTEXTCOL:	pType = &::getCppuType( (Reference<text::XTextColumns>*)0 );	break;
208 			case CPPUTYPE_REFFORBCHARS:	pType = &::getCppuType( (Reference<XForbiddenCharacters>*)0 ); break;
209 			case CPPUTYPE_REFIDXCNTNR:	pType = &::getCppuType( (Reference<XIndexContainer>*)0 ); break;
210 			case CPPUTYPE_REFTEXTCNTNT:	pType = &::getCppuType( (Reference<XTextContent>*)0 ); break;
211 			case CPPUTYPE_REFBITMAP:	pType = &::getCppuType( (Reference<awt::XBitmap>*)0 ); break;
212 			case CPPUTYPE_REFNMREPLACE:	pType = &::getCppuType( (Reference<container::XNameReplace>*)0 ); break;
213 			case CPPUTYPE_REFCELL:		pType = &::getCppuType( (Reference<table::XCell>*)0 ); break;
214 			case CPPUTYPE_REFDOCINDEX:	pType = &::getCppuType( (Reference<text::XDocumentIndex>*)0 ); break;
215 			case CPPUTYPE_REFDOCIDXMRK:	pType = &::getCppuType( (Reference<text::XDocumentIndexMark>*)0 ); break;
216 			case CPPUTYPE_REFTXTFIELD:	pType = &::getCppuType( (Reference<text::XTextField>*)0 ); break;
217 			case CPPUTYPE_REFTXTRANGE:	pType = &::getCppuType( (Reference<text::XTextRange>*)0 ); break;
218 			case CPPUTYPE_REFTXTTABLE:	pType = &::getCppuType( (Reference<text::XTextTable>*)0 ); break;
219             case CPPUTYPE_AWTPOINT:     pType = &::getCppuType( (awt::Point*)0 );    break;
220             case CPPUTYPE_REFLIBCONTAINER:  pType = &::getCppuType( (Reference< script::XLibraryContainer >*)0);    break;
221             case CPPUTYPE_OUSTRINGS:    pType = &::getCppuType( (Sequence< ::rtl::OUString >*)0);    break;
222             case CPPUTYPE_SEQANY:           pType = &::getCppuType( (Sequence< uno::Any >*)0);    break;
223             case CPPUTYPE_REFRESULTSET:     pType = &::getCppuType( (Reference< sdbc::XResultSet >*)0);    break;
224             case CPPUTYPE_REFCONNECTION:    pType = &::getCppuType( (Reference< sdbc::XConnection >*)0);    break;
225             case CPPUTYPE_REFMODEL:         pType = &::getCppuType( (Reference< frame::XModel >*)0);    break;
226             case CPPUTYPE_REFCOMPONENT:     pType = &::getCppuType( (Reference< lang::XComponent >*)0 ); break;
227             // --> OD 2004-08-09 #i28749#
228             case CPPUTYPE_TRANSFORMATIONINHORIL2R:
229             {
230                 pType = &::getCppuType( (drawing::HomogenMatrix3*)0 );
231             }
232             break;
233             // <--
234             case CPPUTYPE_SEQNAMEDVALUE:    pType = &::getCppuType( (Sequence<beans::NamedValue>*)0 ); break;
235             case CPPUTYPE_REFXGRAPHIC:      pType = &::getCppuType( (Reference< graphic::XGraphic >*)0); break;
236             case CPPUTYPE_TABLEBORDERDISTANCES:     pType = &::getCppuType( (table::TableBorderDistances*)0 ); break;
237             case CPPUTPYE_REFEMBEDDEDOBJECT:        pType = &embed::XEmbeddedObject::static_type(); break;
238 
239             //UUUU add types needed for fill style definitions in SW
240             case CPPUTYPE_RECTANGLEPOINT:   pType = &getCppuType((drawing::RectanglePoint*)0); break;
241             case CPPUTYPE_BITMAPMODE:       pType = &getCppuType((drawing::BitmapMode*)0); break;
242             case CPPUTYPE_GRADIENT:         pType = &getCppuType((awt::Gradient*)0); break;
243             case CPPUTYPE_HATCH:            pType = &getCppuType((drawing::Hatch*)0); break;
244             case CPPUTYPE_FILLSTYLE:        pType = &getCppuType((drawing::FillStyle*)0); break;
245 
246             default:
247 				OSL_ASSERT( "Unknown CPPU type" );
248 		}
249 	}
250 }
251