Symbian Developer Library

SYMBIAN OS V6.1 EDITION FOR C++

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



Location: txtlaydc.h
Link against:

Class MLayDoc

MLayDoc

Support

Supported from 5.0

Description

This class specifies the mixin protocol for providing the information needed by the text layout engine to lay out a text object. It is inherited by classes which implement this protocol. Examples of such classes are CRichText and CGlobalText.

At the heart of the interface are two interrogation functions; one gives the paragraph formatting for a document position, and the other gives a pointer descriptor to a series of contiguous characters with identical character formatting, and their character formatting. This information is sufficient for the layout engine to find the formatting and content of an entire document.

The constructor for the layout engine (CTextLayout) is prototyped as:

static CTextLayout *NewL(MLayDoc *aDoc,TInt aWrapWidth);

By viewing the text object purely in terms of the MLayDoc interface, the layout engine is insulated from any editable text implementation issues.

Defined in MLayDoc:
CancelSelectLabel(), EForceLoadFalse, EForceLoadTrue, EnquirePageBreak(), GetChars(), GetParagraphFormatL(), GetPictureSizeInTwips(), LdDocumentLength(), LdToParagraphStart(), PictureHandleL(), SelectParagraphLabel(), TForcePictureLoad


Enquiry


LdDocumentLength()

virtual TInt LdDocumentLength()const=0;

Description

Gets the the number of characters in the document.

Return value

TInt

The number of characters contained in the document.


LdToParagraphStart()

virtual TInt LdToParagraphStart(TInt& aCurrentPos)const=0;

Description

Gets the document position of the start of the paragraph containing a specified position.

Parameters

TInt& aCurrentPos

A valid document position. On return contains the document position of the first character in the paragraph.

Return value

TInt

The number of characters skipped in scanning to the start of the paragraph.


GetParagraphFormatL()

virtual void GetParagraphFormatL(CParaFormat* aFormat,TInt aPos)const=0;

Description

Gets the effective paragraph formatting which applies to the paragraph which contains a specified document position. On return, aFormat is filled with values for all paragraph format attributes.

Parameters

CParaFormat* aFormat

On return, filled with the paragraph's effective paragraph formatting.

TInt aPos

Any document position within the paragraph of interest.


GetChars()

virtual void GetChars(TPtrC& aView,TCharFormat& aFormat,TInt aStartPos)const=0;

Description

Gets a constant pointer descriptor to a portion of the text object with constant character formatting. The view starts at the document position specified, and ends at:

whichever occurs first.

Also fills a character format object with the character formatting of the range of characters.

Parameters

TPtrC& aView

On return, a constant pointer to a portion of the text.

TCharFormat& aFormat

On return, contains the character formatting of the text.

TInt aStartPos

The start position for the view. Must be a valid document position, or a panic occurs.


PictureHandleL()

virtual CPicture* PictureHandleL(TInt aPos,TForcePictureLoad aForceLoad=EForceLoadTrue)const=0;

Description

Gets a pointer to the picture located at a specified document position, if one exists. If the picture is not in memory, the function loads it (if the second argument has a value of EForceLoadTrue).

Note

The global text implementation of this function always returns NULL because global text does not support pictures.

Parameters

TInt aPos

Document position of the picture character.

TForcePictureLoad aForceLoad

If the picture is not loaded into memory, EForceLoadTrue loads it using the picture factory; EForceLoadFalse does not, and in this case, the function returns NULL.

Return value

CPicture*

A pointer to the picture located at aPos. NULL if aPos does not specify a picture character, or if there is a picture at aPos which is not in memory, and the second argument is EForceLoadFalse.


GetPictureSizeInTwips()

TInt GetPictureSizeInTwips(TSize& aSize, TInt aPos)const=0;

Description

Gets the size of a picture located at a specified document position.

Note

The global text implementation of this function always returnsKErrNotFound because global text does not support pictures.

Parameters

TSize& aSize

On return, contains the size of the picture located ataPos.

TInt aPos

Document position of the picture.

Return value

TInt

KErrNotFound if there is no picture at the specified document position, KErrNone if there is.


EnquirePageBreak()

virtual TBool EnquirePageBreak(TInt aPos,TInt aLength=0)const=0;

Description

Tests whether a page break occurs within a range of characters. A page table should have been set up first: seeCPlainText::SetPageTable().

Parameters

TInt aPos

The document position from which to begin searching for a page break.

TInt aLength

The number of characters to search for a page break, beginning ataPos. The default is zero.

Return value

TBool

True if a page break occurs within the specified range, otherwise false.

[Top]


Paragraph labels


SelectParagraphLabel()

virtual TBool SelectParagraphLabel(TInt aPos)=0;

Description

This function should be implemented by text objects which support paragraph labels. Each paragraph may have at most one label. By default, the functions provided by MLayDoc apply to the main body of text. This function is provided to change this so that the MLayDoc object is an individual paragraph label, (each of which is treated as a separate document). Paragraph labelling has not been implemented by global or rich text.

This function should select the paragraph label associated with the paragraph containing document position aPos (aPos is a document position in the main document).

Parameters

TInt aPos

A document position within a paragraph. This paragraph's label should be set as the main MLayDoc document.

Return value

TBool

Should return EFalse if the paragraph has no label, in which case the function has no effect, ETrue otherwise.


CancelSelectLabel()

virtual void CancelSelectLabel()=0;

Description

Cancels a paragraph label selection made by a call toSelectParagraphLabel() so that the main document reverts back to the main body of text.

[Top]


Enum TForcePictureLoad

TForcePictureLoad

Description

Used as a parameter to the PictureHandleL() function to control whether picture data should be loaded into memory or not.

EForceLoadFalse

Do not load the picture data into memory.

EForceLoadTrue

Load the picture data into memory.