summaryrefslogtreecommitdiff
path: root/sc/source/filter/inc/xcl97rec.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/filter/inc/xcl97rec.hxx')
-rw-r--r--sc/source/filter/inc/xcl97rec.hxx118
1 files changed, 28 insertions, 90 deletions
diff --git a/sc/source/filter/inc/xcl97rec.hxx b/sc/source/filter/inc/xcl97rec.hxx
index 2c6ae2f9ab0c..7a2a33795520 100644
--- a/sc/source/filter/inc/xcl97rec.hxx
+++ b/sc/source/filter/inc/xcl97rec.hxx
@@ -32,88 +32,35 @@
#include "xcl97esc.hxx"
#include "xlstyle.hxx"
-#include <vector>
-
-// --- class XclMsodrawing_Base --------------------------------------
-
-class XclMsodrawing_Base
-{
-protected:
- XclEscher* pEscher;
- sal_Size nStartPos; // position in OffsetMap
- sal_Size nStopPos; // position in OffsetMap
-
-public:
- XclMsodrawing_Base( XclEscher& rEscher, sal_Size nInitialSize = 0 );
- virtual ~XclMsodrawing_Base();
-
- inline XclEscher* GetEscher() const { return pEscher; }
- inline XclEscherEx* GetEscherEx() const { return pEscher->GetEx(); }
- void UpdateStopPos();
- sal_Size GetDataLen() const;
-};
-
-
-// --- class XclMsodrawinggroup --------------------------------------
-
-class XclMsodrawinggroup : public XclMsodrawing_Base, public XclExpRecord
-{
-private:
-
- virtual void WriteBody( XclExpStream& rStrm );
-
-public:
- XclMsodrawinggroup( RootData& rRoot,
- UINT16 nEscherType = 0 );
- virtual ~XclMsodrawinggroup();
-};
-
-
-// --- class XclMsodrawing -------------------------------------------
-
-class XclMsodrawing : public XclMsodrawing_Base, public XclExpRecord
-{
-private:
-
- virtual void WriteBody( XclExpStream& rStrm );
-
-public:
- XclMsodrawing(
- const XclExpRoot& rRoot,
- UINT16 nEscherType = 0,
- sal_Size nInitialSize = 0 );
- virtual ~XclMsodrawing();
-};
-
-
-// --- class XclObjList ----------------------------------------------
+// ============================================================================
class XclObj;
-class XclMsodrawing;
+class XclExpMsoDrawing;
-class XclObjList : public List, public ExcEmptyRec, protected XclExpRoot
+class XclExpObjList : public List, public ExcEmptyRec, protected XclExpRoot
{
-private:
- XclMsodrawing* pMsodrawingPerSheet;
- XclMsodrawing* pSolverContainer;
-
public:
- XclObjList( const XclExpRoot& rRoot );
- virtual ~XclObjList();
+ explicit XclExpObjList( const XclExpRoot& rRoot, XclEscherEx& rEscherEx );
+ virtual ~XclExpObjList();
- XclObj* First() { return (XclObj*) List::First(); }
- XclObj* Next() { return (XclObj*) List::Next(); }
+ XclObj* First() { return (XclObj*) List::First(); }
+ XclObj* Next() { return (XclObj*) List::Next(); }
- /// return: 1-based ObjId
- ///! count>=0xFFFF: Obj will be deleted, return 0
- UINT16 Add( XclObj* );
+ /// return: 1-based ObjId
+ ///! count>=0xFFFF: Obj will be deleted, return 0
+ UINT16 Add( XclObj* );
- inline XclMsodrawing* GetMsodrawingPerSheet() { return pMsodrawingPerSheet; }
+ inline XclExpMsoDrawing* GetMsodrawingPerSheet() { return pMsodrawingPerSheet; }
/// close groups and DgContainer opened in ctor
- void EndSheet();
+ void EndSheet();
- virtual void Save( XclExpStream& rStrm );
+ virtual void Save( XclExpStream& rStrm );
+
+private:
+ XclEscherEx& mrEscherEx;
+ XclExpMsoDrawing* pMsodrawingPerSheet;
+ XclExpMsoDrawing* pSolverContainer;
};
@@ -125,8 +72,9 @@ class SdrTextObj;
class XclObj : public XclExpRecord
{
protected:
- XclMsodrawing* pMsodrawing;
- XclMsodrawing* pClientTextbox;
+ XclEscherEx& mrEscherEx;
+ XclExpMsoDrawing* pMsodrawing;
+ XclExpMsoDrawing* pClientTextbox;
XclTxo* pTxo;
sal_uInt16 mnObjType;
UINT16 nObjId;
@@ -137,7 +85,9 @@ protected:
/** @param bOwnEscher If set to true, this object will create its escher data.
See SetOwnEscher() for details. */
- explicit XclObj( const XclExpRoot& rRoot, sal_uInt16 nObjType, bool bOwnEscher = false );
+ explicit XclObj( XclExpObjectManager& rObjMgr, sal_uInt16 nObjType, bool bOwnEscher = false );
+
+ void ImplWriteAnchor( const XclExpRoot& rRoot, const SdrObject* pSdrObj, const Rectangle* pChildAnchor );
// overwritten for writing MSODRAWING record
virtual void WriteBody( XclExpStream& rStrm );
@@ -179,27 +129,15 @@ public:
//! actually writes ESCHER_ClientTextbox
void SetText( const XclExpRoot& rRoot, const SdrTextObj& rObj );
- inline void UpdateStopPos();
-
virtual void Save( XclExpStream& rStrm );
};
-
-inline void XclObj::UpdateStopPos()
-{
- if ( pClientTextbox )
- pClientTextbox->UpdateStopPos();
- else
- pMsodrawing->UpdateStopPos();
-}
-
-
// --- class XclObjComment -------------------------------------------
class XclObjComment : public XclObj
{
public:
- XclObjComment( const XclExpRoot& rRoot,
+ XclObjComment( XclExpObjectManager& rObjMgr,
const Rectangle& rRect, const EditTextObject& rEditObj, SdrObject* pCaption, bool bVisible );
virtual ~XclObjComment();
@@ -224,7 +162,7 @@ private:
protected:
public:
- XclObjDropDown( const XclExpRoot& rRoot, const ScAddress& rPos, BOOL bFilt );
+ XclObjDropDown( XclExpObjectManager& rObjMgr, const ScAddress& rPos, BOOL bFilt );
virtual ~XclObjDropDown();
};
@@ -271,7 +209,7 @@ private:
virtual void WriteSubRecs( XclExpStream& rStrm );
public:
- XclObjOle( const XclExpRoot& rRoot, const SdrObject& rObj );
+ XclObjOle( XclExpObjectManager& rObjMgr, const SdrObject& rObj );
virtual ~XclObjOle();
virtual void Save( XclExpStream& rStrm );
@@ -286,7 +224,7 @@ private:
virtual void WriteSubRecs( XclExpStream& rStrm );
public:
- XclObjAny( const XclExpRoot& rRoot );
+ XclObjAny( XclExpObjectManager& rObjMgr );
virtual ~XclObjAny();
virtual void Save( XclExpStream& rStrm );