summaryrefslogtreecommitdiff
path: root/binfilter/bf_basic/source/sbx/sbxcoll.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'binfilter/bf_basic/source/sbx/sbxcoll.cxx')
-rw-r--r--binfilter/bf_basic/source/sbx/sbxcoll.cxx303
1 files changed, 0 insertions, 303 deletions
diff --git a/binfilter/bf_basic/source/sbx/sbxcoll.cxx b/binfilter/bf_basic/source/sbx/sbxcoll.cxx
deleted file mode 100644
index 23c42ae7fd23..000000000000
--- a/binfilter/bf_basic/source/sbx/sbxcoll.cxx
+++ /dev/null
@@ -1,303 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <tools/stream.hxx>
-
-#include "sbx.hxx"
-#include "sbxres.hxx"
-
-namespace binfilter {
-
-TYPEINIT1(SbxCollection,SbxObject)
-TYPEINIT1(SbxStdCollection,SbxCollection)
-
-static const char* pCount;
-static const char* pAdd;
-static const char* pItem;
-static const char* pRemove;
-static USHORT nCountHash = 0, nAddHash, nItemHash, nRemoveHash;
-
-/////////////////////////////////////////////////////////////////////////
-
-SbxCollection::SbxCollection( const XubString& rClass )
- : SbxObject( rClass )
-{
- if( !nCountHash )
- {
- pCount = GetSbxRes( STRING_COUNTPROP );
- pAdd = GetSbxRes( STRING_ADDMETH );
- pItem = GetSbxRes( STRING_ITEMMETH );
- pRemove = GetSbxRes( STRING_REMOVEMETH );
- nCountHash = MakeHashCode( String::CreateFromAscii( pCount ) );
- nAddHash = MakeHashCode( String::CreateFromAscii( pAdd ) );
- nItemHash = MakeHashCode( String::CreateFromAscii( pItem ) );
- nRemoveHash = MakeHashCode( String::CreateFromAscii( pRemove ) );
- }
- Initialize();
- // Fuer Zugriffe auf sich selbst
- StartListening( GetBroadcaster(), TRUE );
-}
-
-SbxCollection::SbxCollection( const SbxCollection& rColl )
- : SvRefBase( rColl ), SbxObject( rColl )
-{}
-
-SbxCollection& SbxCollection::operator=( const SbxCollection& r )
-{
- if( &r != this )
- SbxObject::operator=( r );
- return *this;
-}
-
-SbxCollection::~SbxCollection()
-{}
-
-void SbxCollection::Clear()
-{
- SbxObject::Clear();
- Initialize();
-}
-
-void SbxCollection::Initialize()
-{
- SetType( SbxOBJECT );
- SetFlag( SBX_FIXED );
- ResetFlag( SBX_WRITE );
- SbxVariable* p;
- p = Make( String::CreateFromAscii( pCount ), SbxCLASS_PROPERTY, SbxINTEGER );
- p->ResetFlag( SBX_WRITE );
- p->SetFlag( SBX_DONTSTORE );
- p = Make( String::CreateFromAscii( pAdd ), SbxCLASS_METHOD, SbxEMPTY );
- p->SetFlag( SBX_DONTSTORE );
- p = Make( String::CreateFromAscii( pItem ), SbxCLASS_METHOD, SbxOBJECT );
- p->SetFlag( SBX_DONTSTORE );
- p = Make( String::CreateFromAscii( pRemove ), SbxCLASS_METHOD, SbxEMPTY );
- p->SetFlag( SBX_DONTSTORE );
-}
-
-SbxVariable* SbxCollection::FindUserData( UINT32 nData )
-{
- if( GetParameters() )
- {
- SbxObject* pObj = (SbxObject*) GetObject();
- return pObj ? pObj->FindUserData( nData ) : NULL;
- }
- else
- return SbxObject::FindUserData( nData );
-}
-
-SbxVariable* SbxCollection::Find( const XubString& rName, SbxClassType t )
-{
- if( GetParameters() )
- {
- SbxObject* pObj = (SbxObject*) GetObject();
- return pObj ? pObj->Find( rName, t ) : NULL;
- }
- else
- return SbxObject::Find( rName, t );
-}
-
-void SbxCollection::SFX_NOTIFY( SfxBroadcaster& rCst, const TypeId& rId1,
- const SfxHint& rHint, const TypeId& rId2 )
-{
- const SbxHint* p = PTR_CAST(SbxHint,&rHint);
- if( p )
- {
- ULONG nId = p->GetId();
- BOOL bRead = BOOL( nId == SBX_HINT_DATAWANTED );
- BOOL bWrite = BOOL( nId == SBX_HINT_DATACHANGED );
- SbxVariable* pVar = p->GetVar();
- SbxArray* pArg = pVar->GetParameters();
- if( bRead || bWrite )
- {
- XubString aVarName( pVar->GetName() );
- if( pVar == this )
- CollItem( pArg );
- else if( pVar->GetHashCode() == nCountHash
- && aVarName.EqualsIgnoreCaseAscii( pCount ) )
- pVar->PutLong( pObjs->Count() );
- else if( pVar->GetHashCode() == nAddHash
- && aVarName.EqualsIgnoreCaseAscii( pAdd ) )
- CollAdd( pArg );
- else if( pVar->GetHashCode() == nItemHash
- && aVarName.EqualsIgnoreCaseAscii( pItem ) )
- CollItem( pArg );
- else if( pVar->GetHashCode() == nRemoveHash
- && aVarName.EqualsIgnoreCaseAscii( pRemove ) )
- CollRemove( pArg );
- else
- SbxObject::SFX_NOTIFY( rCst, rId1, rHint, rId2 );
- return;
- }
- }
- SbxObject::SFX_NOTIFY( rCst, rId1, rHint, rId2 );
-}
-
-// Default: Argument ist Objekt
-
-void SbxCollection::CollAdd( SbxArray* pPar_ )
-{
- if( pPar_->Count() != 2 )
- SetError( SbxERR_WRONG_ARGS );
- else
- {
- SbxBase* pObj = pPar_->Get( 1 )->GetObject();
- if( !pObj || !( pObj->ISA(SbxObject) ) )
- SetError( SbxERR_NOTIMP );
- else
- Insert( (SbxObject*) pObj );
- }
-}
-
-// Default: Index ab 1 oder der Objektname
-
-void SbxCollection::CollItem( SbxArray* pPar_ )
-{
- if( pPar_->Count() != 2 )
- SetError( SbxERR_WRONG_ARGS );
- else
- {
- SbxVariable* pRes = NULL;
- SbxVariable* p = pPar_->Get( 1 );
- if( p->GetType() == SbxSTRING )
- pRes = Find( p->GetString(), SbxCLASS_OBJECT );
- else
- {
- short n = p->GetInteger();
- if( n >= 1 && n <= (short) pObjs->Count() )
- pRes = pObjs->Get( (USHORT) n - 1 );
- }
- if( !pRes )
- SetError( SbxERR_BAD_INDEX );
- pPar_->Get( 0 )->PutObject( pRes );
- }
-}
-
-// Default: Index ab 1
-
-void SbxCollection::CollRemove( SbxArray* pPar_ )
-{
- if( pPar_->Count() != 2 )
- SetError( SbxERR_WRONG_ARGS );
- else
- {
- short n = pPar_->Get( 1 )->GetInteger();
- if( n < 1 || n > (short) pObjs->Count() )
- SetError( SbxERR_BAD_INDEX );
- else
- Remove( pObjs->Get( (USHORT) n - 1 ) );
- }
-}
-
-BOOL SbxCollection::LoadData( SvStream& rStrm, USHORT nVer )
-{
- BOOL bRes = SbxObject::LoadData( rStrm, nVer );
- Initialize();
- return bRes;
-}
-
-/////////////////////////////////////////////////////////////////////////
-
-SbxStdCollection::SbxStdCollection
- ( const XubString& rClass, const XubString& rElem, BOOL b )
- : SbxCollection( rClass ), aElemClass( rElem ),
- bAddRemoveOk( b )
-{}
-
-SbxStdCollection::SbxStdCollection( const SbxStdCollection& r )
- : SvRefBase( r ), SbxCollection( r ),
- aElemClass( r.aElemClass ), bAddRemoveOk( r.bAddRemoveOk )
-{}
-
-SbxStdCollection& SbxStdCollection::operator=( const SbxStdCollection& r )
-{
- if( &r != this )
- {
- if( !r.aElemClass.EqualsIgnoreCaseAscii( aElemClass ) )
- SetError( SbxERR_CONVERSION );
- else
- SbxCollection::operator=( r );
- }
- return *this;
-}
-
-SbxStdCollection::~SbxStdCollection()
-{}
-
-// Default: Fehler, wenn falsches Objekt
-
-void SbxStdCollection::Insert( SbxVariable* p )
-{
- SbxObject* pObj = PTR_CAST(SbxObject,p);
- if( pObj && !pObj->IsClass( aElemClass ) )
- SetError( SbxERR_BAD_ACTION );
- else
- SbxCollection::Insert( p );
-}
-
-void SbxStdCollection::CollAdd( SbxArray* pPar_ )
-{
- if( !bAddRemoveOk )
- SetError( SbxERR_BAD_ACTION );
- else
- SbxCollection::CollAdd( pPar_ );
-}
-
-void SbxStdCollection::CollRemove( SbxArray* pPar_ )
-{
- if( !bAddRemoveOk )
- SetError( SbxERR_BAD_ACTION );
- else
- SbxCollection::CollRemove( pPar_ );
-}
-
-BOOL SbxStdCollection::LoadData( SvStream& rStrm, USHORT nVer )
-{
- BOOL bRes = SbxCollection::LoadData( rStrm, nVer );
- if( bRes )
- {
- rStrm.ReadByteString( aElemClass, RTL_TEXTENCODING_ASCII_US );
- rStrm >> bAddRemoveOk;
- }
- return bRes;
-}
-
-BOOL SbxStdCollection::StoreData( SvStream& rStrm ) const
-{
- BOOL bRes = SbxCollection::StoreData( rStrm );
- if( bRes )
- {
- rStrm.WriteByteString( aElemClass, RTL_TEXTENCODING_ASCII_US );
- rStrm << bAddRemoveOk;
- }
- return bRes;
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */