class CFormatLayer : public CBase |
Abstract base class for the paragraph and character format layers.
A format layer is a set of character or paragraph format attributes which may own a pointer to another format layer. This pointer is called a based-on link. The effective formatting of a text object may be built up from a chain of format layers - the final layer in the chain has a NULL based-on link. In case of conflict, attribute values set in upper layers (layers furthest from the layer with the NULL based-on link) override those set in lower layers. In rich text, additional formatting may be applied on top of these format layers.
The system of based-on links is implemented by the CFormatLayer class. It also implements persistence for chains of format layers.
When setting or sensing the attributes of a CParaFormatLayer or CCharFormatLayer, a format mask and container are specified as parameters. The container has data members for every format attribute, which may be set independently. When setting the layer, the mask indicates the attributes which will be taken from the container. Any attributes not specified in the mask will be taken from the system-provided default values.
When sensing a layer, on return, the mask indicates which attributes have been explicitly set in the layer, (i.e. not taken from the default values). In addition, a layer's effective format may be sensed. In this case, no mask is used because the format container will, on return, contain a value for every attribute.
Public Member Functions | |
---|---|
IMPORT_C TInt | ChainCount() |
IMPORT_C void | ExternalizeChainL(RWriteStream &, TInt) |
void | ExternalizeL(RWriteStream &) |
IMPORT_C void | InternalizeChainL(RReadStream &, const CFormatLayer *) |
void | InternalizeL(RReadStream &, const CFormatLayer *) |
IMPORT_C TBool | IsEmpty() |
TBool | IsIdentical(CFormatLayer *, TBool) |
IMPORT_C void | Reset() |
IMPORT_C const CFormatLayer * | SenseBase() |
IMPORT_C void | SetBase(const CFormatLayer *) |
void | Swap(CFormatLayer &) |
Protected Member Functions | |
---|---|
CFormatLayer() | |
~CFormatLayer() | |
void | CloneLayerL(CFormatLayer *) |
void | ExternalizeLayersRecurseL(RWriteStream &, TInt) |
TBool | IsIdentical(const TUint8 *, TInt) |
const TUint8 * | Ptr(TInt &) |
CFormatLayer * | RestoreNewL(RReadStream &) |
Private Member Functions | |
---|---|
CFormatLayer(const CFormatLayer &) | |
CFormatLayer * | DoCloneL() |
CFormatLayer & | operator=(const CFormatLayer &) |
Protected Attributes | |
---|---|
__DECLARE_TEST | |
const CFormatLayer * | iBasedOn |
RFormatStream | iStore |
CFormatLayer | ( | const CFormatLayer & | aFormatLayer | ) | [private] |
const CFormatLayer & aFormatLayer |
void | CloneLayerL | ( | CFormatLayer * | aClone | ) | const [protected] |
CFormatLayer * aClone |
IMPORT_C void | ExternalizeChainL | ( | RWriteStream & | aStream, |
TInt | aExcludeCount = 0 | |||
) | const |
RWriteStream & aStream | |
TInt aExcludeCount = 0 |
void | ExternalizeL | ( | RWriteStream & | aStream | ) | const [pure virtual] |
Implementations of this function externalise the format layer but not its based-on link to a write stream. The presence of this function means that the standard templatedoperator<<() (defined in s32strm.h) is available to externalise objects of the derived class.
RWriteStream & aStream | Stream to which the format layer should be externalised. |
void | ExternalizeLayersRecurseL | ( | RWriteStream & | aStream, |
TInt | aDescendantCount | |||
) | const [protected] |
RWriteStream & aStream | |
TInt aDescendantCount |
IMPORT_C void | InternalizeChainL | ( | RReadStream & | aStream, |
const CFormatLayer * | aBase = NULL | |||
) |
RReadStream & aStream | |
const CFormatLayer * aBase = NULL |
void | InternalizeL | ( | RReadStream & | aStream, |
const CFormatLayer * | aBase = NULL | |||
) | [pure virtual] |
Implementations of this function internalise the 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 the derived class. The internalised layer is set to be based on the layer specified.
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. |
TBool | IsIdentical | ( | CFormatLayer * | aLayer, |
TBool | aCheckBasedOnLink = ETrue | |||
) | const [pure virtual] |
Implementations of this function compare another format layer with the current object. 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.
ETrue if the two layers are identical, otherwise EFalse.
CFormatLayer * aLayer | The 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. |
TBool | IsIdentical | ( | const TUint8 * | aPtr, |
TInt | aSize | |||
) | const [protected] |
CFormatLayer * | RestoreNewL | ( | RReadStream & | aStream | ) | [protected, pure virtual] |
RReadStream & aStream |
IMPORT_C void | SetBase | ( | const CFormatLayer * | aBaseFormatLayer | ) |
const CFormatLayer * aBaseFormatLayer |
CFormatLayer & | operator= | ( | const CFormatLayer & | aFormatLayer | ) | [private] |
const CFormatLayer & aFormatLayer |