diff options
Diffstat (limited to 'idl/source/objects/slot.cxx')
-rw-r--r-- | idl/source/objects/slot.cxx | 582 |
1 files changed, 4 insertions, 578 deletions
diff --git a/idl/source/objects/slot.cxx b/idl/source/objects/slot.cxx index 759611052ae3..84afe2dc7ca0 100644 --- a/idl/source/objects/slot.cxx +++ b/idl/source/objects/slot.cxx @@ -26,7 +26,7 @@ #include <globals.hxx> #include <database.hxx> -SV_IMPL_META_FACTORY1( SvMetaSlot, SvMetaAttribute ); +TYPEINIT1( SvMetaSlot, SvMetaAttribute ); SvMetaObject *SvMetaSlot::MakeClone() const { @@ -58,229 +58,6 @@ SvMetaSlot::SvMetaSlot( SvMetaType * pType ) { } -#define TEST_READ -#define TEST_WRITE - -void SvMetaSlot::Load( SvPersistStream & rStm ) -{ - SvMetaAttribute::Load( rStm ); - - sal_uInt16 nMask; - rStm.ReadUInt16( nMask ); - - TEST_READ - if( nMask & 0x0001 ) - { - SvMetaAttribute * pMeth; - rStm >> pMeth; - aMethod = pMeth; - } - - TEST_READ - if( nMask & 0x0002 ) rStm >> aGroupId; - TEST_READ - if( nMask & 0x0004 ) rStm >> aHasCoreId; - TEST_READ - if( nMask & 0x0008 ) rStm >> aConfigId; - TEST_READ - if( nMask & 0x0010 ) rStm >> aExecMethod; - TEST_READ - if( nMask & 0x0020 ) rStm >> aStateMethod; - TEST_READ - if( nMask & 0x0040 ) rStm >> aDefault; - TEST_READ - if( nMask & 0x0080 ) rStm >> aPseudoSlots; - TEST_READ - if( nMask & 0x0100 ) rStm >> aGet; - TEST_READ - if( nMask & 0x0200 ) rStm >> aSet; - TEST_READ - if( nMask & 0x0400 ) rStm >> aCachable; - TEST_READ - if( nMask & 0x0800 ) rStm >> aVolatile; - TEST_READ - if( nMask & 0x1000 ) rStm >> aToggle; - TEST_READ - if( nMask & 0x2000 ) rStm >> aAutoUpdate; - TEST_READ - if( nMask & 0x4000 ) rStm >> aSynchron; - TEST_READ - if( nMask & 0x8000 ) rStm >> aAsynchron; - - nMask = 0; - rStm.ReadUInt16( nMask ); - - TEST_READ - if( nMask & 0x0001 ) rStm >> aRecordPerItem; - TEST_READ - if( nMask & 0x0002 ) rStm >> aRecordManual; - TEST_READ - if( nMask & 0x0004 ) rStm >> aNoRecord; - TEST_READ - if( nMask & 0x0008 ) rStm >> aHasDialog; - TEST_READ - if( nMask & 0x0010 ) rStm >> aDisableFlags; - TEST_READ - if( nMask & 0x0020 ) rStm >> aPseudoPrefix; - TEST_READ - if( nMask & 0x0040 ) rStm >> aRecordPerSet; - TEST_READ - if( nMask & 0x0080 ) rStm >> aMenuConfig; - TEST_READ - if( nMask & 0x0100 ) rStm >> aToolBoxConfig; - TEST_READ - if( nMask & 0x0200 ) rStm >> aStatusBarConfig; - TEST_READ - if( nMask & 0x0400 ) rStm >> aAccelConfig; - TEST_READ - if( nMask & 0x0800 ) rStm >> aFastCall; - TEST_READ - if( nMask & 0x1000 ) rStm >> aContainer; - TEST_READ - - if( nMask & 0x2000 ) - { - SvMetaType * pT; - rStm >> pT; - aSlotType = pT; - } - - TEST_READ - if( nMask & 0x4000 ) rStm >> aRecordAbsolute; - TEST_READ - if( nMask & 0x8000 ) rStm >> aImageRotation; - - nMask = 0; - rStm.ReadUInt16( nMask ); - - TEST_READ - if( nMask & 0x0001 ) rStm >> aUnoName; - if( nMask & 0x0002 ) rStm >> aImageReflection; -} - -void SvMetaSlot::Save( SvPersistStream & rStm ) -{ - SvMetaAttribute::Save( rStm ); - - // create mask - sal_uInt16 nMask = 0; - if( aMethod.Is() ) nMask |= 0x0001; - if( !aGroupId.getString().isEmpty() ) nMask |= 0x0002; - if( aHasCoreId.IsSet() ) nMask |= 0x0004; - if( !aConfigId.getString().isEmpty() ) nMask |= 0x0008; - if( !aExecMethod.getString().isEmpty() ) nMask |= 0x0010; - if( !aStateMethod.getString().isEmpty() ) nMask |= 0x0020; - if( !aDefault.getString().isEmpty() ) nMask |= 0x0040; - if( aPseudoSlots.IsSet() ) nMask |= 0x0080; - if( aGet.IsSet() ) nMask |= 0x0100; - if( aSet.IsSet() ) nMask |= 0x0200; - if( aCachable.IsSet() ) nMask |= 0x0400; - if( aVolatile.IsSet() ) nMask |= 0x0800; - if( aToggle.IsSet() ) nMask |= 0x1000; - if( aAutoUpdate.IsSet() ) nMask |= 0x2000; - if( aSynchron.IsSet() ) nMask |= 0x4000; - if( aAsynchron.IsSet() ) nMask |= 0x8000; - - // write data - rStm.WriteUInt16( nMask ); - TEST_WRITE - if( nMask & 0x0001 ) WriteSvPersistBase( rStm, aMethod ); - TEST_WRITE - if( nMask & 0x0002 ) WriteSvIdentifier( rStm, aGroupId ); - TEST_WRITE - if( nMask & 0x0004 ) rStm.WriteUChar( aHasCoreId ); - TEST_WRITE - if( nMask & 0x0008 ) WriteSvIdentifier( rStm, aConfigId ); - TEST_WRITE - if( nMask & 0x0010 ) WriteSvIdentifier( rStm, aExecMethod ); - TEST_WRITE - if( nMask & 0x0020 ) WriteSvIdentifier( rStm, aStateMethod ); - TEST_WRITE - if( nMask & 0x0040 ) WriteSvIdentifier( rStm, aDefault ); - TEST_WRITE - if( nMask & 0x0080 ) rStm.WriteUChar( aPseudoSlots ); - TEST_WRITE - if( nMask & 0x0100 ) rStm.WriteUChar( aGet ); - TEST_WRITE - if( nMask & 0x0200 ) rStm.WriteUChar( aSet ); - TEST_WRITE - if( nMask & 0x0400 ) rStm.WriteUChar( aCachable ); - TEST_WRITE - if( nMask & 0x0800 ) rStm.WriteUChar( aVolatile ); - TEST_WRITE - if( nMask & 0x1000 ) rStm.WriteUChar( aToggle ); - TEST_WRITE - if( nMask & 0x2000 ) rStm.WriteUChar( aAutoUpdate ); - TEST_WRITE - if( nMask & 0x4000 ) rStm.WriteUChar( aSynchron ); - TEST_WRITE - if( nMask & 0x8000 ) rStm.WriteUChar( aAsynchron ); - - // write next bunch - // create mask - nMask = 0; - if( aRecordPerItem.IsSet() ) nMask |= 0x0001; - if( aRecordManual.IsSet() ) nMask |= 0x0002; - if( aNoRecord.IsSet() ) nMask |= 0x0004; - if( aHasDialog.IsSet() ) nMask |= 0x0008; - if ( aDisableFlags.IsSet() ) nMask |= 0x0010; - if( !aPseudoPrefix.getString().isEmpty() ) nMask |= 0x0020; - if( aRecordPerSet.IsSet() ) nMask |= 0x0040; - if( aMenuConfig.IsSet() ) nMask |= 0x0080; - if( aToolBoxConfig.IsSet() ) nMask |= 0x0100; - if( aStatusBarConfig.IsSet() )nMask |= 0x0200; - if( aAccelConfig.IsSet() ) nMask |= 0x0400; - if( aFastCall.IsSet() ) nMask |= 0x0800; - if( aContainer.IsSet() ) nMask |= 0x1000; - if( aSlotType.Is() ) nMask |= 0x2000; - if( aRecordAbsolute.IsSet() ) nMask |= 0x4000; - if( aImageRotation.IsSet() ) nMask |= 0x8000; - - // write data - rStm.WriteUInt16( nMask ); - TEST_WRITE - if( nMask & 0x0001 ) rStm.WriteUChar( aRecordPerItem ); - TEST_WRITE - if( nMask & 0x0002 ) rStm.WriteUChar( aRecordManual ); - TEST_WRITE - if( nMask & 0x0004 ) rStm.WriteUChar( aNoRecord ); - TEST_WRITE - if( nMask & 0x0008 ) rStm.WriteUChar( aHasDialog ); - TEST_WRITE - if( nMask & 0x0010 ) WriteSvString( rStm, aDisableFlags ); - TEST_WRITE - if( nMask & 0x0020 ) WriteSvIdentifier( rStm, aPseudoPrefix ); - TEST_WRITE - if( nMask & 0x0040 ) rStm.WriteUChar( aRecordPerSet ); - TEST_WRITE - if( nMask & 0x0080 ) rStm.WriteUChar( aMenuConfig ); - TEST_WRITE - if( nMask & 0x0100 ) rStm.WriteUChar( aToolBoxConfig ); - TEST_WRITE - if( nMask & 0x0200 ) rStm.WriteUChar( aStatusBarConfig ); - TEST_WRITE - if( nMask & 0x0400 ) rStm.WriteUChar( aAccelConfig ); - TEST_WRITE - if( nMask & 0x0800 ) rStm.WriteUChar( aFastCall ); - TEST_WRITE - if( nMask & 0x1000 ) rStm.WriteUChar( aContainer ); - TEST_WRITE - if( nMask & 0x2000 ) WriteSvPersistBase( rStm, aSlotType ); - TEST_WRITE - if( nMask & 0x4000 ) rStm.WriteUChar( aRecordAbsolute ); - TEST_WRITE - if( nMask & 0x8000 ) rStm.WriteUChar( aImageRotation ); - - nMask = 0; - if( aUnoName.IsSet() ) nMask |= 0x0001; - if( aImageReflection.IsSet() ) nMask |= 0x0002; - rStm.WriteUInt16( nMask ); - TEST_WRITE - if( nMask & 0x0001 ) WriteSvString( rStm, aUnoName ); - TEST_WRITE - if( nMask & 0x0002 ) rStm.WriteUChar( aImageReflection ); -} - bool SvMetaSlot::IsVariable() const { return SvMetaAttribute::IsVariable(); @@ -622,184 +399,6 @@ void SvMetaSlot::ReadAttributesSvIdl( SvIdlDataBase & rBase, } } -void SvMetaSlot::WriteAttributesSvIdl( SvIdlDataBase & rBase, - SvStream & rOutStm, - sal_uInt16 nTab ) -{ - SvMetaAttribute::WriteAttributesSvIdl( rBase, rOutStm, nTab ); - - if( aSlotType.Is() ) - { - WriteTab( rOutStm, nTab ); - rOutStm.WriteCharPtr( SvHash_SlotType()->GetName().getStr() ).WriteChar( '(' ); - aSlotType->WriteTheType( rBase, rOutStm, nTab, WRITE_IDL ); - rOutStm.WriteCharPtr( ");" ) << endl; - } - if( aMethod.Is() ) - { - WriteTab( rOutStm, nTab ); - aMethod->WriteSvIdl( rBase, rOutStm, nTab ); - rOutStm.WriteChar( ';' ) << endl; - } - if( aHasCoreId ) - { - aHasCoreId.WriteSvIdl( SvHash_HasCoreId(), rOutStm ); - rOutStm.WriteChar( ';' ) << endl; - } - if( !aGroupId.getString().isEmpty() ) - { - WriteTab( rOutStm, nTab ); - aGroupId.WriteSvIdl( SvHash_GroupId(), rOutStm, nTab +1); - rOutStm.WriteChar( ';' ) << endl; - } - if( !aExecMethod.getString().isEmpty() ) - { - WriteTab( rOutStm, nTab ); - aExecMethod.WriteSvIdl( SvHash_ExecMethod(), rOutStm, nTab +1); - rOutStm.WriteChar( ';' ) << endl; - } - if( !aStateMethod.getString().isEmpty() ) - { - WriteTab( rOutStm, nTab ); - aStateMethod.WriteSvIdl( SvHash_StateMethod(), rOutStm, nTab +1); - rOutStm.WriteChar( ';' ) << endl; - } - - if( !aDisableFlags.getString().isEmpty() ) - { - WriteTab( rOutStm, nTab ); - aDisableFlags.WriteSvIdl( SvHash_DisableFlags(), rOutStm, nTab +1); - rOutStm.WriteChar( ';' ) << endl; - } - - if( aSet || aGet || aPseudoSlots ) - { - WriteTab( rOutStm, nTab ); - char const * p = ""; - if( aPseudoSlots ) - { - aPseudoSlots.WriteSvIdl( SvHash_PseudoSlots(), rOutStm ); - p = ", "; - } - if( aGet ) - { - rOutStm.WriteCharPtr( p ); - aGet.WriteSvIdl( SvHash_Get(), rOutStm ); - p = ", "; - } - if( aSet ) - { - rOutStm.WriteCharPtr( p ); - aSet.WriteSvIdl( SvHash_Set(), rOutStm ); - } - rOutStm.WriteChar( ';' ) << endl; - } - - OString aDel(", "); - OStringBuffer aOut; - if( aVolatile ) - aOut.append(aVolatile.GetSvIdlString( SvHash_Volatile() )); - else if( !aCachable ) - // because of Default == TRUE, only when no other is set - aOut.append(aCachable.GetSvIdlString( SvHash_Cachable() )); - else - aDel = OString(); - - if( aToggle ) - { - aOut.append(aDel).append(aToggle.GetSvIdlString( SvHash_Toggle() )); - aDel = ", "; - } - if( aAutoUpdate ) - { - aOut.append(aDel).append(aAutoUpdate.GetSvIdlString( SvHash_AutoUpdate() )); - aDel = ", "; - } - - OString aDel1(", "); - if( aAsynchron ) - aOut.append(aDel).append(aAsynchron.GetSvIdlString( SvHash_Asynchron() )); - else if( !aSynchron ) - { - // because of Default == TRUE, only when no other is set - aOut.append(aDel).append(aSynchron.GetSvIdlString( SvHash_Synchron() )); - } - else - aDel1 = aDel; - - aDel = ", "; - if( aRecordManual ) - aOut.append(aDel1).append(aRecordManual.GetSvIdlString( SvHash_RecordManual() )); - else if( aNoRecord ) - aOut.append(aDel1).append(aNoRecord.GetSvIdlString( SvHash_NoRecord() )); - else if( !aRecordPerSet ) - // because of Default == TRUE, only when no other is set - aOut.append(aDel1).append(aRecordPerSet.GetSvIdlString( SvHash_RecordPerSet() )); - else if( aRecordPerItem ) - aOut.append(aDel1).append(aRecordPerItem.GetSvIdlString( SvHash_RecordPerItem() )); - else - aDel = aDel1; - - if( aRecordAbsolute ) - { - aOut.append(aDel).append(aRecordAbsolute.GetSvIdlString( SvHash_RecordAbsolute() )); - aDel = ", "; - } - if( aHasDialog ) - { - aOut.append(aDel).append(aHasDialog.GetSvIdlString( SvHash_HasDialog() )); - aDel = ", "; - } - if( aMenuConfig ) - { - aOut.append(aDel).append(aMenuConfig.GetSvIdlString( SvHash_MenuConfig() )); - aDel = ", "; - } - if( aToolBoxConfig ) - { - aOut.append(aDel).append(aToolBoxConfig.GetSvIdlString( SvHash_ToolBoxConfig() )); - aDel = ", "; - } - if( aStatusBarConfig ) - { - aOut.append(aDel).append(aStatusBarConfig.GetSvIdlString( SvHash_StatusBarConfig() )); - aDel = ", "; - } - if( aAccelConfig ) - { - aOut.append(aDel).append(aAccelConfig.GetSvIdlString( SvHash_AccelConfig() )); - aDel = ", "; - } - if( aFastCall ) - { - aOut.append(aDel).append(aFastCall.GetSvIdlString( SvHash_FastCall() )); - aDel = ", "; - } - if( aContainer ) - { - aOut.append(aDel).append(aContainer.GetSvIdlString( SvHash_Container() )); - aDel = ", "; - } - if( aImageRotation ) - { - aOut.append(aDel).append(aImageRotation.GetSvIdlString( SvHash_ImageRotation() )); - aDel = ", "; - } - - if( aImageReflection ) - { - aOut.append(aDel).append(aImageReflection.GetSvIdlString( SvHash_ImageReflection() )); - aDel = ", "; - } - - if( !aOut.isEmpty() ) - { - WriteTab( rOutStm, nTab ); - rOutStm.WriteCharPtr( aOut.getStr() ) << endl; - } -} - - bool SvMetaSlot::Test( SvIdlDataBase & rBase, SvTokenStream & rInStm ) { bool bOk = SvMetaAttribute::Test( rBase, rInStm ); @@ -886,27 +485,13 @@ bool SvMetaSlot::ReadSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm ) return bOk; } -void SvMetaSlot::WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, - sal_uInt16 nTab ) -{ - SvMetaAttribute::WriteSvIdl( rBase, rOutStm, nTab ); -} - void SvMetaSlot::Write( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab, WriteType nT, WriteAttribute nA ) { - if ( nT == WRITE_DOCU ) - { - if ( GetHidden() ) - return; - } - else - { - // no attribute for Automation - if( !GetAutomation() || !GetExport() ) - return; - } + // no attribute for Automation + if( !GetAutomation() || !GetExport() ) + return; if( !(nA & WA_VARIABLE) ) { @@ -1472,163 +1057,4 @@ sal_uInt16 SvMetaSlot::WriteSlotMap( const OString& rShellName, sal_uInt16 nCoun return nSCount; } -void SvMetaSlot::WriteHelpId( SvIdlDataBase & rBase, SvStream & rOutStm, - HelpIdTable& rTable ) -{ - sal_uLong nSId = GetSlotId().GetValue(); - if( rTable.find( nSId ) == rTable.end() ) - { - rTable[ nSId ] = this; - rOutStm.WriteCharPtr( "#define " ).WriteCharPtr( GetSlotId().getString().getStr() ).WriteChar( '\t' ) - .WriteCharPtr( OString::number(nSId).getStr() ) - << endl; - } - - SvMetaTypeEnum * pEnum = PTR_CAST( SvMetaTypeEnum, GetType() ); - if( GetPseudoSlots() && pEnum ) - { - for( sal_uLong n = 0; n < pEnum->Count(); ++n ) - { - OString aValName = pEnum->GetObject( n )->GetName().getString(); - - OStringBuffer aBuf; - if( !GetPseudoPrefix().isEmpty() ) - aBuf.append(GetPseudoPrefix()); - else - aBuf.append(GetSlotId().getString()); - aBuf.append('_'); - aBuf.append(aValName.copy(pEnum->GetPrefix().getLength())); - - OString aSId = aBuf.makeStringAndClear(); - - sal_uLong nSId2; - bool bIdOk = false; - if( rBase.FindId( aSId, &nSId2 ) ) - { - aSId = OString::number(nSId2); - bIdOk = true; - } - - // if id not found, write always - if( !bIdOk || rTable.find( nSId2 ) == rTable.end() ) - { - rTable[ nSId2 ] = this; - - rOutStm.WriteCharPtr( "#define " ).WriteCharPtr( aSId.getStr() ).WriteChar( '\t' ) - .WriteCharPtr( OString::number( - nSId2).getStr() ) - << endl; - } - } - } -} - -void WriteBool( bool bSet, SvStream& rStream ) -{ - if ( bSet ) - rStream.WriteCharPtr( "TRUE" ).WriteChar( ',' ); - else - rStream.WriteCharPtr( "FALSE" ).WriteChar( ',' ); -} - -void SvMetaSlot::WriteCSV( SvIdlDataBase& rBase, SvStream& rStrm ) -{ - rStrm.WriteCharPtr( "PROJECT," ); - rStrm.WriteCharPtr( GetSlotId().getString().getStr() ).WriteChar( ',' ); - rStrm - .WriteCharPtr( OString::number( - GetSlotId().GetValue()).getStr() ) - .WriteChar( ',' ); - - if ( !GetPseudoPrefix().isEmpty() ) - rStrm.WriteCharPtr( GetPseudoPrefix().getStr() ).WriteChar( ',' ); - else - rStrm.WriteChar( ',' ); - - rStrm.WriteCharPtr( GetGroupId().getStr() ).WriteChar( ',' ); - - WriteBool( GetAccelConfig(), rStrm ); - WriteBool( GetMenuConfig(), rStrm ); - WriteBool( GetStatusBarConfig(), rStrm ); - WriteBool( GetToolBoxConfig(), rStrm ); - - if ( GetSlotType() ) - rStrm.WriteCharPtr( GetSlotType()->GetName().getString().getStr() ).WriteChar( ',' ); - else - rStrm.WriteChar( ',' ); - - WriteBool( GetAutoUpdate(), rStrm ); - if ( GetCachable() ) - rStrm.WriteCharPtr( "Cachable" ).WriteChar( ',' ); - else - rStrm.WriteCharPtr( "Volatile" ).WriteChar( ',' ); - - WriteBool( GetContainer(), rStrm ); - WriteBool( GetFastCall(), rStrm ); - WriteBool( GetHasCoreId(), rStrm ); - WriteBool( GetHasDialog(), rStrm ); - WriteBool( GetReadOnlyDoc(), rStrm ); - WriteBool( GetImageRotation(), rStrm ); - WriteBool( GetImageReflection(), rStrm ); - rStrm.WriteCharPtr( GetDisableFlags().getStr() ).WriteChar( ',' ); - - if( GetSynchron() ) - rStrm.WriteCharPtr( "Synchron" ).WriteChar( ',' ); - else - rStrm.WriteCharPtr( "Asynchron" ).WriteChar( ',' ); - - WriteBool( GetToggle(), rStrm ); - WriteBool( GetReadonly(), rStrm ); - WriteBool( GetExport(), rStrm ); - if( GetRecordPerItem() ) - rStrm.WriteCharPtr( "RecordPerItem" ).WriteChar( ',' ); - else if ( GetNoRecord() ) - rStrm.WriteCharPtr( "NoRecord" ).WriteChar( ',' ); - else if ( GetRecordManual() ) - rStrm.WriteCharPtr( "RecordManual" ).WriteChar( ',' ); - else - rStrm.WriteCharPtr( "RecordPerSet" ).WriteChar( ',' ); - - WriteBool( GetRecordAbsolute(), rStrm ); - - if ( GetType()->GetType() != TYPE_METHOD && GetMethod() ) - { - rStrm.WriteCharPtr( GetMethod()->GetType()->GetReturnType()->GetName().getString().getStr() ).WriteChar( ',' ); - rStrm.WriteCharPtr( GetMethod()->GetName().getString().getStr() ).WriteChar( ',' ); - } - else - { - rStrm.WriteCharPtr( ",," ); - } - - rStrm.WriteCharPtr( GetType()->GetSvName().getStr() ).WriteChar( ',' ); - rStrm.WriteCharPtr( GetName().getString().getStr() ).WriteChar( ',' ); - - if ( GetType()->GetType() == TYPE_METHOD || GetMethod() ) - { - SvMetaAttributeMemberList *pList = &GetType()->GetAttrList(); - if ( GetMethod() ) - pList = &GetMethod()->GetType()->GetAttrList(); - - if( pList && !pList->empty() ) - { - rStrm.WriteCharPtr( "\"(" ); - SvMetaAttributeMemberList::const_iterator it = pList->begin(); - while( it != pList->end() ) - { - SvMetaAttribute* pAttr = *it; - pAttr->WriteCSV( rBase, rStrm ); - ++it; - if( it != pList->end() ) - rStrm.WriteChar( ',' ); - } - rStrm.WriteCharPtr( ")\"" ); - } - else - rStrm.WriteCharPtr( "()" ); - } - - rStrm << endl; -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |