summaryrefslogtreecommitdiff
path: root/patches/test/vba/UserFormObjectModuleEventsSuperBigPatch.diff
diff options
context:
space:
mode:
Diffstat (limited to 'patches/test/vba/UserFormObjectModuleEventsSuperBigPatch.diff')
-rw-r--r--patches/test/vba/UserFormObjectModuleEventsSuperBigPatch.diff840
1 files changed, 0 insertions, 840 deletions
diff --git a/patches/test/vba/UserFormObjectModuleEventsSuperBigPatch.diff b/patches/test/vba/UserFormObjectModuleEventsSuperBigPatch.diff
deleted file mode 100644
index f941efdd7..000000000
--- a/patches/test/vba/UserFormObjectModuleEventsSuperBigPatch.diff
+++ /dev/null
@@ -1,840 +0,0 @@
---- svx/source/msfilter/svxmsbas.cxx 2008-05-13 16:25:54.000000000 +0100
-+++ svx/source/msfilter/svxmsbas.cxx 2008-05-13 16:29:44.000000000 +0100
-@@ -404,13 +404,16 @@ BOOL SvxImportMSVBasic::ImportCode_Impl(
- aSource = modeTypeComment + aSource;
-
- Any aSourceAny;
-- if ( !bAsComment && ( xVBAObjectProvider.is() && mType == ModuleType::Document ) )
-+ if ( !bAsComment && ( xVBAObjectProvider.is() && mType == ModuleType::Document ) || mType == ModuleType::Form )
- {
- script::ModuleInfo sModuleInfo;
- sModuleInfo.ModuleName = aModName;
- sModuleInfo.ModuleSource = aSource;
- sModuleInfo.ModuleType = mType;
-- sModuleInfo.ModuleObjectProvider.set( xVBAObjectProvider, UNO_QUERY );
-+ if ( mType == ModuleType::Form )
-+ sModuleInfo.ModuleObjectProvider.set( rDocSh.GetModel(), UNO_QUERY );
-+ else
-+ sModuleInfo.ModuleObjectProvider.set( xVBAObjectProvider, UNO_QUERY );
- aSourceAny <<= sModuleInfo;
- }
- else
---- basic/inc/basic/sbdef.hxx 2008-05-13 16:25:54.000000000 +0100
-+++ basic/inc/basic/sbdef.hxx 2008-05-13 16:31:44.000000000 +0100
-@@ -99,6 +99,8 @@ void setBasicWatchMode( bool bOn );
- #define SBX_HINT_BASICSTART SFX_HINT_USER04
- #define SBX_HINT_BASICSTOP SFX_HINT_USER05
-
-+#define SBXID_USERFORMMOD 0x6d64 // Special userform Module
-+
- // #115826
- enum PropertyMode
- {
---- basic/source/classes/sb.cxx 2008-05-13 16:25:54.000000000 +0100
-+++ basic/source/classes/sb.cxx 2008-05-13 16:37:22.000000000 +0100
-@@ -770,6 +770,9 @@ SbModule* StarBASIC::MakeObjModule( cons
- case ModuleType::Document:
- p = new SbObjModule( rName, mInfo );
- break;
-+ case ModuleType::Form:
-+ p = new SbUserFormModule( rName, mInfo );
-+ break;
- default:
- break; //
- }
-@@ -953,7 +956,8 @@ SbxVariable* StarBASIC::Find( const Stri
- }
- pNamed = p;
- }
-- if ( p->GetSbxId() == SBXID_DOCUMENTMOD )
-+ if ( p->GetSbxId() == SBXID_DOCUMENTMOD
-+ || p->GetSbxId() == SBXID_USERFORMMOD )
- continue;
- // Sonst testen, ob das Element vorhanden ist
- // GBLSEARCH-Flag rausnehmen (wg. Rekursion)
---- basic/source/classes/sbxmod.cxx 2008-05-13 16:25:54.000000000 +0100
-+++ basic/source/classes/sbxmod.cxx 2008-05-13 16:43:53.000000000 +0100
-@@ -96,6 +96,7 @@ SV_IMPL_VARARR(SbiBreakpoints,USHORT)
-
-
- SV_IMPL_VARARR(HighlightPortions, HighlightPortion)
-+TYPEINIT1(SbUserFormModule,SbObjModule)
-
- // ##########################################################################
- // ACHTUNG!!! Alle Woerter dieser Tabelle müssen KLEIN geschrieben werden!!!
-@@ -2226,3 +2227,199 @@ SbObjModule::InitObject()
- //OSL_TRACE("Object is not exist." );
- }
- }
-+
-+typedef ::cppu::WeakImplHelper1< awt::XTopWindowListener > EventListener_BASE;
-+
-+class FormObjEventListenerImpl : public EventListener_BASE
-+{
-+ SbUserFormModule* mpUserForm;
-+ uno::Reference< lang::XComponent > mxComponent;
-+ bool mbDisposed;
-+ FormObjEventListenerImpl(); // not defined
-+ FormObjEventListenerImpl(const FormObjEventListenerImpl&); // not defined
-+public:
-+ FormObjEventListenerImpl( SbUserFormModule* pUserForm, const uno::Reference< lang::XComponent >& xComponent ) : mpUserForm( pUserForm ), mxComponent( xComponent) , mbDisposed( false )
-+ {
-+ if ( mxComponent.is() );
-+ {
-+ uno::Reference< awt::XTopWindow > xList( mxComponent, uno::UNO_QUERY_THROW );;
-+ //uno::Reference< awt::XWindow > xList( mxComponent, uno::UNO_QUERY_THROW );;
-+ OSL_TRACE("*********** Registering the listener");
-+ xList->addTopWindowListener( this );
-+ }
-+ }
-+
-+ ~FormObjEventListenerImpl()
-+ {
-+ removeListener();
-+ }
-+ void removeListener()
-+ {
-+ try
-+ {
-+ if ( mxComponent.is() && !mbDisposed )
-+ {
-+ uno::Reference< awt::XTopWindow > xList( mxComponent, uno::UNO_QUERY_THROW );;
-+ OSL_TRACE("*********** Removing the listener");
-+ xList->removeTopWindowListener( this );
-+ mxComponent = NULL;
-+ }
-+ }
-+ catch( uno::Exception& ) {}
-+ }
-+ virtual void SAL_CALL windowOpened( const lang::EventObject& /*e*/ ) throw (uno::RuntimeException) {}
-+ virtual void SAL_CALL windowClosing( const lang::EventObject& /*e*/ ) throw (uno::RuntimeException) {}
-+ virtual void SAL_CALL windowClosed( const lang::EventObject& /*e*/ ) throw (uno::RuntimeException) {}
-+ virtual void SAL_CALL windowMinimized( const lang::EventObject& /*e*/ ) throw (uno::RuntimeException) {}
-+ virtual void SAL_CALL windowNormalized( const lang::EventObject& /*e*/ ) throw (uno::RuntimeException){}
-+ virtual void SAL_CALL windowActivated( const lang::EventObject& /*e*/ ) throw (uno::RuntimeException)
-+ {
-+ if ( mpUserForm )
-+ mpUserForm->triggerActivateEvent();
-+ }
-+
-+ virtual void SAL_CALL windowDeactivated( const lang::EventObject& /*e*/ ) throw (uno::RuntimeException)
-+ {
-+ if ( mpUserForm )
-+ mpUserForm->triggerDeActivateEvent();
-+ }
-+
-+
-+ virtual void SAL_CALL disposing( const lang::EventObject& Source ) throw (uno::RuntimeException)
-+ {
-+ OSL_TRACE("** Userform/Dialog disposing");
-+ mbDisposed = true;
-+ uno::Any aSource;
-+ aSource <<= Source;
-+ mxComponent = NULL;
-+ if ( mpUserForm )
-+ mpUserForm->ResetApiObj();
-+ }
-+};
-+
-+SbUserFormModule::SbUserFormModule( const rtl::OUString& rName, const com::sun::star::script::ModuleInfo& mInfo )
-+ :SbObjModule( rName, mInfo ), m_bUnloaded( true )
-+{
-+}
-+
-+void SbUserFormModule::ResetApiObj( bool bUnload )
-+{
-+ if ( m_xDialog.is() ) // probably someone close the dialog window
-+ {
-+ triggerTerminateEvent();
-+ }
-+ pDocObject = NULL;
-+ m_xDialog = NULL;
-+}
-+
-+void SbUserFormModule::triggerMethod( const String& aMethodToRun )
-+{
-+ OSL_TRACE("*** trigger %s ***", rtl::OUStringToOString( aMethodToRun, RTL_TEXTENCODING_UTF8 ).getStr() );
-+ // Search method
-+ SbxVariable* pMeth = SbObjModule::Find( aMethodToRun, SbxCLASS_METHOD );
-+ if( pMeth )
-+ {
-+ SbxValues aVals;
-+ pMeth->Get( aVals );
-+ }
-+}
-+
-+void SbUserFormModule::triggerActivateEvent( void )
-+{
-+ OSL_TRACE("**** entering SbUserFormModule::triggerActivate");
-+ triggerMethod( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("UserForm_activate") ) );
-+ OSL_TRACE("**** leaving SbUserFormModule::triggerActivate");
-+}
-+
-+void SbUserFormModule::triggerDeActivateEvent( void )
-+{
-+ OSL_TRACE("**** SbUserFormModule::triggerDeActivate");
-+ triggerMethod( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Userform_DeActivate") ) );
-+}
-+
-+void SbUserFormModule::triggerInitializeEvent( void )
-+
-+{
-+ OSL_TRACE("**** SbUserFormModule::triggerInitializeEvent");
-+ static String aInitMethodName( RTL_CONSTASCII_USTRINGPARAM("Userform_Initialize") );
-+ triggerMethod( aInitMethodName );
-+
-+}
-+
-+void SbUserFormModule::triggerTerminateEvent( void )
-+{
-+ OSL_TRACE("**** SbUserFormModule::triggerTerminateEvent");
-+ static String aTermMethodName( RTL_CONSTASCII_USTRINGPARAM("Userform_Terminate") );
-+ triggerMethod( aTermMethodName );
-+}
-+
-+void SbUserFormModule::load()
-+{
-+ OSL_TRACE("** load() ");
-+ GetObject(); // forces a load
-+}
-+void SbUserFormModule::Unload()
-+{
-+ OSL_TRACE("** Unload() ");
-+ if ( m_xDialog.is() )
-+ {
-+ triggerTerminateEvent();
-+ }
-+ // Search method
-+ SbxVariable* pMeth = SbObjModule::Find( String( RTL_CONSTASCII_USTRINGPARAM( "UnloadObject" ) ), SbxCLASS_METHOD );
-+ if( pMeth )
-+ {
-+ OSL_TRACE("Attempting too run the UnloadObjectMethod");
-+ m_xDialog = NULL; //release ref to the uno object
-+ SbxValues aVals;
-+ pMeth->Get( aVals );
-+ }
-+}
-+
-+void SbUserFormModule::InitObject()
-+{
-+ try
-+ {
-+
-+ uno::Reference< frame::XModel > xModel( m_mInfo.ModuleObjectProvider, uno::UNO_QUERY_THROW );
-+ if ( xModel.is() )
-+ {
-+ uno::Reference< lang::XMultiServiceFactory > xFactory = comphelper::getProcessServiceFactory();
-+ uno::Sequence< uno::Any > aArgs(1);
-+ aArgs[ 0 ] <<= xModel;
-+ rtl::OUString sDialogUrl( RTL_CONSTASCII_USTRINGPARAM("vnd.sun.star.script:" ) );
-+ sDialogUrl = sDialogUrl.concat( sStandard ).concat( rtl::OUString( '.') ).concat( m_mInfo.ModuleName ).concat( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("?location=document") ) );
-+
-+ uno::Reference< awt::XDialogProvider > xProvider( xFactory->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.DialogProvider")), aArgs ), uno::UNO_QUERY_THROW );
-+ m_xDialog = xProvider->createDialog( sDialogUrl );
-+
-+ // create vba api object
-+ aArgs.realloc( 3 );
-+ aArgs[ 0 ] = uno::Any();
-+ aArgs[ 1 ] <<= m_xDialog;
-+ aArgs[ 2 ] <<= xModel;
-+ pDocObject = new SbUnoObject( GetName(), uno::makeAny( xFactory->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.excel.UserForm")), aArgs ) ) );
-+ uno::Reference< lang::XComponent > xComponent( aArgs[ 1 ], uno::UNO_QUERY_THROW );
-+ // remove old listener if it exists
-+ FormObjEventListenerImpl* pFormListener = dynamic_cast< FormObjEventListenerImpl* >( m_DialogListener.get() );
-+ if ( pFormListener )
-+ pFormListener->removeListener();
-+ m_DialogListener = new FormObjEventListenerImpl( this, xComponent );
-+
-+ // trigger initialise event
-+ triggerInitializeEvent();
-+ }
-+ }
-+ catch( uno::Exception& e )
-+ {
-+ }
-+
-+}
-+
-+SbxVariable*
-+SbUserFormModule::Find( const XubString& rName, SbxClassType t )
-+{
-+ return SbObjModule::Find( rName, t );
-+}
-+
-+
---- basic/inc/basic/sbobjmod.hxx 2008-05-13 16:25:54.000000000 +0100
-+++ basic/inc/basic/sbobjmod.hxx 2008-05-13 16:46:58.000000000 +0100
-@@ -61,6 +61,31 @@ public:
- virtual BOOL IsClass( const String& );
- };
-
-+class SbUserFormModule : public SbObjModule
-+{
-+ css::uno::Reference<css::lang::XEventListener> m_DialogListener;
-+ css::uno::Reference<css::awt::XDialog> m_xDialog;
-+ String sFormName;
-+
-+ bool m_bUnloaded;
-+ static USHORT nHideHash;
-+protected:
-+ virtual void InitObject();
-+public:
-+ TYPEINFO();
-+ SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_USERFORMMOD,2);
-+ SbUserFormModule( const rtl::OUString& rName, const com::sun::star::script::ModuleInfo& mInfo );
-+ virtual SbxVariable* Find( const XubString& rName, SbxClassType t );
-+ void ResetApiObj( bool bUnloaded = true );
-+ void Unload();
-+ void load();
-+ void triggerMethod( const String& );
-+ void triggerActivateEvent();
-+ void triggerDeActivateEvent();
-+ void triggerInitializeEvent();
-+ void triggerTerminateEvent();
-+};
-+
- #ifndef __SB_SBOBJMODULEREF_HXX
- #define __SB_SBOBJMODULEREF_HXX
-
-diff -rup /data4/OOOBuildM12/ooo-build/build/ooh680-m12/basic/source/runtime/methods.cxx basic/source/runtime/methods.cxx
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/basic/source/runtime/methods.cxx 2008-03-29 23:08:19.000000000 +0000
-+++ basic/source/runtime/methods.cxx 2008-03-28 10:30:34.000000000 +0000
-@@ -152,6 +152,8 @@ using namespace com::sun::star::io;
- #include <io.h>
- #endif
-
-+#include <basic/sbobjmod.hxx>
-+
- static void FilterWhiteSpace( String& rStr )
- {
- rStr.EraseAllChars( ' ' );
-@@ -4386,7 +4386,12 @@ RTLFUNC(Load)
-
- // Diesen Call einfach an das Object weiterreichen
- SbxBase* pObj = (SbxObject*)rPar.Get(1)->GetObject();
-- if( pObj && pObj->IsA( TYPE( SbxObject ) ) )
-+ if( pObj && pObj->IsA( TYPE( SbUserFormModule ) ) )
-+ {
-+ SbUserFormModule* pFormModule = ( SbUserFormModule* )pObj;
-+ pFormModule->load();
-+ }
-+ else if( pObj && pObj->IsA( TYPE( SbxObject ) ) )
- {
- SbxVariable* pVar = ((SbxObject*)pObj)->
- Find( String( RTL_CONSTASCII_USTRINGPARAM("Load") ), SbxCLASS_METHOD );
-@@ -4407,7 +4409,12 @@ RTLFUNC(Unload)
-
- // Diesen Call einfach an das Object weitereichen
- SbxBase* pObj = (SbxObject*)rPar.Get(1)->GetObject();
-- if( pObj && pObj->IsA( TYPE( SbxObject ) ) )
-+ if( pObj && pObj->IsA( TYPE( SbUserFormModule ) ) )
-+ {
-+ SbUserFormModule* pFormModule = ( SbUserFormModule* )pObj;
-+ pFormModule->Unload();
-+ }
-+ else if( pObj && pObj->IsA( TYPE( SbxObject ) ) )
- {
- SbxVariable* pVar = ((SbxObject*)pObj)->
- Find( String( RTL_CONSTASCII_USTRINGPARAM("Unload") ), SbxCLASS_METHOD );
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/svx/inc/svx/msocximex.hxx 2008-04-02 12:14:58.000000000 +0100
-+++ svx/inc/svx/msocximex.hxx 2008-04-01 15:22:20.000000000 +0100
-@@ -298,6 +298,7 @@ public:
- sal_Int32 mnForeColor;
- sal_uInt16 mnTabPos;
- UniString sName;
-+ UniString msToolTip;
- OCX_FontData aFontData;
- SfxObjectShell *pDocSh;
- protected:
-@@ -908,7 +908,7 @@ public:
- sal_uInt8 nKeepScrollBarsVisible;
- sal_uInt8 nCycle;
- sal_uInt16 nBorderStyle;
-- sal_uInt16 nSpecialEffect;
-+ sal_uInt8 nSpecialEffect;
- sal_uInt16 nPicture;
- sal_uInt8 nPictureAlignment;
- sal_uInt8 nPictureSizeMode;
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/svx/source/msfilter/msocximex.cxx 2008-04-02 15:01:33.000000000 +0100
-+++ svx/source/msfilter/msocximex.cxx 2008-04-02 14:49:08.000000000 +0100
-@@ -746,13 +746,16 @@ class ContainerRecReader
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
- *pS >> rec.nLeft >> rec.nTop;
- }
--
-+
- // control infotip
- sal_uInt32 nTipBufSize = lclGetBufferSize( nTipLen );
- if( nTipBufSize > 0 )
- {
-+ std::auto_ptr< sal_Char > pTipName;
-+ pTipName.reset( new sal_Char[ nTipBufSize ] );
- ReadAlign( pS, pS->Tell() - nStartPos, 4 );
-- pS->SeekRel( nTipBufSize );
-+ pS->Read( pTipName.get(), nTipBufSize );
-+ rec.controlTip = lclCreateOUString( pTipName.get(), nTipLen );
- }
- // control id
- sal_uInt32 nCntrlIdSize = lclGetBufferSize( nCntrlIdLen );
-@@ -1262,6 +1265,11 @@ sal_Bool OCX_Control::Import(uno::Refere
- xPropSet->setPropertyValue(WW8_ASCII2STR("Width"), aTmp);
- aTmp <<= sal_Int32((nHeight * 2) / 100);
- xPropSet->setPropertyValue(WW8_ASCII2STR("Height"), aTmp);
-+ if ( msToolTip.Len() > 0 )
-+ {
-+ uno::Any aTmp(&msToolTip,getCppuType((OUString *)0));
-+ xPropSet->setPropertyValue(WW8_ASCII2STR("HelpText"), aTmp);
-+ }
-
- if ( mnStep )
- {
-@@ -3664,6 +3666,7 @@ void OCX_ContainerControl::ProcessContro
- }
-
- pControl->sName = rec.cName;
-+ pControl->msToolTip = rec.controlTip;
- // Position of controls is relative to the container
- pControl->mnTop = rec.nTop + mnTop;
- pControl->mnLeft = rec.nLeft + mnLeft;
-@@ -3750,7 +3750,8 @@ OCX_MultiPage::OCX_MultiPage( SotStorage
- nScrollWidth(0), nScrollHeight(0), nIconLen(0), pIcon(0), nPictureLen(0),
- pPicture(0)
- {
-- msDialogType = C2U("NotSupported");
-+ //msDialogType = C2U("NotSupported");
-+ msDialogType = C2U("com.sun.star.awt.UnoMultiPageModel");
- mnForeColor = 0x80000012L,
- mnBackColor = 0x8000000FL;
- bSetInDialog = true;// UserForm control only
-@@ -3814,7 +3815,6 @@ sal_Bool OCX_MultiPage::Read(SvStorageSt
- sal_Bool OCX_MultiPage::Import(com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet> &rPropSet)
- {
-- // Calls import on contained controls
- OCX_ContainerControl::Import( rPropSet );
- return sal_True;
- }
-@@ -3835,6 +3835,43 @@ sal_Bool OCX_MultiPage::Import(com::sun:
-
- if ( xPropSet.is() )
- {
-+ uno::Reference<lang::XMultiServiceFactory>
-+ xFactory(rDialog, uno::UNO_QUERY);
-+ OSL_TRACE("** MultiPage creating control %s", rtl::OUStringToOString( msDialogType, RTL_TEXTENCODING_UTF8 ).getStr() );
-+ uno::Reference<uno::XInterface> xCreate = xFactory->createInstance(msDialogType);
-+ if (!xCreate.is())
-+ return sal_False;
-+
-+ uno::Reference<awt::XControlModel> xModel(xCreate, uno::UNO_QUERY);
-+ if (!xModel.is())
-+ return sal_False;
-+
-+ try
-+ {
-+ // we should just call MultiPage::Import( XPropertySet )
-+ OSL_TRACE("********* MULTIPAGE cName %s", rtl::OUStringToOString( sName, RTL_TEXTENCODING_UTF8 ).getStr() );
-+ uno::Any aTmp(&sName,getCppuType((OUString *)0));
-+ uno::Reference<beans::XPropertySet> xPrps(xModel, uno::UNO_QUERY);
-+ xPrps->setPropertyValue( WW8_ASCII2STR("Name"), aTmp );
-+ aTmp = uno::makeAny( mnCurrentPageStep );
-+ xPrps->setPropertyValue( WW8_ASCII2STR("ProgressValueMax"), aTmp );
-+ // default current page to 0 ( #FIXME, we need to read this value )
-+ aTmp = uno::makeAny( sal_Int32(0) );
-+ xPrps->setPropertyValue( WW8_ASCII2STR("ProgressValue"), aTmp );
-+ OSL_TRACE("********* MULTIPAGE vomitted out properties");
-+
-+ // Calls import on contained controls
-+ rDialog->insertByName(sName, uno::makeAny(xModel));
-+ OSL_TRACE("*** inserted ***");
-+ }
-+ catch( uno::Exception& )
-+ {
-+ DBG_ERRORFILE(
-+ ByteString( "OCX_Control::Import - cannot insert control \"" ).
-+ Append( ByteString( sName, RTL_TEXTENCODING_UTF8 ) ).
-+ Append( '"' ).GetBuffer() );
-+ }
-+
- // Calls import on contained pages
- return OCX_ContainerControl::Import( xPropSet );
- }
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/toolkit/source/controls/unocontrols.cxx 2008-01-24 15:30:00.000000000 +0000
-+++ toolkit/source/controls/unocontrols.cxx 2008-04-11 11:07:03.000000000 +0100
-@@ -1887,6 +1887,77 @@ sal_Bool UnoGroupBoxControl::isTranspare
- return sal_True;
- }
-
-+// MultiPage
-+
-+UnoMultiPageModel::UnoMultiPageModel()
-+{
-+ ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
-+ ImplRegisterProperty( BASEPROPERTY_ENABLED );
-+ ImplRegisterProperty( BASEPROPERTY_FONTDESCRIPTOR );
-+ ImplRegisterProperty( BASEPROPERTY_HELPTEXT );
-+ ImplRegisterProperty( BASEPROPERTY_HELPURL );
-+ ImplRegisterProperty( BASEPROPERTY_LABEL );
-+ ImplRegisterProperty( BASEPROPERTY_PRINTABLE );
-+ ImplRegisterProperty( BASEPROPERTY_PROGRESSVALUE );
-+ ImplRegisterProperty( BASEPROPERTY_PROGRESSVALUE_MAX );
-+}
-+
-+::rtl::OUString UnoMultiPageModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
-+{
-+ return ::rtl::OUString::createFromAscii( szServiceName_UnoMultiPageModel );
-+}
-+
-+uno::Any UnoMultiPageModel::ImplGetDefaultValue( sal_uInt16 nPropId ) const
-+{
-+ if ( nPropId == BASEPROPERTY_DEFAULTCONTROL )
-+ {
-+ uno::Any aAny;
-+ aAny <<= ::rtl::OUString::createFromAscii( szServiceName_UnoControlGroupBox );
-+ //aAny <<= ::rtl::OUString::createFromAscii( szServiceName_UnoMultiPageControl );
-+ return aAny;
-+ }
-+ return UnoControlModel::ImplGetDefaultValue( nPropId );
-+}
-+
-+::cppu::IPropertyArrayHelper& UnoMultiPageModel::getInfoHelper()
-+{
-+ static UnoPropertyArrayHelper* pHelper = NULL;
-+ if ( !pHelper )
-+ {
-+ uno::Sequence<sal_Int32> aIDs = ImplGetPropertyIds();
-+ pHelper = new UnoPropertyArrayHelper( aIDs );
-+ }
-+ return *pHelper;
-+}
-+
-+// beans::XMultiPropertySet
-+uno::Reference< beans::XPropertySetInfo > UnoMultiPageModel::getPropertySetInfo( ) throw(uno::RuntimeException)
-+{
-+ static uno::Reference< beans::XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
-+ return xInfo;
-+}
-+
-+// ----------------------------------------------------
-+// class MultiPageControl
-+// ----------------------------------------------------
-+UnoMultiPageControl::UnoMultiPageControl()
-+{
-+ maComponentInfos.nWidth = 100;
-+ maComponentInfos.nHeight = 100;
-+}
-+
-+::rtl::OUString UnoMultiPageControl::GetComponentServiceName()
-+{
-+ return ::rtl::OUString::createFromAscii( "multipage" );
-+}
-+
-+sal_Bool UnoMultiPageControl::isTransparent() throw(uno::RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+
-+
- // ----------------------------------------------------
- // class UnoControlListBoxModel
- // ----------------------------------------------------
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/toolkit/inc/toolkit/controls/unocontrols.hxx 2008-01-24 15:27:45.000000000 +0000
-+++ toolkit/inc/toolkit/controls/unocontrols.hxx 2008-04-11 07:03:51.000000000 +0100
-@@ -734,6 +734,44 @@ public:
-
- };
-
-+class UnoMultiPageModel : public UnoControlModel
-+{
-+protected:
-+ ::com::sun::star::uno::Any ImplGetDefaultValue( sal_uInt16 nPropId ) const;
-+ ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
-+
-+public:
-+ UnoMultiPageModel();
-+ UnoMultiPageModel( const UnoMultiPageModel& rModel ) : UnoControlModel( rModel ) {;}
-+
-+ UnoControlModel* Clone() const { return new UnoMultiPageModel( *this ); }
-+
-+ // ::com::sun::star::io::XPersistObject
-+ ::rtl::OUString SAL_CALL getServiceName() throw(::com::sun::star::uno::RuntimeException);
-+
-+ // ::com::sun::star::beans::XMultiPropertySet
-+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
-+
-+ // ::com::sun::star::lang::XServiceInfo
-+ DECLIMPL_SERVICEINFO_DERIVED( UnoMultiPageModel, UnoControlModel, szServiceName_UnoMultiPageModel )
-+
-+};
-+// ----------------------------------------------------
-+// class UnoGroupBoxControl
-+// ----------------------------------------------------
-+class UnoMultiPageControl : public UnoControlBase
-+{
-+public:
-+ UnoMultiPageControl();
-+ ::rtl::OUString GetComponentServiceName();
-+
-+ sal_Bool SAL_CALL isTransparent( ) throw(::com::sun::star::uno::RuntimeException);
-+
-+ // ::com::sun::star::lang::XServiceInfo
-+ DECLIMPL_SERVICEINFO_DERIVED( UnoMultiPageControl, UnoControlBase, szServiceName_UnoMultiPageControl )
-+
-+};
-+
- // ----------------------------------------------------
- // class UnoFixedTextControl
- // ----------------------------------------------------
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/toolkit/inc/toolkit/helper/servicenames.hxx 2008-01-24 15:28:36.000000000 +0000
-+++ toolkit/inc/toolkit/helper/servicenames.hxx 2008-04-09 14:22:19.000000000 +0100
-@@ -50,6 +50,8 @@ extern const sal_Char __FAR_DATA szServi
- extern const sal_Char __FAR_DATA szServiceName_MenuBar[], szServiceName2_MenuBar[];
- extern const sal_Char __FAR_DATA szServiceName_Pointer[], szServiceName2_Pointer[];
- extern const sal_Char __FAR_DATA szServiceName_UnoControlContainer[], szServiceName2_UnoControlContainer[];
-+extern const sal_Char __FAR_DATA szServiceName_UnoMultiPageControl[], szServiceName2_UnoMultiPageControl[];
-+extern const sal_Char __FAR_DATA szServiceName_UnoMultiPageModel[], szServiceName2_UnoMultiPageModel[];
- extern const sal_Char __FAR_DATA szServiceName_UnoControlContainerModel[], szServiceName2_UnoControlContainerModel[];
- extern const sal_Char __FAR_DATA szServiceName_TabController[], szServiceName2_TabController[];
- extern const sal_Char __FAR_DATA szServiceName_TabControllerModel[], szServiceName2_TabControllerModel[];
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/toolkit/source/helper/servicenames.cxx 2008-01-24 15:31:21.000000000 +0000
-+++ toolkit/source/helper/servicenames.cxx 2008-04-09 15:26:36.000000000 +0100
-@@ -51,6 +51,8 @@ const sal_Char __FAR_DATA szServiceName_
- const sal_Char __FAR_DATA szServiceName_MenuBar[] = "stardiv.vcl.MenuBar", szServiceName2_MenuBar[] = "com.sun.star.awt.MenuBar";
- const sal_Char __FAR_DATA szServiceName_Pointer[] = "stardiv.vcl.Pointer", szServiceName2_Pointer[] = "com.sun.star.awt.Pointer";
- const sal_Char __FAR_DATA szServiceName_UnoControlContainer[] = "stardiv.vcl.control.ControlContainer", szServiceName2_UnoControlContainer[] = "com.sun.star.awt.UnoControlContainer";
-+
-+
- const sal_Char __FAR_DATA szServiceName_UnoControlContainerModel[] = "stardiv.vcl.controlmodel.ControlContainer", szServiceName2_UnoControlContainerModel[] = "com.sun.star.awt.UnoControlContainerModel";
- const sal_Char __FAR_DATA szServiceName_TabController[] = "stardiv.vcl.control.TabController", szServiceName2_TabController[] = "com.sun.star.awt.TabController";
- const sal_Char __FAR_DATA szServiceName_TabControllerModel[] = "stardiv.vcl.controlmodel.TabController", szServiceName2_TabControllerModel[] = "com.sun.star.awt.TabControllerModel";
-@@ -103,6 +105,8 @@ const sal_Char __FAR_DATA szServiceName_
- const sal_Char __FAR_DATA szServiceName_UnoControlRoadmapModel[] = "stardiv.vcl.controlmodel.Roadmap", szServiceName2_UnoControlRoadmapModel[] = "com.sun.star.awt.UnoControlRoadmapModel";
- const sal_Char __FAR_DATA szServiceName_UnoSpinButtonControl[] = "com.sun.star.awt.UnoControlSpinButton";
- const sal_Char __FAR_DATA szServiceName_UnoSpinButtonModel[] = "com.sun.star.awt.UnoControlSpinButtonModel";
-+const sal_Char __FAR_DATA szServiceName_UnoMultiPageControl[] = "com.sun.star.awt.UnoControlMultiPage";
-+const sal_Char __FAR_DATA szServiceName_UnoMultiPageModel[] = "com.sun.star.awt.UnoMultiPageModel";
- const sal_Char __FAR_DATA szServiceName_TreeControl[] = "com.sun.star.awt.tree.TreeControl";
- const sal_Char __FAR_DATA szServiceName_TreeControlModel[] = "com.sun.star.awt.tree.TreeControlModel";
- const sal_Char __FAR_DATA szServiceName_MutableTreeDataModel[] = "com.sun.star.awt.tree.MutableTreeDataModel";
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/toolkit/source/helper/registerservices.cxx 2008-01-24 15:31:06.000000000 +0000
-+++ toolkit/source/helper/registerservices.cxx 2008-04-11 06:39:56.000000000 +0100
-@@ -230,6 +230,7 @@ IMPL_CREATEINSTANCE( UnoControlTimeField
- IMPL_CREATEINSTANCE( UnoControlProgressBarModel )
- IMPL_CREATEINSTANCE( UnoControlScrollBarModel )
- IMPL_CREATEINSTANCE( UnoSpinButtonModel )
-+IMPL_CREATEINSTANCE( UnoMultiPageModel )
- IMPL_CREATEINSTANCE( UnoControlFixedLineModel )
- IMPL_CREATEINSTANCE( UnoCurrencyFieldControl )
- IMPL_CREATEINSTANCE( UnoDateFieldControl )
-@@ -249,6 +250,7 @@ IMPL_CREATEINSTANCE( UnoTimeFieldControl
- IMPL_CREATEINSTANCE( UnoProgressBarControl )
- IMPL_CREATEINSTANCE( UnoScrollBarControl )
- IMPL_CREATEINSTANCE( UnoSpinButtonControl )
-+IMPL_CREATEINSTANCE( UnoMultiPageControl )
- IMPL_CREATEINSTANCE( UnoFixedLineControl )
- IMPL_CREATEINSTANCE( VCLXMenuBar )
- IMPL_CREATEINSTANCE( VCLXPointer )
-@@ -333,6 +335,8 @@ TOOLKIT_DLLPUBLIC sal_Bool SAL_CALL comp
- registerServices( xRegistryKey, "UnoControlScrollBarModel", szServiceName_UnoControlScrollBarModel, szServiceName2_UnoControlScrollBarModel );
- registerServices( xRegistryKey, "UnoSpinButtonModel", szServiceName_UnoSpinButtonModel );
- registerServices( xRegistryKey, "UnoSpinButtonControl", szServiceName_UnoSpinButtonControl );
-+ registerServices( xRegistryKey, "UnoMultiPageModel", szServiceName_UnoMultiPageModel );
-+ registerServices( xRegistryKey, "UnoMultiPageControl", szServiceName_UnoMultiPageControl );
- registerServices( xRegistryKey, "UnoFixedLineControl", szServiceName_UnoControlFixedLine, szServiceName2_UnoControlFixedLine );
- registerServices( xRegistryKey, "UnoControlFixedLineModel", szServiceName_UnoControlFixedLineModel, szServiceName2_UnoControlFixedLineModel );
- registerServices( xRegistryKey, "VCLXPrinterServer", szServiceName_PrinterServer, szServiceName2_PrinterServer );
-@@ -416,6 +420,8 @@ TOOLKIT_DLLPUBLIC void* SAL_CALL compone
- CHECKANDCREATEFACTORY( VCLXPrinterServer, szServiceName_PrinterServer, szServiceName2_PrinterServer )
- CHECKANDCREATEFACTORY( UnoRoadmapControl, szServiceName_UnoControlRoadmap, szServiceName2_UnoControlRoadmap )
- CHECKANDCREATEFACTORY( UnoControlRoadmapModel, szServiceName_UnoControlRoadmapModel, szServiceName2_UnoControlRoadmapModel )
-+ CHECKANDCREATEFACTORY( UnoMultiPageModel, szServiceName_UnoMultiPageModel, NULL )
-+ CHECKANDCREATEFACTORY( UnoMultiPageControl, szServiceName_UnoMultiPageControl, NULL )
- CHECKANDCREATEFACTORY( UnoSpinButtonModel, szServiceName_UnoSpinButtonModel, NULL )
- CHECKANDCREATEFACTORY( UnoSpinButtonControl, szServiceName_UnoSpinButtonControl, NULL )
- CHECKANDCREATEFACTORY( TreeControl, szServiceName_TreeControl, NULL )
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/xmlscript/source/xmldlg_imexp/exp_share.hxx 2008-01-24 15:37:13.000000000 +0000
-+++ xmlscript/source/xmldlg_imexp/exp_share.hxx 2008-04-10 23:00:27.000000000 +0100
-@@ -179,6 +179,8 @@ public:
- //
- void readDialogModel( StyleBag * all_styles )
- SAL_THROW( (css::uno::Exception) );
-+ void readMultiPageModel( StyleBag * all_styles )
-+ SAL_THROW( (css::uno::Exception) );
- void readButtonModel( StyleBag * all_styles )
- SAL_THROW( (css::uno::Exception) );
- void readEditModel( StyleBag * all_styles )
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/xmlscript/source/xmldlg_imexp/imp_share.hxx 2008-01-24 15:37:27.000000000 +0000
-+++ xmlscript/source/xmldlg_imexp/imp_share.hxx 2008-04-10 17:10:24.000000000 +0100
-@@ -1004,6 +1004,27 @@ public:
- };
-
- //==============================================================================
-+class MultiPage
-+ : public ControlElement
-+{
-+public:
-+ virtual css::uno::Reference< css::xml::input::XElement >
-+ SAL_CALL startChildElement(
-+ sal_Int32 nUid, ::rtl::OUString const & rLocalName,
-+ css::uno::Reference<css::xml::input::XAttributes> const & xAttributes )
-+ throw (css::xml::sax::SAXException, css::uno::RuntimeException);
-+ virtual void SAL_CALL endElement()
-+ throw (css::xml::sax::SAXException, css::uno::RuntimeException);
-+
-+ inline MultiPage(
-+ ::rtl::OUString const & rLocalName,
-+ css::uno::Reference< css::xml::input::XAttributes > const & xAttributes,
-+ ElementBase * pParent, DialogImport * pImport )
-+ SAL_THROW( () )
-+ : ControlElement( rLocalName, xAttributes, pParent, pImport )
-+ {}
-+};
-+
- class ProgressBarElement
- : public ControlElement
- {
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx 2008-01-24 15:37:42.000000000 +0000
-+++ xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx 2008-04-11 10:55:48.000000000 +0100
-@@ -73,6 +73,42 @@ static inline bool readFontProps( Elemen
- }
-
- //__________________________________________________________________________________________________
-+void ElementDescriptor::readMultiPageModel( StyleBag * all_styles )
-+{
-+ // collect styles
-+ Style aStyle( 0x2 | 0x8 | 0x20 );
-+ if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextColor") ) ) >>= aStyle._textColor)
-+ aStyle._set |= 0x2;
-+ if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("TextLineColor") ) ) >>= aStyle._textLineColor)
-+ aStyle._set |= 0x20;
-+ if (readFontProps( this, aStyle ))
-+ aStyle._set |= 0x8;
-+ if (aStyle._set)
-+ {
-+ addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ),
-+ all_styles->getStyleId( aStyle ) );
-+ }
-+
-+ // collect elements
-+ readDefaults();
-+ readLongAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("ProgressValue") ),
-+ OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":value") ) );
-+ readLongAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("ProgressValueMax") ),
-+ OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":value-max") ) );
-+
-+ OUString aTitle;
-+ if (readProp( OUString( RTL_CONSTASCII_USTRINGPARAM("Label") ) ) >>= aTitle)
-+ {
-+ ElementDescriptor * title = new ElementDescriptor(
-+ _xProps, _xPropState,
-+ OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":title") ) );
-+ title->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":value") ),
-+ aTitle );
-+ addSubElement( title );
-+ }
-+
-+ readEvents();
-+}
- void ElementDescriptor::readButtonModel( StyleBag * all_styles )
- SAL_THROW( (Exception) )
- {
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/xmlscript/source/xmldlg_imexp/xmldlg_export.cxx 2008-01-24 15:37:58.000000000 +0000
-+++ xmlscript/source/xmldlg_imexp/xmldlg_export.cxx 2008-04-14 16:29:10.000000000 +0100
-@@ -1409,6 +1409,14 @@ void SAL_CALL exportDialogModel(
- xElem = static_cast< xml::sax::XAttributeList * >( pElem );
- pElem->readGroupBoxModel( &all_styles );
- }
-+ else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoMultiPageModel") ) ) )
-+ {
-+ pElem = new ElementDescriptor(
-+ xProps, xPropState,
-+ OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":multipage") ) );
-+ xElem = static_cast< xml::sax::XAttributeList * >( pElem );
-+ pElem->readMultiPageModel( &all_styles );
-+ }
- else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFixedTextModel") ) ) )
- {
- pElem = new ElementDescriptor(
---- /data4/OOOBuildM12/ooo-build/build/ooh680-m12/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx 2008-01-24 15:38:13.000000000 +0000
-+++ xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx 2008-04-11 10:53:21.000000000 +0100
-@@ -47,6 +47,69 @@ using ::rtl::OUString;
-
- namespace xmlscript
- {
-+Reference< xml::input::XElement > MultiPage::startChildElement(
-+ sal_Int32 nUid, OUString const & rLocalName,
-+ Reference< xml::input::XAttributes > const & xAttributes )
-+ throw (xml::sax::SAXException, RuntimeException)
-+{
-+ // event
-+rtl::OUString _label = rtl::OUString::createFromAscii("foo");
-+ if (_pImport->isEventElement( nUid, rLocalName ))
-+ {
-+ return new EventElement(
-+ nUid, rLocalName, xAttributes, this, _pImport );
-+ }
-+ else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("title") ))
-+ {
-+ getStringAttr( &_label,
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
-+ xAttributes,
-+ _pImport->XMLNS_DIALOGS_UID );
-+
-+ return new ElementBase(
-+ _pImport->XMLNS_DIALOGS_UID,
-+ rLocalName, xAttributes, this, _pImport );
-+ }
-+ else
-+ {
-+
-+ throw xml::sax::SAXException(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("expected event element!") ),
-+ Reference< XInterface >(), Any() );
-+ }
-+}
-+//__________________________________________________________________________________________________
-+
-+void MultiPage::endElement()
-+ throw (xml::sax::SAXException, RuntimeException)
-+{
-+ ControlImportContext ctx(
-+ _pImport, getControlId( _xAttributes ),
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoMultiPageModel") ) );
-+// OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlGroupBoxModel") ) );
-+ Reference< beans::XPropertySet > xControlModel( ctx.getControlModel() );
-+
-+ Reference< xml::input::XElement > xStyle( getStyle( _xAttributes ) );
-+ if (xStyle.is())
-+ {
-+ StyleElement * pStyle = static_cast< StyleElement * >( xStyle.get () );
-+ pStyle->importTextColorStyle( xControlModel );
-+ pStyle->importTextLineColorStyle( xControlModel );
-+ pStyle->importFontStyle( xControlModel );
-+ }
-+
-+ ctx.importDefaults( 0, 0, _xAttributes ); // inherited from BulletinBoardElement
-+ ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ProgressValue") ),
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("value") ),
-+ _xAttributes );
-+ ctx.importLongProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ProgressValueMax") ),
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("value-max") ),
-+ _xAttributes );
-+ ctx.importEvents( _events );
-+ // avoid ring-reference:
-+ // vector< event elements > holding event elements holding this (via _pParent)
-+ _events.clear();
-+}
-
- // progessmeter
- //__________________________________________________________________________________________________
-@@ -2106,6 +2169,10 @@ Reference< xml::input::XElement > Bullet
- {
- return new ProgressBarElement( rLocalName, xAttributes, this, _pImport );
- }
-+ else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("multipage") ))
-+ {
-+ return new MultiPage( rLocalName, xAttributes, this, _pImport );
-+ }
- // bulletinboard
- else if (rLocalName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("bulletinboard") ))
- {