diff options
author | Sven Jacobi <sj@openoffice.org> | 2000-11-20 13:52:35 +0000 |
---|---|---|
committer | Sven Jacobi <sj@openoffice.org> | 2000-11-20 13:52:35 +0000 |
commit | 50d028997bd1b7c029f0b0f73cbae89dbeaff422 (patch) | |
tree | a9503cd9a8c04f6fa75a0e0b11a291e33d08a799 /sd/source/filter/eppt/escherex.cxx | |
parent | bd027941c434340606c8c9396b3642f487f05e4b (diff) |
EnterGroup now has additional parameter that makes it possible to write ClientData
Diffstat (limited to 'sd/source/filter/eppt/escherex.cxx')
-rw-r--r-- | sd/source/filter/eppt/escherex.cxx | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/sd/source/filter/eppt/escherex.cxx b/sd/source/filter/eppt/escherex.cxx index 0d6a4bd149cc..6af151a7223d 100644 --- a/sd/source/filter/eppt/escherex.cxx +++ b/sd/source/filter/eppt/escherex.cxx @@ -2,9 +2,9 @@ * * $RCSfile: escherex.cxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: sj $ $Date: 2000-11-03 18:01:54 $ + * last change: $Author: sj $ $Date: 2000-11-20 14:52:35 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -939,7 +939,7 @@ void _EscherEx::AddClientAnchor( const Rectangle& rRect ) // --------------------------------------------------------------------------------------------- -void _EscherEx::EnterGroup( Rectangle* pBoundRect ) +void _EscherEx::EnterGroup( Rectangle* pBoundRect, SvMemoryStream* pClientData ) { Rectangle aRect; if ( pBoundRect ) @@ -955,18 +955,26 @@ void _EscherEx::EnterGroup( Rectangle* pBoundRect ) << (INT32)aRect.Bottom(); if ( !mnGroupLevel ) - { AddShape( _Escher_ShpInst_Min, 5 ); // Flags: Group | Patriarch - CloseContainer(); // _Escher_SpContainer - } else { AddShape( _Escher_ShpInst_Min, 0x201 ); // Flags: Group | HaveAnchor AddAtom( 8, _Escher_ClientAnchor ); PtReplaceOrInsert( _Escher_Persist_Grouping_Logic | mnGroupLevel, mpOutStrm->Tell() ); *mpOutStrm << (INT16)aRect.Top() << (INT16)aRect.Left() << (INT16)aRect.Right() << (INT16)aRect.Bottom(); - CloseContainer(); // _Escher_SpContainer } + if ( pClientData ) + { + pClientData->Seek( STREAM_SEEK_TO_END ); + sal_uInt32 nSize = pClientData->Tell(); + if ( nSize ) + { + *mpOutStrm << (sal_uInt32)( ( _Escher_ClientData << 16 ) | 0xf ) + << nSize; + mpOutStrm->Write( pClientData->GetData(), nSize ); + } + } + CloseContainer(); // _Escher_SpContainer mnGroupLevel++; } |