diff options
Diffstat (limited to 'patches/test/vba/UserFormObjectModuleEventsSuperBigPatch.diff')
-rw-r--r-- | patches/test/vba/UserFormObjectModuleEventsSuperBigPatch.diff | 840 |
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") )) - { |