summaryrefslogtreecommitdiff
path: root/svtools/inc/svtools/grfmgr.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/inc/svtools/grfmgr.hxx')
-rw-r--r--svtools/inc/svtools/grfmgr.hxx714
1 files changed, 0 insertions, 714 deletions
diff --git a/svtools/inc/svtools/grfmgr.hxx b/svtools/inc/svtools/grfmgr.hxx
deleted file mode 100644
index f7560058c4..0000000000
--- a/svtools/inc/svtools/grfmgr.hxx
+++ /dev/null
@@ -1,714 +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.
- *
- ************************************************************************/
-
-#ifndef _GRFMGR_HXX
-#define _GRFMGR_HXX
-
-#include <vcl/graph.hxx>
-#include <svtools/svtdllapi.h>
-
-// -----------
-// - Defines -
-// -----------
-
-#define GRFMGR_DRAW_NOTCACHED 0x00000000UL
-#define GRFMGR_DRAW_CACHED 0x00000001UL
-#define GRFMGR_DRAW_BILINEAR 0x00000002UL
-#define GRFMGR_DRAW_USE_DRAWMODE_SETTINGS 0x00000004UL
-#define GRFMGR_DRAW_SUBSTITUTE 0x00000008UL
-#define GRFMGR_DRAW_NO_SUBSTITUTE 0x00000010UL
-#define GRFMGR_DRAW_STANDARD (GRFMGR_DRAW_CACHED|GRFMGR_DRAW_BILINEAR)
-
-// --------------------
-// - AutoSwap Defines -
-// --------------------
-
-#define GRFMGR_AUTOSWAPSTREAM_LINK ((SvStream*)0x00000000UL)
-#define GRFMGR_AUTOSWAPSTREAM_LOADED ((SvStream*)0xfffffffdUL)
-#define GRFMGR_AUTOSWAPSTREAM_TEMP ((SvStream*)0xfffffffeUL)
-#define GRFMGR_AUTOSWAPSTREAM_NONE ((SvStream*)0xffffffffUL)
-
-// ----------------------
-// - Adjustment Defines -
-// ----------------------
-
-#define ADJUSTMENT_NONE 0x00000000UL
-#define ADJUSTMENT_DRAWMODE 0x00000001UL
-#define ADJUSTMENT_COLORS 0x00000002UL
-#define ADJUSTMENT_MIRROR 0x00000004UL
-#define ADJUSTMENT_ROTATE 0x00000008UL
-#define ADJUSTMENT_TRANSPARENCY 0x00000010UL
-#define ADJUSTMENT_ALL 0xFFFFFFFFUL
-
-// ---------
-// - Enums -
-// ---------
-
-enum GraphicDrawMode
-{
- GRAPHICDRAWMODE_STANDARD = 0,
- GRAPHICDRAWMODE_GREYS = 1,
- GRAPHICDRAWMODE_MONO = 2,
- GRAPHICDRAWMODE_WATERMARK = 3
-};
-
-// ------------
-// - Forwards -
-// ------------
-
-class GraphicManager;
-class SvStream;
-class BitmapWriteAccess;
-class GraphicCache;
-class VirtualDevice;
-struct GrfSimpleCacheObj;
-struct ImplTileInfo;
-
-// ---------------
-// - GraphicAttr -
-// ---------------
-
-class SVT_DLLPUBLIC GraphicAttr
-{
-private:
-
- long mnDummy1;
- long mnDummy2;
- double mfGamma;
- sal_uInt32 mnMirrFlags;
- long mnLeftCrop;
- long mnTopCrop;
- long mnRightCrop;
- long mnBottomCrop;
- sal_uInt16 mnRotate10;
- short mnContPercent;
- short mnLumPercent;
- short mnRPercent;
- short mnGPercent;
- short mnBPercent;
- sal_Bool mbInvert;
- sal_uInt8 mcTransparency;
- GraphicDrawMode meDrawMode;
-
- void* mpDummy;
-
-public:
-
- GraphicAttr();
- ~GraphicAttr();
-
- sal_Bool operator==( const GraphicAttr& rAttr ) const;
- sal_Bool operator!=( const GraphicAttr& rAttr ) const { return !( *this == rAttr ); }
-
- void SetDrawMode( GraphicDrawMode eDrawMode ) { meDrawMode = eDrawMode; }
- GraphicDrawMode GetDrawMode() const { return meDrawMode; }
-
- void SetMirrorFlags( sal_uLong nMirrFlags ) { mnMirrFlags = nMirrFlags; }
- sal_uLong GetMirrorFlags() const { return mnMirrFlags; }
-
- void SetCrop( long nLeft_100TH_MM, long nTop_100TH_MM, long nRight_100TH_MM, long nBottom_100TH_MM )
- {
- mnLeftCrop = nLeft_100TH_MM; mnTopCrop = nTop_100TH_MM;
- mnRightCrop = nRight_100TH_MM; mnBottomCrop = nBottom_100TH_MM;
- }
- long GetLeftCrop() const { return mnLeftCrop; }
- long GetTopCrop() const { return mnTopCrop; }
- long GetRightCrop() const { return mnRightCrop; }
- long GetBottomCrop() const { return mnBottomCrop; }
-
- void SetRotation( sal_uInt16 nRotate10 ) { mnRotate10 = nRotate10; }
- sal_uInt16 GetRotation() const { return mnRotate10; }
-
- void SetLuminance( short nLuminancePercent ) { mnLumPercent = nLuminancePercent; }
- short GetLuminance() const { return mnLumPercent; }
-
- void SetContrast( short nContrastPercent ) { mnContPercent = nContrastPercent; }
- short GetContrast() const { return mnContPercent; }
-
- void SetChannelR( short nChannelRPercent ) { mnRPercent = nChannelRPercent; }
- short GetChannelR() const { return mnRPercent; }
-
- void SetChannelG( short nChannelGPercent ) { mnGPercent = nChannelGPercent; }
- short GetChannelG() const { return mnGPercent; }
-
- void SetChannelB( short nChannelBPercent ) { mnBPercent = nChannelBPercent; }
- short GetChannelB() const { return mnBPercent; }
-
- void SetGamma( double fGamma ) { mfGamma = fGamma; }
- double GetGamma() const { return mfGamma; }
-
- void SetInvert( sal_Bool bInvert ) { mbInvert = bInvert; }
- sal_Bool IsInvert() const { return mbInvert; }
-
- void SetTransparency( sal_uInt8 cTransparency ) { mcTransparency = cTransparency; }
- sal_uInt8 GetTransparency() const { return mcTransparency; }
-
- sal_Bool IsSpecialDrawMode() const { return( meDrawMode != GRAPHICDRAWMODE_STANDARD ); }
- sal_Bool IsMirrored() const { return( mnMirrFlags != 0UL ); }
- sal_Bool IsCropped() const
- {
- return( mnLeftCrop != 0 || mnTopCrop != 0 ||
- mnRightCrop != 0 || mnBottomCrop != 0 );
- }
- sal_Bool IsRotated() const { return( ( mnRotate10 % 3600 ) != 0 ); }
- sal_Bool IsTransparent() const { return( mcTransparency > 0 ); }
- sal_Bool IsAdjusted() const
- {
- return( mnLumPercent != 0 || mnContPercent != 0 || mnRPercent != 0 ||
- mnGPercent != 0 || mnBPercent != 0 || mfGamma != 1.0 || mbInvert );
- }
-
- friend SvStream& operator<<( SvStream& rOStm, const GraphicAttr& rAttr );
- friend SvStream& operator>>( SvStream& rIStm, GraphicAttr& rAttr );
-};
-
-// -----------------
-// - GraphicObject -
-// -----------------
-
-class SVT_DLLPUBLIC GraphicObject : public SvDataCopyStream
-{
- friend class GraphicManager;
-
-private:
-
- static GraphicManager* mpGlobalMgr;
-
- Graphic maGraphic;
- GraphicAttr maAttr;
- Size maPrefSize;
- MapMode maPrefMapMode;
- sal_uLong mnSizeBytes;
- GraphicType meType;
- GraphicManager* mpMgr;
- String* mpLink;
- Link* mpSwapStreamHdl;
- String* mpUserData;
- Timer* mpSwapOutTimer;
- GrfSimpleCacheObj* mpSimpleCache;
- sal_uLong mnAnimationLoopCount;
- void* mpDummy1;
- void* mpDummy2;
- sal_Bool mbAutoSwapped : 1;
- sal_Bool mbTransparent : 1;
- sal_Bool mbAnimated : 1;
- sal_Bool mbEPS : 1;
- sal_Bool mbIsInSwapIn : 1;
- sal_Bool mbIsInSwapOut : 1;
- sal_Bool mbAlpha : 1;
- sal_Bool mbDummyFlag8 : 1;
- sal_Bool mbIsRenderGraphic : 1;
- sal_Bool mbHasRenderGraphic : 1;
-
- void SVT_DLLPRIVATE ImplConstruct();
- void SVT_DLLPRIVATE ImplAssignGraphicData();
- void SVT_DLLPRIVATE ImplSetGraphicManager(
- const GraphicManager* pMgr,
- const ByteString* pID = NULL,
- const GraphicObject* pCopyObj = NULL
- );
- void SVT_DLLPRIVATE ImplAutoSwapIn();
- sal_Bool SVT_DLLPRIVATE ImplIsAutoSwapped() const { return mbAutoSwapped; }
- sal_Bool SVT_DLLPRIVATE ImplGetCropParams(
- OutputDevice* pOut,
- Point& rPt,
- Size& rSz,
- const GraphicAttr* pAttr,
- PolyPolygon& rClipPolyPoly,
- sal_Bool& bRectClipRegion
- ) const;
-
- /** Render a given number of tiles in an optimized way
-
- This method recursively subdivides the tile rendering problem
- in smaller parts, i.e. rendering output size x with few tiles
- of size y, which in turn are generated from the original
- bitmap in a recursive fashion. The subdivision size can be
- controlled by the exponent argument, which specifies the
- minimal number of smaller tiles used in one recursion
- step. The resulting tile size is given as the integer number
- of repetitions of the original bitmap along x and y. As the
- exponent need not necessarily divide these numbers without
- remainder, the repetition counts are effectively converted to
- base-exponent numbers, where each place denotes the number of
- times the corresponding tile size is rendered.
-
- @param rVDev
- Virtual device to render everything into
-
- @param nExponent
- Number of repetitions per subdivision step, _must_ be greater than 1
-
- @param nNumTilesX
- Number of original tiles to generate in x direction
-
- @param nNumTilesY
- Number of original tiles to generate in y direction
-
- @param rTileSizePixel
- Size in pixel of the original tile bitmap to render it in
-
- @param pAttr
- Graphic attributes to be used for rendering
-
- @param nFlags
- Graphic flags to be used for rendering
-
- @param rCurrPos
- Current output point for this recursion level (should start with (0,0))
-
- @return true, if everything was successfully rendered.
- */
- bool SVT_DLLPRIVATE ImplRenderTempTile(
- VirtualDevice& rVDev,
- int nExponent,
- int nNumTilesX,
- int nNumTilesY,
- const Size& rTileSizePixel,
- const GraphicAttr* pAttr,
- sal_uLong nFlags
- );
-
- /// internally called by ImplRenderTempTile()
- bool SVT_DLLPRIVATE ImplRenderTileRecursive(
- VirtualDevice& rVDev,
- int nExponent,
- int nMSBFactor,
- int nNumOrigTilesX,
- int nNumOrigTilesY,
- int nRemainderTilesX,
- int nRemainderTilesY,
- const Size& rTileSizePixel,
- const GraphicAttr* pAttr,
- sal_uLong nFlags,
- ImplTileInfo& rTileInfo
- );
-
- bool SVT_DLLPRIVATE ImplDrawTiled(
- OutputDevice* pOut,
- const Rectangle& rArea,
- const Size& rSizePixel,
- const Size& rOffset,
- const GraphicAttr* pAttr,
- sal_uLong nFlags,
- int nTileCacheSize1D
- );
-
- bool SVT_DLLPRIVATE ImplDrawTiled(
- OutputDevice& rOut,
- const Point& rPos,
- int nNumTilesX,
- int nNumTilesY,
- const Size& rTileSize,
- const GraphicAttr* pAttr,
- sal_uLong nFlags
- );
-
- void SVT_DLLPRIVATE ImplTransformBitmap(
- BitmapEx& rBmpEx,
- const GraphicAttr& rAttr,
- const Size& rCropLeftTop,
- const Size& rCropRightBottom,
- const Rectangle& rCropRect,
- const Size& rDstSize,
- sal_Bool bEnlarge
- ) const;
-
- DECL_LINK( ImplAutoSwapOutHdl, void* );
-
-protected:
-
- virtual void GraphicManagerDestroyed();
- virtual SvStream* GetSwapStream() const;
-
- // !!! to be removed
- virtual sal_uLong GetReleaseFromCache() const;
-
- virtual void Load( SvStream& );
- virtual void Save( SvStream& );
- virtual void Assign( const SvDataCopyStream& );
-
-public:
-
- TYPEINFO();
-
- GraphicObject( const GraphicManager* pMgr = NULL );
- GraphicObject( const Graphic& rGraphic, const GraphicManager* pMgr = NULL );
- GraphicObject( const Graphic& rGraphic, const String& rLink, const GraphicManager* pMgr = NULL );
- GraphicObject( const GraphicObject& rCacheObj, const GraphicManager* pMgr = NULL );
- GraphicObject( const ByteString& rUniqueID, const GraphicManager* pMgr = NULL );
- ~GraphicObject();
-
- GraphicObject& operator=( const GraphicObject& rCacheObj );
- sal_Bool operator==( const GraphicObject& rCacheObj ) const;
- sal_Bool operator!=( const GraphicObject& rCacheObj ) const { return !( *this == rCacheObj ); }
-
- sal_Bool HasSwapStreamHdl() const { return( mpSwapStreamHdl != NULL && mpSwapStreamHdl->IsSet() ); }
- void SetSwapStreamHdl();
- void SetSwapStreamHdl( const Link& rHdl, const sal_uLong nSwapOutTimeout = 0UL );
- Link GetSwapStreamHdl() const;
- sal_uLong GetSwapOutTimeout() const { return( mpSwapOutTimer ? mpSwapOutTimer->GetTimeout() : 0 ); }
-
- void FireSwapInRequest();
- void FireSwapOutRequest();
-
- void SetGraphicManager( const GraphicManager& rMgr );
- GraphicManager& GetGraphicManager() const { return *mpMgr; }
-
- sal_Bool IsCached(
- OutputDevice* pOut,
- const Point& rPt,
- const Size& rSz,
- const GraphicAttr* pAttr = NULL,
- sal_uLong nFlags = GRFMGR_DRAW_STANDARD
- ) const;
- void ReleaseFromCache();
-
- const Graphic& GetGraphic() const;
- void SetGraphic( const Graphic& rGraphic, const GraphicObject* pCopyObj = 0);
- void SetGraphic( const Graphic& rGraphic, const String& rLink );
-
- /** Get graphic transformed according to given attributes
-
- This method returns a Graphic transformed, cropped and scaled
- to the given parameters, ready to be rendered to printer or
- display. The returned graphic has the same visual appearance
- as if it had been drawn via GraphicObject::Draw() to a
- specific output device.
-
- @param rDestSize
- Desired output size in logical coordinates. The mapmode to
- interpret these logical coordinates in is given by the second
- parameter, rDestMap.
-
- @param rDestMap
- Mapmode the output should be interpreted in. This is used to
- interpret rDestSize, to set the appropriate PrefMapMode on the
- returned Graphic, and to deal correctly with metafile graphics.
-
- @param rAttr
- Graphic attributes used to transform the graphic. This
- includes cropping, rotation, mirroring, and various color
- adjustment parameters.
-
- @return the readily transformed Graphic
- */
- Graphic GetTransformedGraphic(
- const Size& rDestSize,
- const MapMode& rDestMap,
- const GraphicAttr& rAttr
- ) const;
- Graphic GetTransformedGraphic( const GraphicAttr* pAttr = NULL ) const; // TODO: Change to Impl
-
- void SetAttr( const GraphicAttr& rAttr );
- const GraphicAttr& GetAttr() const { return maAttr; }
-
- sal_Bool HasLink() const { return( mpLink != NULL && mpLink->Len() > 0 ); }
- void SetLink();
- void SetLink( const String& rLink );
- String GetLink() const;
-
- sal_Bool HasUserData() const { return( mpUserData != NULL && mpUserData->Len() > 0 ); }
- void SetUserData();
- void SetUserData( const String& rUserData );
- String GetUserData() const;
-
- ByteString GetUniqueID() const;
-
- GraphicType GetType() const { return meType; }
- const Size& GetPrefSize() const { return maPrefSize; }
- const MapMode& GetPrefMapMode() const { return maPrefMapMode; }
- sal_uLong GetSizeBytes() const { return mnSizeBytes; }
- sal_uLong GetChecksum() const;
- sal_Bool IsTransparent() const { return mbTransparent; }
- sal_Bool IsAlpha() const { return mbAlpha; }
- sal_Bool IsAnimated() const { return mbAnimated; }
- sal_Bool IsEPS() const { return mbEPS; }
- sal_Bool IsRenderGraphic() const { return mbIsRenderGraphic; }
- sal_Bool HasRenderGraphic() const { return mbHasRenderGraphic; }
-
- void ResetAnimationLoopCount();
- Link GetAnimationNotifyHdl() const { return maGraphic.GetAnimationNotifyHdl(); }
- void SetAnimationNotifyHdl( const Link& rLink );
-
- sal_Bool SwapOut();
- sal_Bool SwapOut( SvStream* pOStm );
- sal_Bool SwapIn();
- sal_Bool SwapIn( SvStream* pIStm );
-
- sal_Bool IsInSwapIn() const { return mbIsInSwapIn; }
- sal_Bool IsInSwapOut() const { return mbIsInSwapOut; }
- sal_Bool IsInSwap() const { return( mbIsInSwapOut || mbIsInSwapOut ); }
- sal_Bool IsSwappedOut() const { return( mbAutoSwapped || maGraphic.IsSwapOut() ); }
- void SetSwapState();
-
- sal_Bool Draw(
- OutputDevice* pOut,
- const Point& rPt,
- const Size& rSz,
- const GraphicAttr* pAttr = NULL,
- sal_uLong nFlags = GRFMGR_DRAW_STANDARD
- );
-
- sal_Bool DrawWithPDFHandling(
- OutputDevice& rOutDev,
- const Point& rPt,
- const Size& rSz,
- const GraphicAttr* pGrfAttr = NULL,
- const sal_uLong nFlags = GRFMGR_DRAW_STANDARD
- );
-
- /** Draw the graphic repeatedly into the given output rectangle
-
- @param pOut
- OutputDevice where the rendering should take place
-
- @param rArea
- The output area that is filled with tiled instances of this graphic
-
- @param rSize
- The actual size of a single tile
-
- @param rOffset
- Offset from the left, top position of rArea, where to start
- the tiling. The upper left corner of the graphic tilings will
- virtually start at this position. Concretely, only that many
- tiles are drawn to completely fill the given output area.
-
- @param pAttr
- Optional GraphicAttr
-
- @param nFlags
- Optional rendering flags
-
- @param nTileCacheSize1D
- Optional dimension of the generated cache tiles. The pOut sees
- a number of tile draws, which have approximately
- nTileCacheSize1D times nTileCacheSize1D bitmap sizes if the
- tile bitmap is smaller. Otherwise, the tile is drawn as
- is. This is useful if e.g. you want only a few, very large
- bitmap drawings appear on the outdev.
-
- @return sal_True, if drawing completed successfully
- */
- sal_Bool DrawTiled(
- OutputDevice* pOut,
- const Rectangle& rArea,
- const Size& rSize,
- const Size& rOffset,
- const GraphicAttr* pAttr = NULL,
- sal_uLong nFlags = GRFMGR_DRAW_STANDARD,
- int nTileCacheSize1D=128
- );
-
- sal_Bool StartAnimation(
- OutputDevice* pOut,
- const Point& rPt,
- const Size& rSz,
- long nExtraData = 0L,
- const GraphicAttr* pAttr = NULL,
- sal_uLong nFlags = GRFMGR_DRAW_STANDARD,
- OutputDevice* pFirstFrameOutDev = NULL
- );
-
- void StopAnimation( OutputDevice* pOut = NULL, long nExtraData = 0L );
-
- friend SvStream& operator<<( SvStream& rOStm, const GraphicObject& rGraphicObj );
- friend SvStream& operator>>( SvStream& rIStm, GraphicObject& rGraphicObj );
-
- static GraphicObject CreateGraphicObjectFromURL( const ::rtl::OUString &rURL );
-};
-
-// ------------------
-// - GraphicManager -
-// ------------------
-
-typedef ::std::vector< GraphicObject* > GraphicObjectList_impl;
-
-class SVT_DLLPUBLIC GraphicManager
-{
- friend class GraphicObject;
- friend class GraphicDisplayCacheEntry;
-
-private:
-
- GraphicObjectList_impl maObjList;
- GraphicCache* mpCache;
-
- GraphicManager( const GraphicManager& ) {}
- GraphicManager& operator=( const GraphicManager& ) { return *this; }
-
- sal_Bool SVT_DLLPRIVATE ImplDraw(
- OutputDevice* pOut,
- const Point& rPt,
- const Size& rSz,
- GraphicObject& rObj,
- const GraphicAttr& rAttr,
- const sal_uLong nFlags,
- sal_Bool& rCached
- );
-
- sal_Bool SVT_DLLPRIVATE ImplCreateOutput(
- OutputDevice* pOut,
- const Point& rPt,
- const Size& rSz,
- const BitmapEx& rBmpEx,
- const GraphicAttr& rAttr,
- const sal_uLong nFlags,
- BitmapEx* pBmpEx = NULL
- );
- sal_Bool SVT_DLLPRIVATE ImplCreateOutput(
- OutputDevice* pOut,
- const Point& rPt,
- const Size& rSz,
- const GDIMetaFile& rMtf,
- const GraphicAttr& rAttr,
- const sal_uLong nFlags,
- GDIMetaFile& rOutMtf,
- BitmapEx& rOutBmpEx
- );
-
- sal_Bool SVT_DLLPRIVATE ImplCreateScaled(
- const BitmapEx& rBmpEx,
- long* pMapIX,
- long* pMapFX,
- long* pMapIY,
- long* pMapFY,
- long nStartX,
- long nEndX,
- long nStartY,
- long nEndY,
- BitmapEx& rOutBmpEx
- );
-
- sal_Bool SVT_DLLPRIVATE ImplCreateRotatedScaled(
- const BitmapEx& rBmpEx,
- sal_uInt16 nRot10,
- const Size& rOutSzPix,
- const Size& rUntSzPix,
- long* pMapIX,
- long* pMapFX,
- long* pMapIY,
- long* pMapFY,
- long nStartX,
- long nEndX,
- long nStartY,
- long nEndY,
- BitmapEx& rOutBmpEx
- );
-
- static void SVT_DLLPRIVATE ImplAdjust(
- BitmapEx& rBmpEx,
- const GraphicAttr& rAttr,
- sal_uLong nAdjustmentFlags
- );
- static void SVT_DLLPRIVATE ImplAdjust(
- GDIMetaFile& rMtf,
- const GraphicAttr& rAttr,
- sal_uLong nAdjustmentFlags
- );
- static void SVT_DLLPRIVATE ImplAdjust(
- Animation& rAnimation,
- const GraphicAttr& rAttr,
- sal_uLong nAdjustmentFlags
- );
-
- static void SVT_DLLPRIVATE ImplDraw(
- OutputDevice* pOut,
- const Point& rPt,
- const Size& rSz,
- const GDIMetaFile& rMtf,
- const GraphicAttr& rAttr
- );
-
- // Only used by GraphicObject's Ctor's and Dtor's
- void SVT_DLLPRIVATE ImplRegisterObj(
- const GraphicObject& rObj,
- Graphic& rSubstitute,
- const ByteString* pID = NULL,
- const GraphicObject* pCopyObj = NULL
- );
- void SVT_DLLPRIVATE ImplUnregisterObj( const GraphicObject& rObj );
- inline sal_Bool SVT_DLLPRIVATE ImplHasObjects() const { return !maObjList.empty(); }
-
- // Only used in swap case by GraphicObject
- void SVT_DLLPRIVATE ImplGraphicObjectWasSwappedOut( const GraphicObject& rObj );
- sal_Bool SVT_DLLPRIVATE ImplFillSwappedGraphicObject(
- const GraphicObject& rObj,
- Graphic& rSubstitute
- );
- void SVT_DLLPRIVATE ImplGraphicObjectWasSwappedIn( const GraphicObject& rObj );
-
- ByteString SVT_DLLPRIVATE ImplGetUniqueID( const GraphicObject& rObj ) const;
-
-public:
-
- GraphicManager( sal_uLong nCacheSize = 10000000UL, sal_uLong nMaxObjCacheSize = 2400000UL );
- ~GraphicManager();
-
- void SetMaxCacheSize( sal_uLong nNewCacheSize );
- sal_uLong GetMaxCacheSize() const;
-
- void SetMaxObjCacheSize(
- sal_uLong nNewMaxObjSize,
- sal_Bool bDestroyGreaterCached = sal_False
- );
- sal_uLong GetMaxObjCacheSize() const;
-
- sal_uLong GetUsedCacheSize() const;
- sal_uLong GetFreeCacheSize() const;
-
- void SetCacheTimeout( sal_uLong nTimeoutSeconds );
- sal_uLong GetCacheTimeout() const;
-
- void ClearCache();
-
- void ReleaseFromCache( const GraphicObject& rObj );
-
- sal_Bool IsInCache(
- OutputDevice* pOut,
- const Point& rPt,
- const Size& rSz,
- const GraphicObject& rObj,
- const GraphicAttr& rAttr
- ) const;
-
- sal_Bool DrawObj(
- OutputDevice* pOut,
- const Point& rPt,
- const Size& rSz,
- GraphicObject& rObj,
- const GraphicAttr& rAttr,
- const sal_uLong nFlags,
- sal_Bool& rCached
- );
-};
-
-#endif // _GRFMGR_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */