diff options
author | Andreas Bregas <ab@openoffice.org> | 2010-07-20 12:50:30 +0200 |
---|---|---|
committer | Andreas Bregas <ab@openoffice.org> | 2010-07-20 12:50:30 +0200 |
commit | e163d42740f586661df5d14cc0298dfd0b910475 (patch) | |
tree | 9a5db6ab0d7e1581ba87b6453ca631f3dc472071 /basic | |
parent | eaab0a650b1d26d76107667e784a959c21e77d40 (diff) |
mib17: #162900# Support parameters for Property Get calls
Diffstat (limited to 'basic')
-rwxr-xr-x | basic/source/classes/sb.cxx | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx index f8e0233d01..df5bd58e90 100755 --- a/basic/source/classes/sb.cxx +++ b/basic/source/classes/sb.cxx @@ -599,7 +599,28 @@ void SbClassModuleObject::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType { SbxValues aVals; aVals.eType = SbxVARIANT; - pMeth->Get( aVals ); + + SbxArray* pArg = pVar->GetParameters(); + USHORT nVarParCount = (pArg != NULL) ? pArg->Count() : 0; + if( nVarParCount > 1 ) + { + SbxArrayRef xMethParameters = new SbxArray; + xMethParameters->Put( pMeth, 0 ); // Method as parameter 0 + for( USHORT i = 1 ; i < nVarParCount ; ++i ) + { + SbxVariable* pPar = pArg->Get( i ); + xMethParameters->Put( pPar, i ); + } + + pMeth->SetParameters( xMethParameters ); + pMeth->Get( aVals ); + pMeth->SetParameters( NULL ); + } + else + { + pMeth->Get( aVals ); + } + pVar->Put( aVals ); } } |