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 // 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 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 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 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: 131 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 > 153 const & getComponentContext() SAL_THROW( () ) { return _xContext; } 154 css::uno::Reference< css::util::XNumberFormatsSupplier > 155 const & getNumberFormatsSupplier(); 156 157 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 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 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 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: 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: 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 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 bool importImageScaleModeProperty( 451 ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName, 452 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ); 453 }; 454 455 //============================================================================== 456 class ControlImportContext : public ImportContext 457 { 458 public: 459 inline ControlImportContext( 460 DialogImport * pImport, 461 ::rtl::OUString const & rId, ::rtl::OUString const & rControlName ) 462 : ImportContext( 463 pImport, 464 css::uno::Reference< css::beans::XPropertySet >( 465 pImport->_xDialogModelFactory->createInstance( rControlName ), 466 css::uno::UNO_QUERY_THROW ), rId ) 467 {} 468 inline ~ControlImportContext() 469 { 470 _pImport->_xDialogModel->insertByName( 471 _aId, css::uno::makeAny( 472 css::uno::Reference<css::awt::XControlModel>::query( 473 _xControlModel ) ) ); 474 } 475 }; 476 477 //============================================================================== 478 class WindowElement 479 : public ControlElement 480 { 481 public: 482 virtual css::uno::Reference< css::xml::input::XElement > 483 SAL_CALL startChildElement( 484 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 485 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 486 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 487 virtual void SAL_CALL endElement() 488 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 489 490 inline WindowElement( 491 ::rtl::OUString const & rLocalName, 492 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 493 ElementBase * pParent, DialogImport * pImport ) 494 SAL_THROW( () ) 495 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 496 {} 497 }; 498 499 //============================================================================== 500 class EventElement 501 : public ElementBase 502 { 503 public: 504 virtual void SAL_CALL endElement() 505 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 506 507 inline EventElement( 508 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 509 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 510 ElementBase * pParent, DialogImport * pImport ) 511 SAL_THROW( () ) 512 : ElementBase( nUid, rLocalName, xAttributes, pParent, pImport ) 513 {} 514 }; 515 516 //============================================================================== 517 class BulletinBoardElement 518 : public ControlElement 519 { 520 public: 521 virtual css::uno::Reference< css::xml::input::XElement > 522 SAL_CALL startChildElement( 523 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 524 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 525 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 526 527 BulletinBoardElement( 528 ::rtl::OUString const & rLocalName, 529 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 530 ElementBase * pParent, DialogImport * pImport ) 531 SAL_THROW( () ); 532 }; 533 534 //============================================================================== 535 class ButtonElement 536 : public ControlElement 537 { 538 public: 539 virtual css::uno::Reference< css::xml::input::XElement > 540 SAL_CALL startChildElement( 541 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 542 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 543 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 544 virtual void SAL_CALL endElement() 545 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 546 547 inline ButtonElement( 548 ::rtl::OUString const & rLocalName, 549 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 550 ElementBase * pParent, DialogImport * pImport ) 551 SAL_THROW( () ) 552 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 553 {} 554 }; 555 556 //============================================================================== 557 class CheckBoxElement 558 : public ControlElement 559 { 560 public: 561 virtual css::uno::Reference< css::xml::input::XElement > 562 SAL_CALL startChildElement( 563 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 564 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 565 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 566 virtual void SAL_CALL endElement() 567 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 568 569 inline CheckBoxElement( 570 ::rtl::OUString const & rLocalName, 571 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 572 ElementBase * pParent, DialogImport * pImport ) 573 SAL_THROW( () ) 574 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 575 {} 576 }; 577 578 //============================================================================== 579 class ComboBoxElement 580 : public ControlElement 581 { 582 css::uno::Reference< css::xml::input::XElement > _popup; 583 public: 584 virtual css::uno::Reference< css::xml::input::XElement > 585 SAL_CALL startChildElement( 586 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 587 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 588 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 589 virtual void SAL_CALL endElement() 590 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 591 592 inline ComboBoxElement( 593 ::rtl::OUString const & rLocalName, 594 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 595 ElementBase * pParent, DialogImport * pImport ) 596 SAL_THROW( () ) 597 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 598 {} 599 }; 600 601 //============================================================================== 602 class MenuListElement 603 : public ControlElement 604 { 605 css::uno::Reference< css::xml::input::XElement > _popup; 606 public: 607 virtual css::uno::Reference< css::xml::input::XElement > 608 SAL_CALL startChildElement( 609 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 610 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 611 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 612 virtual void SAL_CALL endElement() 613 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 614 615 inline MenuListElement( 616 ::rtl::OUString const & rLocalName, 617 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 618 ElementBase * pParent, DialogImport * pImport ) 619 SAL_THROW( () ) 620 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 621 {} 622 }; 623 624 //============================================================================== 625 class RadioElement 626 : public ControlElement 627 { 628 public: 629 virtual css::uno::Reference< css::xml::input::XElement > 630 SAL_CALL startChildElement( 631 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 632 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 633 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 634 635 inline RadioElement( 636 ::rtl::OUString const & rLocalName, 637 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 638 ElementBase * pParent, DialogImport * pImport ) 639 SAL_THROW( () ) 640 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 641 {} 642 }; 643 644 //============================================================================== 645 class RadioGroupElement 646 : public ControlElement 647 { 648 ::std::vector< css::uno::Reference< css::xml::input::XElement > > _radios; 649 public: 650 virtual css::uno::Reference< css::xml::input::XElement > 651 SAL_CALL startChildElement( 652 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 653 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 654 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 655 void SAL_CALL endElement() 656 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 657 658 inline RadioGroupElement( 659 ::rtl::OUString const & rLocalName, 660 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 661 ElementBase * pParent, DialogImport * pImport ) 662 SAL_THROW( () ) 663 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 664 {} 665 }; 666 667 //============================================================================== 668 class TitledBoxElement 669 : public BulletinBoardElement 670 { 671 ::rtl::OUString _label; 672 ::std::vector< css::uno::Reference< css::xml::input::XElement > > _radios; 673 public: 674 virtual css::uno::Reference< css::xml::input::XElement > 675 SAL_CALL startChildElement( 676 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 677 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 678 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 679 virtual void SAL_CALL endElement() 680 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 681 682 inline TitledBoxElement( 683 ::rtl::OUString const & rLocalName, 684 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 685 ElementBase * pParent, DialogImport * pImport ) 686 SAL_THROW( () ) 687 : BulletinBoardElement( rLocalName, xAttributes, pParent, pImport ) 688 {} 689 }; 690 691 //============================================================================== 692 class TextElement 693 : public ControlElement 694 { 695 public: 696 virtual css::uno::Reference< css::xml::input::XElement > 697 SAL_CALL startChildElement( 698 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 699 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 700 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 701 virtual void SAL_CALL endElement() 702 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 703 704 inline TextElement( 705 ::rtl::OUString const & rLocalName, 706 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 707 ElementBase * pParent, DialogImport * pImport ) 708 SAL_THROW( () ) 709 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 710 {} 711 }; 712 //============================================================================== 713 class FixedHyperLinkElement 714 : public ControlElement 715 { 716 public: 717 virtual css::uno::Reference< css::xml::input::XElement > 718 SAL_CALL startChildElement( 719 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 720 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 721 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 722 virtual void SAL_CALL endElement() 723 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 724 725 inline FixedHyperLinkElement( 726 ::rtl::OUString const & rLocalName, 727 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 728 ElementBase * pParent, DialogImport * pImport ) 729 SAL_THROW( () ) 730 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 731 {} 732 }; 733 //============================================================================== 734 class TextFieldElement 735 : public ControlElement 736 { 737 public: 738 virtual css::uno::Reference< css::xml::input::XElement > 739 SAL_CALL startChildElement( 740 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 741 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 742 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 743 virtual void SAL_CALL endElement() 744 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 745 746 inline TextFieldElement( 747 ::rtl::OUString const & rLocalName, 748 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 749 ElementBase * pParent, DialogImport * pImport ) 750 SAL_THROW( () ) 751 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 752 {} 753 }; 754 755 //============================================================================== 756 class ImageControlElement 757 : public ControlElement 758 { 759 public: 760 virtual css::uno::Reference< css::xml::input::XElement > 761 SAL_CALL startChildElement( 762 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 763 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 764 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 765 virtual void SAL_CALL endElement() 766 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 767 768 inline ImageControlElement( 769 ::rtl::OUString const & rLocalName, 770 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 771 ElementBase * pParent, DialogImport * pImport ) 772 SAL_THROW( () ) 773 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 774 {} 775 }; 776 777 //============================================================================== 778 class FileControlElement 779 : public ControlElement 780 { 781 public: 782 virtual css::uno::Reference< css::xml::input::XElement > 783 SAL_CALL startChildElement( 784 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 785 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 786 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 787 virtual void SAL_CALL endElement() 788 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 789 790 inline FileControlElement( 791 ::rtl::OUString const & rLocalName, 792 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 793 ElementBase * pParent, DialogImport * pImport ) 794 SAL_THROW( () ) 795 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 796 {} 797 }; 798 799 //============================================================================== 800 class TreeControlElement 801 : public ControlElement 802 { 803 public: 804 virtual css::uno::Reference< css::xml::input::XElement > 805 SAL_CALL startChildElement( 806 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 807 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 808 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 809 virtual void SAL_CALL endElement() 810 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 811 812 inline TreeControlElement( 813 ::rtl::OUString const & rLocalName, 814 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 815 ElementBase * pParent, DialogImport * pImport ) 816 SAL_THROW( () ) 817 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 818 {} 819 }; 820 821 //============================================================================== 822 class CurrencyFieldElement 823 : public ControlElement 824 { 825 public: 826 virtual css::uno::Reference< css::xml::input::XElement > 827 SAL_CALL startChildElement( 828 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 829 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 830 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 831 virtual void SAL_CALL endElement() 832 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 833 834 inline CurrencyFieldElement( 835 ::rtl::OUString const & rLocalName, 836 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 837 ElementBase * pParent, DialogImport * pImport ) 838 SAL_THROW( () ) 839 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 840 {} 841 }; 842 843 //============================================================================== 844 class DateFieldElement 845 : public ControlElement 846 { 847 public: 848 virtual css::uno::Reference< css::xml::input::XElement > 849 SAL_CALL startChildElement( 850 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 851 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 852 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 853 virtual void SAL_CALL endElement() 854 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 855 856 inline DateFieldElement( 857 ::rtl::OUString const & rLocalName, 858 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 859 ElementBase * pParent, DialogImport * pImport ) 860 SAL_THROW( () ) 861 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 862 {} 863 }; 864 865 //============================================================================== 866 class NumericFieldElement 867 : public ControlElement 868 { 869 public: 870 virtual css::uno::Reference< css::xml::input::XElement > 871 SAL_CALL startChildElement( 872 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 873 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 874 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 875 virtual void SAL_CALL endElement() 876 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 877 878 inline NumericFieldElement( 879 ::rtl::OUString const & rLocalName, 880 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 881 ElementBase * pParent, DialogImport * pImport ) 882 SAL_THROW( () ) 883 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 884 {} 885 }; 886 887 //============================================================================== 888 class TimeFieldElement 889 : public ControlElement 890 { 891 public: 892 virtual css::uno::Reference< css::xml::input::XElement > 893 SAL_CALL startChildElement( 894 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 895 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 896 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 897 virtual void SAL_CALL endElement() 898 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 899 900 inline TimeFieldElement( 901 ::rtl::OUString const & rLocalName, 902 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 903 ElementBase * pParent, DialogImport * pImport ) 904 SAL_THROW( () ) 905 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 906 {} 907 }; 908 909 //============================================================================== 910 class PatternFieldElement 911 : public ControlElement 912 { 913 public: 914 virtual css::uno::Reference< css::xml::input::XElement > 915 SAL_CALL startChildElement( 916 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 917 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 918 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 919 virtual void SAL_CALL endElement() 920 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 921 922 inline PatternFieldElement( 923 ::rtl::OUString const & rLocalName, 924 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 925 ElementBase * pParent, DialogImport * pImport ) 926 SAL_THROW( () ) 927 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 928 {} 929 }; 930 931 //============================================================================== 932 class FormattedFieldElement 933 : public ControlElement 934 { 935 public: 936 virtual css::uno::Reference< css::xml::input::XElement > 937 SAL_CALL startChildElement( 938 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 939 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 940 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 941 virtual void SAL_CALL endElement() 942 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 943 944 inline FormattedFieldElement( 945 ::rtl::OUString const & rLocalName, 946 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 947 ElementBase * pParent, DialogImport * pImport ) 948 SAL_THROW( () ) 949 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 950 {} 951 }; 952 953 //============================================================================== 954 class FixedLineElement 955 : public ControlElement 956 { 957 public: 958 virtual css::uno::Reference< css::xml::input::XElement > 959 SAL_CALL startChildElement( 960 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 961 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 962 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 963 virtual void SAL_CALL endElement() 964 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 965 966 inline FixedLineElement( 967 ::rtl::OUString const & rLocalName, 968 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 969 ElementBase * pParent, DialogImport * pImport ) 970 SAL_THROW( () ) 971 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 972 {} 973 }; 974 975 //============================================================================== 976 class ScrollBarElement 977 : public ControlElement 978 { 979 public: 980 virtual css::uno::Reference< css::xml::input::XElement > 981 SAL_CALL startChildElement( 982 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 983 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 984 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 985 virtual void SAL_CALL endElement() 986 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 987 988 inline ScrollBarElement( 989 ::rtl::OUString const & rLocalName, 990 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 991 ElementBase * pParent, DialogImport * pImport ) 992 SAL_THROW( () ) 993 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 994 {} 995 }; 996 997 //============================================================================== 998 class ProgressBarElement 999 : public ControlElement 1000 { 1001 public: 1002 virtual css::uno::Reference< css::xml::input::XElement > 1003 SAL_CALL startChildElement( 1004 sal_Int32 nUid, ::rtl::OUString const & rLocalName, 1005 css::uno::Reference<css::xml::input::XAttributes> const & xAttributes ) 1006 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 1007 virtual void SAL_CALL endElement() 1008 throw (css::xml::sax::SAXException, css::uno::RuntimeException); 1009 1010 inline ProgressBarElement( 1011 ::rtl::OUString const & rLocalName, 1012 css::uno::Reference< css::xml::input::XAttributes > const & xAttributes, 1013 ElementBase * pParent, DialogImport * pImport ) 1014 SAL_THROW( () ) 1015 : ControlElement( rLocalName, xAttributes, pParent, pImport ) 1016 {} 1017 }; 1018 1019 } 1020