Location:
gdi.h
Link against: gdi.lib
CPicture
Supported from 5.0
Abstract base class for: drawing a picture to a graphics context, storing and restoring the picture.
The class defines the protocol for a number of concrete picture classes. Its main role is to support glass doors used in object embedding.
The class provides a protocol for the provision of scaling and cropping functions by derived classes, together with default implementations.
Its main function is Draw()
, which draws the picture
onto the graphics context at a particular point. It also has two important pure
virtual functions: ExternalizeL()
and
GetOriginalSizeInTwips()
.
A picture has both an original representation and an on-screen representation. The original representation has a size in twips, and can somehow be drawn. The on-screen representation is assumed to be drawn under the control of an application which may wish to re-size or scale the original in some way, to crop it at the edges, and/or to ensure it fits within a particular defined area on the screen.
The class provides several functions that allow an application to
set scaling and cropping before invoking the Draw()
function to
draw the picture on-screen. It is up to the internal workings of the function
to determine the order of application cropping and scaling.
|
Defined in CPicture
:
AddCropInPixels()
, Capability()
, DetachFromStoreL()
, Draw()
, EDetachDraw
, EDetachFull
, ExternalizeL()
, GetCropInTwips()
, GetOriginalSizeInTwips()
, GetSizeInPixels()
, GetSizeInTwips()
, LineBreakPossible()
, ResetToOriginal()
, ScaleFactorHeight()
, ScaleFactorWidth()
, SetCropInTwips()
, SetScaleFactor()
, SetSizeInPixels()
, SetSizeInTwips()
, StoreL()
, TDetach
, ~CPicture()
Inherited from CBase
:
operator new()
virtual TStreamId StoreL(CStreamStore& aStore) const;
Stores the picture to the specified store.
The default implementation assumes that the content of the picture is externalized to a single stream. The implementation may need to be changed for those derived classes that have components.
|
|
virtual void ExternalizeL(RWriteStream& aStream) const = 0;
Externalises the picture to a stream.
The presence of this function means that the standard templated
stream operator<<()
is available to externalise objects of
this class.
A derived class must supply an implementation of this function.
|
virtual void DetachFromStoreL(TDetach /*aDegree*/=EDetachFull);
Detaches a picture from its store, restoring any unrestored elements of the picture, if necessary.
The function would be used, for example, prior to storing the picture to another store or when pasting from a clipboard.
The default implementation is empty on the assumption that the picture factory restores everything.
|
virtual void Draw(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,MGraphicsDeviceMap* aMap) const = 0;
Draws a picture.
|
virtual void SetScaleFactor(TInt aScaleFactorWidth,TInt aScaleFactorHeight);
Sets the picture’s scale factors.
|
virtual TInt ScaleFactorWidth() const;
Gets the picture’s width scale factor.
|
virtual TInt ScaleFactorHeight() const;
Gets the picture’s height scale factor.
|
void GetSizeInPixels(MGraphicsDeviceMap* aMap, TSize& aSize) const;
Gets the picture’s size in pixels.
This is calculated from the original size of the picture, taking cropping and scaling into account.
|
void SetSizeInPixels(MGraphicsDeviceMap* aMap, const TSize& aSize);
Sets the picture’s size in pixels.
|
virtual void GetOriginalSizeInTwips(TSize& aSize) const = 0;
Gets the picture’s original size, in twips.
|
void GetSizeInTwips(TSize& aSize) const;
Gets the picture’s size, in twips.
This size is calculated from the original size of the picture, taking cropping and scaling into account.
|
void SetSizeInTwips(const TSize& aSize);
Sets the picture’s size, in twips
|
virtual TBool LineBreakPossible(TUint aClass,TBool aBeforePicture,TBool aHaveSpaces) const;
Supported from 6.0
States whether a line break is possible, either before or after a picture.
The default implementation returns true, implying that there is a break opportunity both before and after the picture, whether or not a space is present.
This may be overriden for special types of pictures.
|
|
virtual void GetCropInTwips(TMargins& aMargins) const;
Gets the cropping margins of a picture in twips.
These margins are relative to the original unscaled size of the picture.
|
virtual void SetCropInTwips(const TMargins& aMargins);
Sets the cropping margins of a picture in twips.
These are relative to the original unscaled size of the picture.
|
void AddCropInPixels(MGraphicsDeviceMap* aMap, const TMargins& aMargins);
Adds pixel cropping margins to the picture.
|
void ResetToOriginal();
Resets the picture’s scaling and cropping attributes to their original values.
virtual TPictureCapability Capability() const;
Gets the picture’s capabilities.
These include whether it is scalable and croppable.
|
TDetach
Options for detaching pictures from stores. Used by
DetachFromStoreL()
.
|