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 #include "common.hxx"
25 #include "misc.hxx"
26 #include <xmlscript/xmldlg_imexp.hxx>
27 #include <xmlscript/xmllib_imexp.hxx>
28 #include <xmlscript/xmlmod_imexp.hxx>
29 #include <cppuhelper/implbase1.hxx>
30 #include <com/sun/star/uno/XComponentContext.hpp>
31 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
32 #include <com/sun/star/lang/XMultiComponentFactory.hpp>
33 #include <com/sun/star/container/XNameContainer.hpp>
34 #include <com/sun/star/beans/XPropertySet.hpp>
35 #include <com/sun/star/util/XNumberFormatsSupplier.hpp>
36 #include <com/sun/star/awt/XControlModel.hpp>
37 #include <com/sun/star/awt/FontDescriptor.hpp>
38 #include <com/sun/star/awt/FontEmphasisMark.hpp>
39 #include <com/sun/star/awt/FontRelief.hpp>
40 #include <com/sun/star/xml/input/XRoot.hpp>
41 #include <vector>
42
43
44 namespace css = ::com::sun::star;
45
46 namespace xmlscript
47 {
48
49 //
toInt32(::rtl::OUString const & rStr)50 inline sal_Int32 toInt32( ::rtl::OUString const & rStr ) SAL_THROW( () )
51 {
52 sal_Int32 nVal;
53 if (rStr.getLength() > 2 && rStr[ 0 ] == '0' && rStr[ 1 ] == 'x')
54 nVal = rStr.copy( 2 ).toInt32( 16 );
55 else
56 nVal = rStr.toInt32();
57 return nVal;
58 }
59
getBoolAttr(sal_Bool * pRet,::rtl::OUString const & rAttrName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,sal_Int32 nUid)60 inline bool getBoolAttr(
61 sal_Bool * pRet, ::rtl::OUString const & rAttrName,
62 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
63 sal_Int32 nUid )
64 {
65 ::rtl::OUString aValue( xAttributes->getValueByUidName( nUid, rAttrName ) );
66 if (aValue.getLength())
67 {
68 if (aValue.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("true") ))
69 {
70 *pRet = sal_True;
71 return true;
72 }
73 else if (aValue.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("false") ))
74 {
75 *pRet = sal_False;
76 return true;
77 }
78 else
79 {
80 throw css::xml::sax::SAXException(
81 rAttrName + OUSTR(": no boolean value (true|false)!"),
82 css::uno::Reference<css::uno::XInterface>(), css::uno::Any() );
83 }
84 }
85 return false;
86 }
87
getStringAttr(::rtl::OUString * pRet,::rtl::OUString const & rAttrName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,sal_Int32 nUid)88 inline bool getStringAttr(
89 ::rtl::OUString * pRet, ::rtl::OUString const & rAttrName,
90 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
91 sal_Int32 nUid )
92 {
93 *pRet = xAttributes->getValueByUidName( nUid, rAttrName );
94 return (pRet->getLength() > 0);
95 }
96
getLongAttr(sal_Int32 * pRet,::rtl::OUString const & rAttrName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,sal_Int32 nUid)97 inline bool getLongAttr(
98 sal_Int32 * pRet, ::rtl::OUString const & rAttrName,
99 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
100 sal_Int32 nUid )
101 {
102 ::rtl::OUString aValue( xAttributes->getValueByUidName( nUid, rAttrName ) );
103 if (aValue.getLength())
104 {
105 *pRet = toInt32( aValue );
106 return true;
107 }
108 return false;
109 }
110
111 class ImportContext;
112
113 //==============================================================================
114 struct DialogImport
115 : public ::cppu::WeakImplHelper1< css::xml::input::XRoot >
116 {
117 friend class ImportContext;
118
119 css::uno::Reference< css::uno::XComponentContext > _xContext;
120 css::uno::Reference< css::util::XNumberFormatsSupplier > _xSupplier;
121
122 ::std::vector< ::rtl::OUString > _styleNames;
123 ::std::vector< css::uno::Reference< css::xml::input::XElement > > _styles;
124
125 css::uno::Reference< css::container::XNameContainer > _xDialogModel;
126 css::uno::Reference< css::lang::XMultiServiceFactory > _xDialogModelFactory;
127
128 sal_Int32 XMLNS_DIALOGS_UID, XMLNS_SCRIPT_UID;
129
130 public:
isEventElementxmlscript::DialogImport131 inline bool isEventElement(
132 sal_Int32 nUid, ::rtl::OUString const & rLocalName )
133 {
134 return ((XMLNS_SCRIPT_UID == nUid &&
135 (rLocalName.equalsAsciiL(
136 RTL_CONSTASCII_STRINGPARAM("event") ) ||
137 rLocalName.equalsAsciiL(
138 RTL_CONSTASCII_STRINGPARAM("listener-event") ))) ||
139 (XMLNS_DIALOGS_UID == nUid &&
140 rLocalName.equalsAsciiL(
141 RTL_CONSTASCII_STRINGPARAM("event") )));
142 }
143
144 void addStyle(
145 ::rtl::OUString const & rStyleId,
146 css::uno::Reference< css::xml::input::XElement > const & xStyle )
147 SAL_THROW( () );
148 css::uno::Reference< css::xml::input::XElement > getStyle(
149 ::rtl::OUString const & rStyleId ) const
150 SAL_THROW( () );
151
152 inline css::uno::Reference< css::uno::XComponentContext >
getComponentContextxmlscript::DialogImport153 const & getComponentContext() SAL_THROW( () ) { return _xContext; }
154 css::uno::Reference< css::util::XNumberFormatsSupplier >
155 const & getNumberFormatsSupplier();
156
DialogImportxmlscript::DialogImport157 inline DialogImport(
158 css::uno::Reference<css::uno::XComponentContext> const & xContext,
159 css::uno::Reference<css::container::XNameContainer>
160 const & xDialogModel )
161 SAL_THROW( () )
162 : _xContext( xContext )
163 , _xDialogModel( xDialogModel )
164 , _xDialogModelFactory( xDialogModel, css::uno::UNO_QUERY_THROW )
165 { OSL_ASSERT( _xDialogModel.is() && _xDialogModelFactory.is() &&
166 _xContext.is() ); }
167 virtual ~DialogImport()
168 SAL_THROW( () );
169
170 // XRoot
171 virtual void SAL_CALL startDocument(
172 css::uno::Reference< css::xml::input::XNamespaceMapping >
173 const & xNamespaceMapping )
174 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
175 virtual void SAL_CALL endDocument()
176 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
177 virtual void SAL_CALL processingInstruction(
178 ::rtl::OUString const & rTarget, ::rtl::OUString const & rData )
179 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
180 virtual void SAL_CALL setDocumentLocator(
181 css::uno::Reference< css::xml::sax::XLocator > const & xLocator )
182 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
183 virtual css::uno::Reference< css::xml::input::XElement >
184 SAL_CALL startRootElement(
185 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
186 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
187 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
188 };
189
190 //==============================================================================
191 class ElementBase
192 : public ::cppu::WeakImplHelper1< css::xml::input::XElement >
193 {
194 protected:
195 DialogImport * _pImport;
196 ElementBase * _pParent;
197
198 sal_Int32 _nUid;
199 ::rtl::OUString _aLocalName;
200 css::uno::Reference< css::xml::input::XAttributes > _xAttributes;
201
202 public:
203 ElementBase(
204 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
205 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
206 ElementBase * pParent, DialogImport * pImport )
207 SAL_THROW( () );
208 virtual ~ElementBase()
209 SAL_THROW( () );
210
211 // XElement
212 virtual css::uno::Reference<css::xml::input::XElement> SAL_CALL getParent()
213 throw (css::uno::RuntimeException);
214 virtual ::rtl::OUString SAL_CALL getLocalName()
215 throw (css::uno::RuntimeException);
216 virtual sal_Int32 SAL_CALL getUid()
217 throw (css::uno::RuntimeException);
218 virtual css::uno::Reference< css::xml::input::XAttributes >
219 SAL_CALL getAttributes() throw (css::uno::RuntimeException);
220 virtual void SAL_CALL ignorableWhitespace(
221 ::rtl::OUString const & rWhitespaces )
222 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
223 virtual void SAL_CALL characters( ::rtl::OUString const & rChars )
224 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
225 virtual void SAL_CALL processingInstruction(
226 ::rtl::OUString const & Target, ::rtl::OUString const & Data )
227 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
228 virtual void SAL_CALL endElement()
229 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
230 virtual css::uno::Reference< css::xml::input::XElement >
231 SAL_CALL startChildElement(
232 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
233 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
234 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
235 };
236
237 //==============================================================================
238 class StylesElement
239 : public ElementBase
240 {
241 public:
242 virtual css::uno::Reference< css::xml::input::XElement >
243 SAL_CALL startChildElement(
244 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
245 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
246 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
247
StylesElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)248 inline StylesElement(
249 ::rtl::OUString const & rLocalName,
250 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
251 ElementBase * pParent, DialogImport * pImport )
252 SAL_THROW( () )
253 : ElementBase( pImport->XMLNS_DIALOGS_UID,
254 rLocalName, xAttributes, pParent, pImport )
255 {}
256 };
257
258 //==============================================================================
259 class StyleElement
260 : public ElementBase
261 {
262 sal_Int32 _backgroundColor;
263 sal_Int32 _textColor;
264 sal_Int32 _textLineColor;
265 sal_Int16 _border;
266 sal_Int32 _borderColor;
267 css::awt::FontDescriptor _descr;
268 sal_Int16 _fontRelief;
269 sal_Int16 _fontEmphasisMark;
270 sal_Int32 _fillColor;
271 sal_Int16 _visualEffect;
272
273 // current highest mask: 0x40
274 short _inited, _hasValue;
275
276 void setFontProperties(
277 css::uno::Reference< css::beans::XPropertySet > const & xProps );
278
279 public:
280 virtual css::uno::Reference< css::xml::input::XElement >
281 SAL_CALL startChildElement(
282 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
283 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
284 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
285 virtual void SAL_CALL endElement()
286 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
287
288 bool importTextColorStyle(
289 css::uno::Reference< css::beans::XPropertySet > const & xProps );
290 bool importTextLineColorStyle(
291 css::uno::Reference< css::beans::XPropertySet > const & xProps );
292 bool importFillColorStyle(
293 css::uno::Reference< css::beans::XPropertySet > const & xProps );
294 bool importBackgroundColorStyle(
295 css::uno::Reference< css::beans::XPropertySet > const & xProps );
296 bool importFontStyle(
297 css::uno::Reference< css::beans::XPropertySet > const & xProps );
298 bool importBorderStyle(
299 css::uno::Reference< css::beans::XPropertySet > const & xProps );
300 bool importVisualEffectStyle(
301 css::uno::Reference< css::beans::XPropertySet > const & xProps );
302
StyleElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)303 inline StyleElement(
304 ::rtl::OUString const & rLocalName,
305 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
306 ElementBase * pParent, DialogImport * pImport )
307 SAL_THROW( () )
308 : ElementBase( pImport->XMLNS_DIALOGS_UID,
309 rLocalName, xAttributes, pParent, pImport )
310 , _fontRelief( css::awt::FontRelief::NONE )
311 , _fontEmphasisMark( css::awt::FontEmphasisMark::NONE )
312 , _inited( 0 )
313 , _hasValue( 0 )
314 {}
315 };
316
317 //==============================================================================
318 class MenuPopupElement
319 : public ElementBase
320 {
321 ::std::vector< ::rtl::OUString > _itemValues;
322 ::std::vector< sal_Int16 > _itemSelected;
323 public:
324 css::uno::Sequence< ::rtl::OUString > getItemValues();
325 css::uno::Sequence< sal_Int16 > getSelectedItems();
326
327 virtual css::uno::Reference< css::xml::input::XElement >
328 SAL_CALL startChildElement(
329 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
330 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
331 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
332
MenuPopupElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)333 inline MenuPopupElement(
334 ::rtl::OUString const & rLocalName,
335 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
336 ElementBase * pParent, DialogImport * pImport )
337 SAL_THROW( () )
338 : ElementBase( pImport->XMLNS_DIALOGS_UID,
339 rLocalName, xAttributes, pParent, pImport )
340 {}
341 };
342
343 //==============================================================================
344 class ControlElement
345 : public ElementBase
346 {
347 friend class EventElement;
348
349 protected:
350 sal_Int32 _nBasePosX, _nBasePosY;
351
352 ::std::vector< css::uno::Reference< css::xml::input::XElement > > _events;
353
354 ::rtl::OUString getControlId(
355 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
356 css::uno::Reference< css::xml::input::XElement > getStyle(
357 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
358 public:
getEvents()359 ::std::vector<css::uno::Reference< css::xml::input::XElement> > *getEvents()
360 SAL_THROW( () ) { return &_events; }
361
362 ControlElement(
363 ::rtl::OUString const & rLocalName,
364 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
365 ElementBase * pParent, DialogImport * pImport )
366 SAL_THROW( () );
367 };
368
369 //==============================================================================
370 class ImportContext
371 {
372 protected:
373 DialogImport * _pImport;
374 css::uno::Reference< css::beans::XPropertySet > _xControlModel;
375 ::rtl::OUString _aId;
376
377 public:
ImportContext(DialogImport * pImport,css::uno::Reference<css::beans::XPropertySet> const & xControlModel_,::rtl::OUString const & id)378 inline ImportContext(
379 DialogImport * pImport,
380 css::uno::Reference< css::beans::XPropertySet > const & xControlModel_,
381 ::rtl::OUString const & id )
382 : _pImport( pImport ),
383 _xControlModel( xControlModel_ ),
384 _aId( id )
385 { OSL_ASSERT( _xControlModel.is() ); }
386
getControlModel()387 inline css::uno::Reference< css::beans::XPropertySet > getControlModel()
388 { return _xControlModel; }
389
390 void importDefaults(
391 sal_Int32 nBaseX, sal_Int32 nBaseY,
392 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
393 bool supportPrintable = true );
394 void importEvents(
395 ::std::vector< css::uno::Reference< css::xml::input::XElement > >
396 const & rEvents );
397
398 bool importStringProperty(
399 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
400 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
401 bool importDoubleProperty(
402 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
403 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
404 bool importBooleanProperty(
405 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
406 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
407 bool importShortProperty(
408 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
409 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
410 bool importLongProperty(
411 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
412 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
413 bool importLongProperty(
414 sal_Int32 nOffset,
415 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
416 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
417 bool importHexLongProperty(
418 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
419 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
420 bool importAlignProperty(
421 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
422 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
423 bool importVerticalAlignProperty(
424 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
425 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
426 bool importImageAlignProperty(
427 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
428 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
429 bool importImagePositionProperty(
430 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
431 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
432 bool importDateFormatProperty(
433 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
434 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
435 bool importTimeFormatProperty(
436 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
437 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
438 bool importOrientationProperty(
439 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
440 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
441 bool importButtonTypeProperty(
442 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
443 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
444 bool importLineEndFormatProperty(
445 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
446 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
447 bool importSelectionTypeProperty(
448 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
449 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
450 };
451
452 //==============================================================================
453 class ControlImportContext : public ImportContext
454 {
455 public:
ControlImportContext(DialogImport * pImport,::rtl::OUString const & rId,::rtl::OUString const & rControlName)456 inline ControlImportContext(
457 DialogImport * pImport,
458 ::rtl::OUString const & rId, ::rtl::OUString const & rControlName )
459 : ImportContext(
460 pImport,
461 css::uno::Reference< css::beans::XPropertySet >(
462 pImport->_xDialogModelFactory->createInstance( rControlName ),
463 css::uno::UNO_QUERY_THROW ), rId )
464 {}
~ControlImportContext()465 inline ~ControlImportContext()
466 {
467 _pImport->_xDialogModel->insertByName(
468 _aId, css::uno::makeAny(
469 css::uno::Reference<css::awt::XControlModel>::query(
470 _xControlModel ) ) );
471 }
472 };
473
474 //==============================================================================
475 class WindowElement
476 : public ControlElement
477 {
478 public:
479 virtual css::uno::Reference< css::xml::input::XElement >
480 SAL_CALL startChildElement(
481 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
482 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
483 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
484 virtual void SAL_CALL endElement()
485 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
486
WindowElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)487 inline WindowElement(
488 ::rtl::OUString const & rLocalName,
489 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
490 ElementBase * pParent, DialogImport * pImport )
491 SAL_THROW( () )
492 : ControlElement( rLocalName, xAttributes, pParent, pImport )
493 {}
494 };
495
496 //==============================================================================
497 class EventElement
498 : public ElementBase
499 {
500 public:
501 virtual void SAL_CALL endElement()
502 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
503
EventElement(sal_Int32 nUid,::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)504 inline EventElement(
505 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
506 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
507 ElementBase * pParent, DialogImport * pImport )
508 SAL_THROW( () )
509 : ElementBase( nUid, rLocalName, xAttributes, pParent, pImport )
510 {}
511 };
512
513 //==============================================================================
514 class BulletinBoardElement
515 : public ControlElement
516 {
517 public:
518 virtual css::uno::Reference< css::xml::input::XElement >
519 SAL_CALL startChildElement(
520 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
521 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
522 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
523
524 BulletinBoardElement(
525 ::rtl::OUString const & rLocalName,
526 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
527 ElementBase * pParent, DialogImport * pImport )
528 SAL_THROW( () );
529 };
530
531 //==============================================================================
532 class ButtonElement
533 : public ControlElement
534 {
535 public:
536 virtual css::uno::Reference< css::xml::input::XElement >
537 SAL_CALL startChildElement(
538 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
539 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
540 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
541 virtual void SAL_CALL endElement()
542 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
543
ButtonElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)544 inline ButtonElement(
545 ::rtl::OUString const & rLocalName,
546 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
547 ElementBase * pParent, DialogImport * pImport )
548 SAL_THROW( () )
549 : ControlElement( rLocalName, xAttributes, pParent, pImport )
550 {}
551 };
552
553 //==============================================================================
554 class CheckBoxElement
555 : public ControlElement
556 {
557 public:
558 virtual css::uno::Reference< css::xml::input::XElement >
559 SAL_CALL startChildElement(
560 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
561 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
562 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
563 virtual void SAL_CALL endElement()
564 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
565
CheckBoxElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)566 inline CheckBoxElement(
567 ::rtl::OUString const & rLocalName,
568 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
569 ElementBase * pParent, DialogImport * pImport )
570 SAL_THROW( () )
571 : ControlElement( rLocalName, xAttributes, pParent, pImport )
572 {}
573 };
574
575 //==============================================================================
576 class ComboBoxElement
577 : public ControlElement
578 {
579 css::uno::Reference< css::xml::input::XElement > _popup;
580 public:
581 virtual css::uno::Reference< css::xml::input::XElement >
582 SAL_CALL startChildElement(
583 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
584 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
585 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
586 virtual void SAL_CALL endElement()
587 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
588
ComboBoxElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)589 inline ComboBoxElement(
590 ::rtl::OUString const & rLocalName,
591 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
592 ElementBase * pParent, DialogImport * pImport )
593 SAL_THROW( () )
594 : ControlElement( rLocalName, xAttributes, pParent, pImport )
595 {}
596 };
597
598 //==============================================================================
599 class MenuListElement
600 : public ControlElement
601 {
602 css::uno::Reference< css::xml::input::XElement > _popup;
603 public:
604 virtual css::uno::Reference< css::xml::input::XElement >
605 SAL_CALL startChildElement(
606 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
607 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
608 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
609 virtual void SAL_CALL endElement()
610 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
611
MenuListElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)612 inline MenuListElement(
613 ::rtl::OUString const & rLocalName,
614 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
615 ElementBase * pParent, DialogImport * pImport )
616 SAL_THROW( () )
617 : ControlElement( rLocalName, xAttributes, pParent, pImport )
618 {}
619 };
620
621 //==============================================================================
622 class RadioElement
623 : public ControlElement
624 {
625 public:
626 virtual css::uno::Reference< css::xml::input::XElement >
627 SAL_CALL startChildElement(
628 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
629 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
630 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
631
RadioElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)632 inline RadioElement(
633 ::rtl::OUString const & rLocalName,
634 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
635 ElementBase * pParent, DialogImport * pImport )
636 SAL_THROW( () )
637 : ControlElement( rLocalName, xAttributes, pParent, pImport )
638 {}
639 };
640
641 //==============================================================================
642 class RadioGroupElement
643 : public ControlElement
644 {
645 ::std::vector< css::uno::Reference< css::xml::input::XElement > > _radios;
646 public:
647 virtual css::uno::Reference< css::xml::input::XElement >
648 SAL_CALL startChildElement(
649 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
650 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
651 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
652 void SAL_CALL endElement()
653 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
654
RadioGroupElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)655 inline RadioGroupElement(
656 ::rtl::OUString const & rLocalName,
657 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
658 ElementBase * pParent, DialogImport * pImport )
659 SAL_THROW( () )
660 : ControlElement( rLocalName, xAttributes, pParent, pImport )
661 {}
662 };
663
664 //==============================================================================
665 class TitledBoxElement
666 : public BulletinBoardElement
667 {
668 ::rtl::OUString _label;
669 ::std::vector< css::uno::Reference< css::xml::input::XElement > > _radios;
670 public:
671 virtual css::uno::Reference< css::xml::input::XElement >
672 SAL_CALL startChildElement(
673 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
674 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
675 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
676 virtual void SAL_CALL endElement()
677 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
678
TitledBoxElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)679 inline TitledBoxElement(
680 ::rtl::OUString const & rLocalName,
681 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
682 ElementBase * pParent, DialogImport * pImport )
683 SAL_THROW( () )
684 : BulletinBoardElement( rLocalName, xAttributes, pParent, pImport )
685 {}
686 };
687
688 //==============================================================================
689 class TextElement
690 : public ControlElement
691 {
692 public:
693 virtual css::uno::Reference< css::xml::input::XElement >
694 SAL_CALL startChildElement(
695 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
696 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
697 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
698 virtual void SAL_CALL endElement()
699 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
700
TextElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)701 inline TextElement(
702 ::rtl::OUString const & rLocalName,
703 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
704 ElementBase * pParent, DialogImport * pImport )
705 SAL_THROW( () )
706 : ControlElement( rLocalName, xAttributes, pParent, pImport )
707 {}
708 };
709 //==============================================================================
710 class FixedHyperLinkElement
711 : public ControlElement
712 {
713 public:
714 virtual css::uno::Reference< css::xml::input::XElement >
715 SAL_CALL startChildElement(
716 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
717 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
718 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
719 virtual void SAL_CALL endElement()
720 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
721
FixedHyperLinkElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)722 inline FixedHyperLinkElement(
723 ::rtl::OUString const & rLocalName,
724 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
725 ElementBase * pParent, DialogImport * pImport )
726 SAL_THROW( () )
727 : ControlElement( rLocalName, xAttributes, pParent, pImport )
728 {}
729 };
730 //==============================================================================
731 class TextFieldElement
732 : public ControlElement
733 {
734 public:
735 virtual css::uno::Reference< css::xml::input::XElement >
736 SAL_CALL startChildElement(
737 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
738 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
739 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
740 virtual void SAL_CALL endElement()
741 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
742
TextFieldElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)743 inline TextFieldElement(
744 ::rtl::OUString const & rLocalName,
745 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
746 ElementBase * pParent, DialogImport * pImport )
747 SAL_THROW( () )
748 : ControlElement( rLocalName, xAttributes, pParent, pImport )
749 {}
750 };
751
752 //==============================================================================
753 class ImageControlElement
754 : public ControlElement
755 {
756 public:
757 virtual css::uno::Reference< css::xml::input::XElement >
758 SAL_CALL startChildElement(
759 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
760 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
761 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
762 virtual void SAL_CALL endElement()
763 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
764
ImageControlElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)765 inline ImageControlElement(
766 ::rtl::OUString const & rLocalName,
767 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
768 ElementBase * pParent, DialogImport * pImport )
769 SAL_THROW( () )
770 : ControlElement( rLocalName, xAttributes, pParent, pImport )
771 {}
772 };
773
774 //==============================================================================
775 class FileControlElement
776 : public ControlElement
777 {
778 public:
779 virtual css::uno::Reference< css::xml::input::XElement >
780 SAL_CALL startChildElement(
781 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
782 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
783 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
784 virtual void SAL_CALL endElement()
785 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
786
FileControlElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)787 inline FileControlElement(
788 ::rtl::OUString const & rLocalName,
789 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
790 ElementBase * pParent, DialogImport * pImport )
791 SAL_THROW( () )
792 : ControlElement( rLocalName, xAttributes, pParent, pImport )
793 {}
794 };
795
796 //==============================================================================
797 class TreeControlElement
798 : public ControlElement
799 {
800 public:
801 virtual css::uno::Reference< css::xml::input::XElement >
802 SAL_CALL startChildElement(
803 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
804 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
805 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
806 virtual void SAL_CALL endElement()
807 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
808
TreeControlElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)809 inline TreeControlElement(
810 ::rtl::OUString const & rLocalName,
811 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
812 ElementBase * pParent, DialogImport * pImport )
813 SAL_THROW( () )
814 : ControlElement( rLocalName, xAttributes, pParent, pImport )
815 {}
816 };
817
818 //==============================================================================
819 class CurrencyFieldElement
820 : public ControlElement
821 {
822 public:
823 virtual css::uno::Reference< css::xml::input::XElement >
824 SAL_CALL startChildElement(
825 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
826 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
827 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
828 virtual void SAL_CALL endElement()
829 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
830
CurrencyFieldElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)831 inline CurrencyFieldElement(
832 ::rtl::OUString const & rLocalName,
833 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
834 ElementBase * pParent, DialogImport * pImport )
835 SAL_THROW( () )
836 : ControlElement( rLocalName, xAttributes, pParent, pImport )
837 {}
838 };
839
840 //==============================================================================
841 class DateFieldElement
842 : public ControlElement
843 {
844 public:
845 virtual css::uno::Reference< css::xml::input::XElement >
846 SAL_CALL startChildElement(
847 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
848 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
849 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
850 virtual void SAL_CALL endElement()
851 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
852
DateFieldElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)853 inline DateFieldElement(
854 ::rtl::OUString const & rLocalName,
855 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
856 ElementBase * pParent, DialogImport * pImport )
857 SAL_THROW( () )
858 : ControlElement( rLocalName, xAttributes, pParent, pImport )
859 {}
860 };
861
862 //==============================================================================
863 class NumericFieldElement
864 : public ControlElement
865 {
866 public:
867 virtual css::uno::Reference< css::xml::input::XElement >
868 SAL_CALL startChildElement(
869 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
870 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
871 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
872 virtual void SAL_CALL endElement()
873 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
874
NumericFieldElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)875 inline NumericFieldElement(
876 ::rtl::OUString const & rLocalName,
877 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
878 ElementBase * pParent, DialogImport * pImport )
879 SAL_THROW( () )
880 : ControlElement( rLocalName, xAttributes, pParent, pImport )
881 {}
882 };
883
884 //==============================================================================
885 class TimeFieldElement
886 : public ControlElement
887 {
888 public:
889 virtual css::uno::Reference< css::xml::input::XElement >
890 SAL_CALL startChildElement(
891 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
892 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
893 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
894 virtual void SAL_CALL endElement()
895 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
896
TimeFieldElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)897 inline TimeFieldElement(
898 ::rtl::OUString const & rLocalName,
899 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
900 ElementBase * pParent, DialogImport * pImport )
901 SAL_THROW( () )
902 : ControlElement( rLocalName, xAttributes, pParent, pImport )
903 {}
904 };
905
906 //==============================================================================
907 class PatternFieldElement
908 : public ControlElement
909 {
910 public:
911 virtual css::uno::Reference< css::xml::input::XElement >
912 SAL_CALL startChildElement(
913 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
914 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
915 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
916 virtual void SAL_CALL endElement()
917 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
918
PatternFieldElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)919 inline PatternFieldElement(
920 ::rtl::OUString const & rLocalName,
921 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
922 ElementBase * pParent, DialogImport * pImport )
923 SAL_THROW( () )
924 : ControlElement( rLocalName, xAttributes, pParent, pImport )
925 {}
926 };
927
928 //==============================================================================
929 class FormattedFieldElement
930 : public ControlElement
931 {
932 public:
933 virtual css::uno::Reference< css::xml::input::XElement >
934 SAL_CALL startChildElement(
935 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
936 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
937 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
938 virtual void SAL_CALL endElement()
939 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
940
FormattedFieldElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)941 inline FormattedFieldElement(
942 ::rtl::OUString const & rLocalName,
943 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
944 ElementBase * pParent, DialogImport * pImport )
945 SAL_THROW( () )
946 : ControlElement( rLocalName, xAttributes, pParent, pImport )
947 {}
948 };
949
950 //==============================================================================
951 class FixedLineElement
952 : public ControlElement
953 {
954 public:
955 virtual css::uno::Reference< css::xml::input::XElement >
956 SAL_CALL startChildElement(
957 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
958 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
959 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
960 virtual void SAL_CALL endElement()
961 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
962
FixedLineElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)963 inline FixedLineElement(
964 ::rtl::OUString const & rLocalName,
965 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
966 ElementBase * pParent, DialogImport * pImport )
967 SAL_THROW( () )
968 : ControlElement( rLocalName, xAttributes, pParent, pImport )
969 {}
970 };
971
972 //==============================================================================
973 class ScrollBarElement
974 : public ControlElement
975 {
976 public:
977 virtual css::uno::Reference< css::xml::input::XElement >
978 SAL_CALL startChildElement(
979 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
980 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
981 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
982 virtual void SAL_CALL endElement()
983 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
984
ScrollBarElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)985 inline ScrollBarElement(
986 ::rtl::OUString const & rLocalName,
987 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
988 ElementBase * pParent, DialogImport * pImport )
989 SAL_THROW( () )
990 : ControlElement( rLocalName, xAttributes, pParent, pImport )
991 {}
992 };
993
994 //==============================================================================
995 class ProgressBarElement
996 : public ControlElement
997 {
998 public:
999 virtual css::uno::Reference< css::xml::input::XElement >
1000 SAL_CALL startChildElement(
1001 sal_Int32 nUid, ::rtl::OUString const & rLocalName,
1002 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
1003 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
1004 virtual void SAL_CALL endElement()
1005 throw (css::xml::sax::SAXException, css::uno::RuntimeException);
1006
ProgressBarElement(::rtl::OUString const & rLocalName,css::uno::Reference<css::xml::input::XAttributes> const & xAttributes,ElementBase * pParent,DialogImport * pImport)1007 inline ProgressBarElement(
1008 ::rtl::OUString const & rLocalName,
1009 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
1010 ElementBase * pParent, DialogImport * pImport )
1011 SAL_THROW( () )
1012 : ControlElement( rLocalName, xAttributes, pParent, pImport )
1013 {}
1014 };
1015
1016 }
1017