20#ifndef INCLUDED_FILTER_MSFILTER_ESCHEREX_HXX
21#define INCLUDED_FILTER_MSFILTER_ESCHEREX_HXX
27#include <com/sun/star/awt/Point.hpp>
28#include <com/sun/star/beans/PropertyState.hpp>
29#include <com/sun/star/drawing/BitmapMode.hpp>
30#include <com/sun/star/awt/XBitmap.hpp>
31#include <com/sun/star/uno/Any.hxx>
32#include <com/sun/star/uno/Reference.hxx>
34#include <rtl/string.hxx>
35#include <rtl/ustring.hxx>
50 namespace drawing {
struct EnhancedCustomShapeParameter; }
51 namespace drawing {
struct Hatch; }
61#define ESCHER_DggContainer 0xF000u
62#define ESCHER_Dgg 0xF006u
63#define ESCHER_OPT 0xF00Bu
64#define ESCHER_SplitMenuColors 0xF11Eu
65#define ESCHER_BstoreContainer 0xF001u
66#define ESCHER_BSE 0xF007u
67#define ESCHER_BlipFirst 0xF018u
69#define ESCHER_DgContainer 0xF002u
70#define ESCHER_Dg 0xF008u
71#define ESCHER_SpgrContainer 0xF003u
72#define ESCHER_SpContainer 0xF004u
73#define ESCHER_Spgr 0xF009u
74#define ESCHER_Sp 0xF00Au
76#define ESCHER_ClientTextbox 0xF00Du
77#define ESCHER_ChildAnchor 0xF00Fu
78#define ESCHER_ClientAnchor 0xF010u
79#define ESCHER_ClientData 0xF011u
80#define ESCHER_SolverContainer 0xF005u
81#define ESCHER_ConnectorRule 0xF012u
82#define ESCHER_UDefProp 0xF122u
105#define ESCHER_ShpInst_Min 0
106#define ESCHER_ShpInst_NotPrimitive ESCHER_ShpInst_Min
107#define ESCHER_ShpInst_Rectangle 1
108#define ESCHER_ShpInst_RoundRectangle 2
109#define ESCHER_ShpInst_Ellipse 3
110#define ESCHER_ShpInst_Arc 19
111#define ESCHER_ShpInst_Line 20
112#define ESCHER_ShpInst_StraightConnector1 32
113#define ESCHER_ShpInst_BentConnector2 33
114#define ESCHER_ShpInst_BentConnector3 34
115#define ESCHER_ShpInst_CurvedConnector3 38
116#define ESCHER_ShpInst_PictureFrame 75
117#define ESCHER_ShpInst_TextPlainText 136
118#define ESCHER_ShpInst_TextDeflateInflateDeflate 167
119#define ESCHER_ShpInst_TextSlantUp 172
120#define ESCHER_ShpInst_HostControl 201
121#define ESCHER_ShpInst_TextBox 202
122#define ESCHER_ShpInst_COUNT 203
123#define ESCHER_ShpInst_Max 0x0FFF
124#define ESCHER_ShpInst_Nil ESCHER_ShpInst_Max
335#define ESCHER_Prop_Rotation 4
337#define ESCHER_Prop_LockAgainstGrouping 127
339#define ESCHER_Prop_lTxid 128
340#define ESCHER_Prop_dxTextLeft 129
341#define ESCHER_Prop_dyTextTop 130
342#define ESCHER_Prop_dxTextRight 131
343#define ESCHER_Prop_dyTextBottom 132
344#define ESCHER_Prop_WrapText 133
345#define ESCHER_Prop_AnchorText 135
346#define ESCHER_Prop_txflTextFlow 136
347#define ESCHER_Prop_hspNext 138
348#define ESCHER_Prop_FitTextToShape 191
350#define ESCHER_Prop_gtextUNICODE 192
351#define ESCHER_Prop_gtextSize 195
352#define ESCHER_Prop_gtextFont 197
354#define ESCHER_Prop_cropFromTop 256
355#define ESCHER_Prop_cropFromBottom 257
356#define ESCHER_Prop_cropFromLeft 258
357#define ESCHER_Prop_cropFromRight 259
358#define ESCHER_Prop_pib 260
359#define ESCHER_Prop_pibName 261
360#define ESCHER_Prop_pibFlags 262
361#define ESCHER_Prop_pictureContrast 264
362#define ESCHER_Prop_pictureBrightness 265
363#define ESCHER_Prop_pictureId 267
364#define ESCHER_Prop_pictureActive 319
366#define ESCHER_Prop_geoLeft 320
367#define ESCHER_Prop_geoTop 321
368#define ESCHER_Prop_geoRight 322
369#define ESCHER_Prop_geoBottom 323
370#define ESCHER_Prop_shapePath 324
371#define ESCHER_Prop_pVertices 325
372#define ESCHER_Prop_pSegmentInfo 326
373#define ESCHER_Prop_adjustValue 327
374#define ESCHER_Prop_adjust2Value 328
375#define ESCHER_Prop_fFillOK 383
377#define ESCHER_Prop_fillType 384
378#define ESCHER_Prop_fillColor 385
379#define ESCHER_Prop_fillOpacity 386
380#define ESCHER_Prop_fillBackColor 387
381#define ESCHER_Prop_fillBackOpacity 388
382#define ESCHER_Prop_fillBlip 390
383#define ESCHER_Prop_fillAngle 395
384#define ESCHER_Prop_fillFocus 396
385#define ESCHER_Prop_fillToLeft 397
386#define ESCHER_Prop_fillToTop 398
387#define ESCHER_Prop_fillToRight 399
388#define ESCHER_Prop_fillToBottom 400
389#define ESCHER_Prop_fillRectRight 403
390#define ESCHER_Prop_fillRectBottom 404
391#define ESCHER_Prop_fNoFillHitTest 447
393#define ESCHER_Prop_lineColor 448
394#define ESCHER_Prop_lineOpacity 449
395#define ESCHER_Prop_lineBackColor 450
396#define ESCHER_Prop_lineWidth 459
397#define ESCHER_Prop_lineStyle 461
398#define ESCHER_Prop_lineDashing 462
399#define ESCHER_Prop_lineStartArrowhead 464
400#define ESCHER_Prop_lineEndArrowhead 465
401#define ESCHER_Prop_lineStartArrowWidth 466
402#define ESCHER_Prop_lineStartArrowLength 467
403#define ESCHER_Prop_lineEndArrowWidth 468
404#define ESCHER_Prop_lineEndArrowLength 469
405#define ESCHER_Prop_lineJoinStyle 470
406#define ESCHER_Prop_lineEndCapStyle 471
407#define ESCHER_Prop_fNoLineDrawDash 511
409#define ESCHER_Prop_shadowColor 513
410#define ESCHER_Prop_shadowOpacity 516
411#define ESCHER_Prop_shadowOffsetX 517
412#define ESCHER_Prop_shadowOffsetY 518
413#define ESCHER_Prop_fshadowObscured 575
415#define ESCHER_Prop_fc3DLightFace 703
417#define ESCHER_Prop_hspMaster 769
418#define ESCHER_Prop_cxstyle 771
419#define ESCHER_Prop_bWMode 772
420#define ESCHER_Prop_fBackground 831
422#define ESCHER_Prop_wzName 896
423#define ESCHER_Prop_wzDescription 897
424#define ESCHER_Prop_pihlShape 898
425#define ESCHER_Prop_dxWrapDistLeft 900
426#define ESCHER_Prop_dyWrapDistTop 901
427#define ESCHER_Prop_dxWrapDistRight 902
428#define ESCHER_Prop_dyWrapDistBottom 903
429#define ESCHER_Prop_tableProperties 927
430#define ESCHER_Prop_tableRowProperties 928
431#define ESCHER_Prop_fHidden 958
432#define ESCHER_Prop_fPrint 959
435#define ESCHER_Persist_PrivateEntry 0x80000000
436#define ESCHER_Persist_Dgg 0x00010000
437#define ESCHER_Persist_Dg 0x00020000
438#define ESCHER_Persist_CurrentPosition 0x00040000
439#define ESCHER_Persist_Grouping_Snap 0x00050000
440#define ESCHER_Persist_Grouping_Logic 0x00060000
449 struct EnhancedCustomShapeAdjustmentValue;
463 sal_uInt32 GetConnectorRule(
bool bFirst );
466 const css::awt::Point& rPA,
467 css::uno::Reference< css::drawing::XShape > xSA ,
468 const css::awt::Point& rPB,
469 css::uno::Reference< css::drawing::XShape > xSB ) :
470 mXConnector (
std::move( xC )),
472 mXConnectToA(
std::move( xSA )),
474 mXConnectToB(
std::move( xSB )) {}
476 static sal_uInt32 GetClosestPoint(
const tools::Polygon& rPoly,
const css::awt::Point& rP );
503 const css::uno::Reference< css::beans::XPropertySet > &,
504 const OUString& rPropertyName,
505 bool bTestPropertyAvailability =
false
509 const css::uno::Reference < css::beans::XPropertySet > &,
510 const OUString& rPropertyName
548 sal_uInt32 nPictureOffset,
575 std::vector<std::unique_ptr<EscherBlibEntry>>
585 sal_uInt32 GetBlibStoreContainerSize(
SvStream const * pMergePicStreamBSE =
nullptr )
const;
586 void WriteBlibStoreContainer(
SvStream& rStrm,
SvStream* pMergePicStreamBSE =
nullptr );
587 void WriteBlibStoreEntry(
SvStream& rStrm, sal_uInt32 nBlipId, sal_uInt32 nResize);
588 sal_uInt32 GetBlibID(
591 const css::awt::Rectangle* pVisArea =
nullptr,
593 const bool ooxmlExport =
false
597 void SetNewBlipStreamOffset( sal_Int32 nOffset );
599 bool GetPrefSize(
const sal_uInt32 nBlibId,
Size& rSize,
MapMode& rMapMode );
601 void SetBaseURI(
const OUString& rBaseURI ) { maBaseURI = rBaseURI; };
615 ::std::vector< std::unique_ptr<EscherShapeListEntry> >
maShapeList;
620 sal_uInt32 GetShapeId(
621 const css::uno::Reference< css::drawing::XShape > & rShape
625 const css::uno::Reference< css::drawing::XShape > &,
630 const css::uno::Reference< css::drawing::XShape > &,
631 const css::awt::Point& rA,
632 css::uno::Reference< css::drawing::XShape >
const &,
633 const css::awt::Point& rB,
634 css::uno::Reference< css::drawing::XShape >
const & rConB
647#define ESCHER_CREATEPOLYGON_LINE 1
648#define ESCHER_CREATEPOLYGON_POLYLINE 2
649#define ESCHER_CREATEPOLYGON_POLYPOLYGON 4
671 std::vector<EscherPropSortStruct>
677 static sal_uInt32 ImplGetColor(
const sal_uInt32 rColor,
bool bSwap =
true );
678 void ImplCreateGraphicAttributes(
679 const css::uno::Reference< css::beans::XPropertySet > & rXPropSet,
681 bool bCreateCroppingAttributes
683 bool ImplCreateEmbeddedBmp(
GraphicObject const & rGraphicObject);
704 sal_uInt32 nSizeReduction,
708 sal_uInt16 nPropertyID,
709 std::u16string_view rString);
712 sal_uInt16 nPropertyID,
713 sal_uInt32 nPropValue,
717 sal_uInt16 nPropertyID,
719 sal_uInt32 nPropValue,
720 const std::vector<sal_uInt8>& rProp);
722 bool GetOpt( sal_uInt16 nPropertyID, sal_uInt32& rPropValue )
const;
728 void Commit(
SvStream& rSt, sal_uInt16 nVersion = 3, sal_uInt16 nRecType =
ESCHER_OPT );
730 void CreateShapeProperties(
731 const css::uno::Reference< css::drawing::XShape > & rXShape
733 bool CreateOLEGraphicProperties(
734 const css::uno::Reference< css::drawing::XShape > & rXOleObject
737 const css::uno::Reference< css::drawing::XShape > & rXShape,
740 bool CreateMediaGraphicProperties(
741 const css::uno::Reference< css::drawing::XShape > & rXMediaObject
745 void CreateEmbeddedBitmapProperties(
746 css::uno::Reference<css::awt::XBitmap>
const & rxBitmap,
747 css::drawing::BitmapMode eBitmapMode
750 void CreateEmbeddedHatchProperties(
751 const css::drawing::Hatch& rHatch,
752 const Color& rBackColor,
760 const css::uno::Reference< css::beans::XPropertySet > & rXPropSet,
761 const OUString& rSource,
762 const bool bCreateFillBitmap,
763 const bool bCreateCroppingAttributes =
false,
764 const bool bFillBitmapModeAllowed =
true,
765 const bool bOOxmlExport =
false
768 bool CreateBlipPropertiesforOLEControl(
const css::uno::Reference< css::beans::XPropertySet > & rXPropSet,
const css::uno::Reference< css::drawing::XShape > & rXShape);
770 bool CreatePolygonProperties(
771 const css::uno::Reference< css::beans::XPropertySet > & rXPropSet,
774 css::awt::Rectangle& rGeoRect,
778 static sal_uInt32 GetGradientColor(
779 const css::awt::Gradient* pGradient,
780 sal_uInt32 nStartColor
785 const css::uno::Reference< css::beans::XPropertySet > &,
786 bool bTransparentGradient =
false
789 void CreateLineProperties(
790 const css::uno::Reference< css::beans::XPropertySet > &,
794 const css::uno::Reference< css::beans::XPropertySet > &,
796 bool bTransparentGradient =
false );
798 const css::uno::Reference< css::beans::XPropertySet > &,
800 const css::uno::Reference< css::drawing::XShape > & rXShape );
801 void CreateTextProperties(
802 const css::uno::Reference< css::beans::XPropertySet > &,
804 const bool bIsCustomShape =
false,
805 const bool bIsTextFrame =
true
808 bool CreateConnectorProperties(
809 const css::uno::Reference< css::drawing::XShape > & rXShape,
811 css::awt::Rectangle& rGeoRect,
812 sal_uInt16& rShapeType,
818 void CreateShadowProperties(
819 const css::uno::Reference< css::beans::XPropertySet > &
822 sal_Int32 GetValueForEnhancedCustomShapeParameter(
const css::drawing::EnhancedCustomShapeParameter& rParameter,
823 const std::vector< sal_Int32 >& rEquationOrder,
bool bAdjustTrans =
false );
825 void CreateCustomShapeProperties(
827 const css::uno::Reference< css::drawing::XShape > &
829 bool IsFontWork()
const;
833 const css::uno::Reference< css::drawing::XShape > & rXShape
836 static MSO_SPT GetCustomShapeType(
837 const css::uno::Reference< css::drawing::XShape > & rXShape,
839 OUString& rShapeType,
845 const bool bLineStart,
846 const css::uno::Reference< css::beans::XPropertySet > & rXPropSet,
848 sal_Int32& rnArrowLength,
849 sal_Int32& rnArrowWidth
852 static bool IsDefaultObject(
856 static void LookForPolarHandles(
858 sal_Int32& nAdjustmentsWhichNeedsToBeConverted
860 static bool GetAdjustmentValue(
const css::drawing::EnhancedCustomShapeAdjustmentValue & rkProp, sal_Int32 nIndex, sal_Int32 nAdjustmentsWhichNeedsToBeConverted, sal_Int32& nValue );
870 bool PtIsID( sal_uInt32 nID );
871 void PtInsert( sal_uInt32 nID, sal_uInt32 nOfs );
872 void PtDelete( sal_uInt32 nID );
873 sal_uInt32 PtGetOffsetByID( sal_uInt32 nID );
874 void PtReplace( sal_uInt32 nID, sal_uInt32 nOfs );
875 void PtReplaceOrInsert( sal_uInt32 nID, sal_uInt32 nOfs );
976 sal_uInt32 GenerateDrawingId();
981 sal_uInt32 GenerateShapeId( sal_uInt32 nDrawingId,
bool bIsInSpgr );
984 sal_uInt32 GetDrawingShapeCount( sal_uInt32 nDrawingId )
const;
987 sal_uInt32 GetLastShapeId( sal_uInt32 nDrawingId )
const;
994 sal_uInt32 GetDggAtomSize()
const;
996 void WriteDggAtom(
SvStream& rStrm )
const;
1019 virtual SvStream* ImplQueryPictureStream();
1026 explicit ClusterEntry( sal_uInt32 nDrawingId ) : mnDrawingId( nDrawingId ), mnNextShapeId( 0 ) {}
1034 explicit DrawingInfo( sal_uInt32 nClusterId ) : mnClusterId( nClusterId ), mnShapeCount( 0 ), mnLastShapeId( 0 ) {}
1072 bool DoSeek( sal_uInt32 nKey );
1075 explicit EscherEx( std::shared_ptr<EscherExGlobal> xGlobal,
SvStream* pOutStrm,
bool bOOXML =
false );
1080 virtual sal_uInt32
GenerateShapeId() {
return mxGlobal->GenerateShapeId( mnCurrentDg, mbEscherSpgr ); }
1097 void Flush(
SvStream* pPicStreamMergeBSE =
nullptr );
1115 void InsertAtCurrentPos( sal_uInt32 nBytes );
1117 void InsertPersistOffset( sal_uInt32 nKey, sal_uInt32 nOffset );
1118 void ReplacePersistOffset( sal_uInt32 nKey, sal_uInt32 nOffset );
1119 sal_uInt32 GetPersistOffset( sal_uInt32 nKey );
1120 bool SeekToPersistOffset( sal_uInt32 nKey );
1121 void InsertAtPersistOffset( sal_uInt32 nKey, sal_uInt32 nValue );
1123 void SetEditAs(
const OUString& rEditAs );
1135 virtual void OpenContainer( sal_uInt16 nEscherContainer,
int nRecInstance = 0 );
1136 virtual void CloseContainer();
1139 void EndAtom( sal_uInt16 nRecType,
int nRecVersion = 0,
int nRecInstance = 0 );
1140 void AddAtom( sal_uInt32 nAtomSitze, sal_uInt16 nRecType,
int nRecVersion = 0,
int nRecInstance = 0 );
1144 virtual sal_uInt32 EnterGroup(
const OUString& rShapeName,
const tools::Rectangle* pBoundRect );
1147 void SetGroupSnapRect( sal_uInt32 nGroupLevel,
const tools::Rectangle& rRect );
1148 void SetGroupLogicRect( sal_uInt32 nGroupLevel,
const tools::Rectangle& rRect );
1149 virtual void LeaveGroup();
1152 virtual void AddShape( sal_uInt32 nShpInstance,
ShapeFlag nFlagIds, sal_uInt32 nShapeID = 0 );
1156 static sal_uInt32 GetColor(
const sal_uInt32 nColor );
1157 static sal_uInt32 GetColor(
const Color& rColor );
1161 void AddSdrPage(
const SdrPage& rPage,
bool ooxmlExport =
false );
1162 void AddUnoShapes(
const css::uno::Reference< css::drawing::XShapes >& rxShapes,
bool ooxmlExport =
false );
1165 sal_uInt32 AddSdrObject(
const SdrObject& rObj,
bool ooxmlExport =
false, sal_uInt32 nId = 0);
1174 void EndSdrObjectPage();
1180 const css::uno::Reference< css::drawing::XShape >& rShape,
1185 virtual void EndShape( sal_uInt16 nShapeType, sal_uInt32 nShapeID );
1206 virtual sal_uInt32 QueryTextID(
const css::uno::Reference< css::drawing::XShape >&, sal_uInt32 nShapeId );
1208 sal_uInt32 AddDummyShape();
1210 static const SdrObject* GetSdrObject(
const css::uno::Reference< css::drawing::XShape >& rXShape );
EscherBlibEntry(sal_uInt32 nPictureOffset, const GraphicObject &rObj, const OString &rId, const GraphicAttr *pAttr)
sal_uInt32 mnPictureOffset
bool mbIsNativeGraphicPossible
sal_uInt32 mnIdentifier[4]
void WriteBlibEntry(SvStream &rSt, bool bWritePictureOffset, sal_uInt32 nResize=0)
bool operator==(const EscherBlibEntry &) const
ESCHER_BlibType meBlibType
abstract base class for ESCHER_ClientAnchor
virtual void WriteData(EscherEx &rEx, const tools::Rectangle &rRect)=0
Application writes the record header using rEx.AddAtom(...) followed by record data written to rEx....
abstract base class for ESCHER_ClientTextbox, ESCHER_ClientData
virtual void WriteData(EscherEx &rEx) const =0
Application writes the record header using rEx.AddAtom(...) followed by record data written to rEx....
Instance for global DFF data, shared through various instances of EscherEx.
bool mbPicStrmQueried
True = the DGGCONTAINER has been initialized.
::std::vector< DrawingInfo > DrawingInfoVector
DrawingInfoVector maDrawingInfos
List with cluster IDs (used object IDs in drawings).
SvStream * mpPicStrm
Data about all used drawings.
void SetDggContainer()
Sets the flag indicating that the DGGCONTAINER exists.
SvStream * GetPictureStream()
Returns the picture stream if existing (queried), otherwise null.
bool mbHasDggCont
Cached result of ImplQueryPictureStream().
bool HasDggContainer() const
Sets the flag indicating that the DGGCONTAINER exists.
std::vector< ClusterEntry > maClusterTable
EscherExClientAnchor_Base * pClientAnchor
void SetInteractionInfo(InteractionInfo *p)
EscherExClientRecord_Base * pClientData
EscherExClientAnchor_Base * GetClientAnchor() const
bool DontWriteShape() const
void SetDontWriteShape(bool b)
EscherExClientRecord_Base * pClientTextbox
void SetClientAnchor(EscherExClientAnchor_Base *p)
void WriteClientAnchor(EscherEx &rEx, const tools::Rectangle &rRect)
void WriteClientTextbox(EscherEx &rEx)
InteractionInfo * pInteractionInfo
InteractionInfo * GetInteractionInfo() const
void SetClientTextbox(EscherExClientRecord_Base *p)
void SetClientData(EscherExClientRecord_Base *p)
EscherExClientRecord_Base * GetClientTextbox() const
void WriteClientData(EscherEx &rEx)
SdrLayerID GetHellLayerId() const
void SetHellLayerId(SdrLayerID nId)
virtual sal_uInt32 GenerateShapeId()
Creates and returns a new shape identifier, updates the internal shape counters and registers the ide...
sal_uInt32 mnStrmStartOfs
std::shared_ptr< EscherExGlobal > mxGlobal
std::unique_ptr< ImplEESdrWriter > mpImplEESdrWriter
const OUString & GetEditAs() const
virtual void AddSdrObjectVMLObject(const SdrObject &)
sal_uInt64 GetStreamPos() const
EscherEx(const EscherEx &)=delete
SvStream & GetStream() const
std::vector< sal_uInt32 > mOffsets
EscherGraphicProvider & GetGraphicProvider()
Returns the graphic provider from the global object that has been passed to the constructor.
EscherEx & operator=(const EscherEx &)=delete
SvStream * QueryPictureStream()
Called if a picture shall be written and no picture stream is set at class ImplEESdrWriter.
std::unique_ptr< SvStream > mxOwnStrm
std::vector< sal_uInt16 > mRecTypes
sal_uInt32 GetGroupLevel() const
EscherGraphicProvider(EscherGraphicProvider const &)=delete
void SetBaseURI(const OUString &rBaseURI)
const OUString & GetBaseURI() const
EscherGraphicProviderFlags mnFlags
std::vector< std::unique_ptr< EscherBlibEntry > > mvBlibEntrys
EscherGraphicProvider & operator=(EscherGraphicProvider const &)=delete
EscherPersistTable(EscherPersistTable const &)=delete
EscherPersistTable & operator=(EscherPersistTable const &)=delete
::std::vector< std::unique_ptr< EscherPersistEntry > > maPersistTable
bool CreateGraphicProperties(const css::uno::Reference< css::beans::XPropertySet > &rXPropSet, const OUString &rSource, const bool bCreateFillBitmap, const bool bCreateCroppingAttributes=false, const bool bFillBitmapModeAllowed=true, const bool bOOxmlExport=false)
bool CreateGraphicProperties(const css::uno::Reference< css::drawing::XShape > &rXShape, const GraphicObject &rGraphicObj)
void CreateFillProperties(const css::uno::Reference< css::beans::XPropertySet > &, bool bEdge, const css::uno::Reference< css::drawing::XShape > &rXShape)
tools::Rectangle * pShapeBoundRect
void CreateGradientProperties(const css::uno::Reference< css::beans::XPropertySet > &, bool bTransparentGradient=false)
std::vector< EscherPropSortStruct > pSortStruct
void CreateGradientProperties(const css::awt::Gradient &rGradient)
static tools::PolyPolygon GetPolyPolygon(const css::uno::Reference< css::drawing::XShape > &rXShape)
EscherGraphicProvider * pGraphicProvider
static tools::PolyPolygon GetPolyPolygon(const css::uno::Any &rSource)
void CreateFillProperties(const css::uno::Reference< css::beans::XPropertySet > &, bool bEdge, bool bTransparentGradient=false)
::std::vector< std::unique_ptr< EscherConnectorListEntry > > maConnectorList
::std::vector< std::unique_ptr< EscherShapeListEntry > > maShapeList
EscherSolverContainer & operator=(EscherSolverContainer const &)=delete
EscherSolverContainer(EscherSolverContainer const &)=delete
std::unique_ptr< SvMemoryStream > mpHyperlinkRecord
InteractionInfo(SvMemoryStream *pStream)
const std::unique_ptr< SvMemoryStream > & getHyperlinkRecord() const
@ ESCHER_ShapeCurvesClosed
@ ESCHER_ShapeLinesClosed
@ ESCHER_AnchorTopBaseline
@ ESCHER_AnchorMiddleCentered
@ ESCHER_AnchorBottomBaseline
@ ESCHER_AnchorTopCenteredBaseline
@ ESCHER_AnchorTopCentered
@ ESCHER_AnchorBottomCenteredBaseline
@ ESCHER_AnchorBottomCentered
std::vector< EscherPropSortStruct > EscherProperties
@ ESCHER_bwLightGrayScale
@ ESCHER_LineEndCapSquare
@ ESCHER_LineMediumWidthArrow
@ ESCHER_BlipFlagLinkToFile
@ ESCHER_BlipFlagDoNotSave
@ ESCHER_LineMediumLenArrow
const sal_uInt32 DFF_DGG_CLUSTER_SIZE
@ ESCHER_LineLongDashDotDotGEL
@ ESCHER_LineDashDotDotSys
@ ESCHER_LineLongDashDotGEL
EscherGraphicProviderFlags
@ ESCHER_LineArrowOvalEnd
@ ESCHER_LineArrowStealthEnd
@ ESCHER_LineArrowOpenEnd
@ ESCHER_LineArrowDiamondEnd
static basegfx::B2DPolyPolygon GetLineArrow(const sal_Int32 nLineWidth, const sal_uInt32 eLineEnd, const sal_uInt32 eLineWidth, const sal_uInt32 eLineLength, sal_Int32 &rnArrowWidth, bool &rbArrowCenter, OUString &rsArrowName, bool bScaleArrow)
#define MSFILTER_DLLPUBLIC
class SAL_NO_VTABLE XPropertySet
Shape IDs per cluster in DGG atom.
css::uno::Reference< css::drawing::XShape > mXConnectToB
css::uno::Reference< css::drawing::XShape > mXConnectToA
EscherConnectorListEntry(css::uno::Reference< css::drawing::XShape > xC, const css::awt::Point &rPA, css::uno::Reference< css::drawing::XShape > xSA, const css::awt::Point &rPB, css::uno::Reference< css::drawing::XShape > xSB)
css::uno::Reference< css::drawing::XShape > mXConnector
sal_uInt32 mnNextShapeId
Identifier of drawing this cluster belongs to (one-based index into maDrawingInfos).
ClusterEntry(sal_uInt32 nDrawingId)
Next free shape identifier in this cluster.
DrawingInfo(sal_uInt32 nClusterId)
Last shape identifier generated for this drawing.
sal_uInt32 mnShapeCount
Currently used cluster (one-based index into maClusterTable).
sal_uInt32 mnLastShapeId
Current number of shapes in this drawing.
EscherPersistEntry(sal_uInt32 nId, sal_uInt32 nOffset)
std::vector< sal_uInt8 > nProp
static css::beans::PropertyState GetPropertyState(const css::uno::Reference< css::beans::XPropertySet > &, const OUString &rPropertyName)
static bool GetPropertyValue(css::uno::Any &rAny, const css::uno::Reference< css::beans::XPropertySet > &, const OUString &rPropertyName, bool bTestPropertyAvailability=false)