Symbian Developer Library

SYMBIAN OS V6.1 EDITION FOR C++

[Index] [Glossary] [Previous] [Next]



Location: txtfmlyr.h
Link against: etext.lib

Class CCharFormatLayer

CCharFormatLayer

Support

Supported from 5.0

Description

A character format layer. Uses a pointer (stored in its base class CFormatLayer) to another character format layer which may be NULL. This pointer is referred to as the based-on link. A character format layer is owned by an instance of the CGlobalText class and stores the object's global character formatting. Implements persistence and allows attributes to be set and sensed.

Derivation

CBaseBase class for all classes to be instantiated on the heap
CCharFormatLayerA character format layer
CFormatLayerAbstract base class for the paragraph and character format layers (CParaFormatLayer and CCharFormatLayer)

Defined in CCharFormatLayer:
CloneL(), ExternalizeL(), InternalizeL(), IsIdentical(), NewL(), Ptr(), Sense(), SenseEffective(), SetL()

Inherited from CBase:
operator new()

Inherited from CFormatLayer:
ChainCount(), ExternalizeChainL(), InternalizeChainL(), IsEmpty(), Reset(), SenseBase(), SetBase()


Construction


NewL()

static CCharFormatLayer* NewL();

Description

Allocates and constructs an empty CCharFormatLayer. Its based-on link is NULL.

Notes

Use SetL() to set format attributes in the layer. Use SetBase(), defined in the base class CFormatLayer, to set the layer’s based on link.

Return value

CCharFormatLayer*

Pointer to the new character format layer.


NewL()

static CCharFormatLayer* NewL(const TCharFormat& aFormat,const TCharFormatMask& aMask);

Description

Allocates and constructs a CCharFormatLayer. The attributes which are set in the mask are initialised in the layer to the values specified in the format container aFormat. The attributes which are not set in the mask are initialised to the default values for class TCharFormat. The new layer's based-on link is set to NULL.

Parameters

const TCharFormat& aFormat

Contains the attribute values to assign to the format layer.

const TCharFormatMask& aMask

Mask specifying which attributes should be initialized from aFormat.

Return value

CCharFormatLayer*

Pointer to the new character format layer.


NewL()

static CCharFormatLayer* NewL(RReadStream& aStream);

Description

Allocates and constructs a CCharFormatLayer, restoring its format attributes from a stream. The layer's based-on link is set to NULL.

Parameters

RReadStream& aStream

Stream from which the layer is restored.

Return value

CCharFormatLayer*

Pointer to the new character format layer.

[Top]


Set and sense


SetL()

void SetL(const TCharFormat& aCharFormat,const TCharFormatMask& aMask);

Description

Sets the layer's format attributes. The attributes which are set in the mask are set in the layer to the values specified in the format container aCharFormat. The attributes which are not set in the mask are not changed.

Parameters

const TCharFormat& aCharFormat

Contains the attribute values to assign to the format layer.

const TCharFormatMask& aMask

Mask specifying which attributes should be set from aCharFormat.


SenseEffective()

virtual void SenseEffective(TCharFormat& aCharFormat)const;

Description

Senses the layer’s effective format, searching all based-on links. The resulting aCharFormat is fully populated.

Parameters

TCharFormat& aCharFormat

On return, contains the layer's effective formatting.


Sense()

void Sense(TCharFormat& aCharFormat,TCharFormatMask& aMask)const;

Description

Senses the formatting which has been applied to the current layer only. No based-on links are searched. This function does not get the layer's effective formatting, but the resulting aCharFormat is fully populated, even if not all attributes are flagged for sensing in aMask because any attribute values not sensed from the current layer are set to default values.

Parameters

TCharFormat& aCharFormat

On return, contains the formatting which has been applied to the current layer only. Any attributes not explicitly set in the current layer are set to the default values for a TCharFormat. Any attributes specified in aMask are not sensed from this layer. The values for these attributes are also initialised to the default settings.

TCharFormatMask& aMask

A bitmask. Any attributes which are set in the mask as passed into the function are not sensed from the current layer. On return, indicates the attributes which were sensed from this layer. So, normally, when passed to the function, all attributes in the mask should be unset.

[Top]


Clone


CloneL()

CCharFormatLayer* CloneL()const;

Description

Constructs and returns a new CCharFormatLayer with identical formatting to the current layer. Note that the function does not copy the original layer's based-on link — the new layer's based-on link is set to NULL, so that the two layers may not have the same effective formatting.

Return value

CCharFormatLayer*

A new character format layer cloned from the current layer.

[Top]


Enquiry


IsIdentical()

TBool IsIdentical(const TCharFormat& aCharFormat,const TCharFormatMask& aMask)const;

Description

Compares a format attribute container with the current layer. For the two objects to be identical, the current layer must contain only the attributes specified in the argument aMask, and these attributes must have the same values as those in aCharFormat. None of the current layer's based-on links are searched.

Parameters

const TCharFormat& aCharFormat

Contains the attribute values used in the comparison.

const TCharFormatMask& aMask

A bitmask specifying which attributes are relevant to the function.

Return value

TBool

ETrue if the formatting of the current layer exactly matches that contained in aCharFormat, otherwise EFalse.


IsIdentical()

virtual TBool IsIdentical(CFormatLayer* aLayer,TBool aCheckBasedOnLink=ETrue)const;

Description

Compares another character format layer with the current layer. For the two layers to be equal, they must have the same contents and (if the second parameter is ETrue), their based-on links must point to the same format layer.

Parameters

CFormatLayer* aLayer

The character format layer to compare to this format layer.

TBool aCheckBasedOnLink=ETrue

If ETrue, both layers' based-on links must point to the same format layer. If EFalse, the based-on links are not used in the comparison. By default, ETrue.

Return value

TBool

ETrue if the two layers are identical, otherwise EFalse.


Ptr()

const TUint8* Ptr(TInt& aSize)const;

Description

Gets a pointer to the start of the buffer containing the layer's format attribute values.

Parameters

TInt& aSize

On return, set to the size of the buffer.

Return value

TUint8*

Pointer to the buffer which contains the layer's format attribute values.

[Top]


Stream persistence


InternalizeL()

virtual void InternalizeL(RReadStream& aStream,const CFormatLayer* aBase=NULL);

Description

Internalises the character format layer but not its based-on link from a read stream. The presence of this function means that the standard templated operator>>() (defined in s32strm.h) is available to internalise objects of this class. The internalised layer is set to be based on the layer specified.

Parameters

RReadStream& aStream

Stream from which the format layer should be internalised.

const CFormatLayer* aBase=NULL

The based-on link to assign to the layer. By default NULL.


ExternalizeL()

virtual void ExternalizeL(RWriteStream& aStream)const;

Description

Externalises the character format layer but not its based-on link to a write stream. The presence of this function means that the standard templated operator<<() (defined in s32strm.h) is available to externalise objects of this class.

Parameters

RWriteStream& aStream

Stream to which the format layer should be externalised.