Symbian Developer Library

SYMBIAN OS V6.1 EDITION FOR C++

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



Location: fepbase.h
Link against: fepbase.lib

Class MCoeFepAwareTextEditor_Extension1

MCoeFepAwareTextEditor_Extension1

Support

Supported from 6.1

Description

An interface class which may be derived from by text editors to enable FEPs to store state information inside the editor.

The CState class, defined within the scope of MCoeFepAwareTextEditor_Extension1 represents the state information. This is information specific to the control which is only of interest to the FEP.

A class which implements this interface must implement the pure virtual functions State() and SetStateTransferingOwnershipL(), to get and set the state. The class should also implement the MCoeFepAwareTextEditor interface. It must override the private virtual MCoeFepAwareTextEditor::Extension1() to return a pointer to itself (the default implementation returns NULL). The private virtual MCoeFepAwareTextEditor::Extension1() function is called by the public, non-virtual MCoeFepAwareTextEditor::Extension1() function.

For example, if a FEP wants to set some state information in a text editor which is about to lose focus, the FEP should first call the editor's Extension1() function. If this returns non-NULL, the FEP should call the editor's implementation of SetStateTransferingOwnershipL(), passing in an object of a class derived from CState, which holds the state information. It should also pass in a UID which uniquely identifies the FEP. Later, when focus returns to the editor, the FEP can call State() to retrieve the state information it previously set. Note that CState has several reserved functions, to enable it to be extended in future, while retaining backwards compatibility.

Defined in MCoeFepAwareTextEditor_Extension1:
CState, SetStateTransferingOwnershipL(), State()


Set/get state


SetStateTransferingOwnershipL()

virtual void SetStateTransferingOwnershipL(CState* aState, TUid aTypeSafetyUid)=0;

Description

Sets state information in the text editor.

This function must only transfer ownership of the state object after it has successfully done everything that can leave.

Parameters

CState* aState

Pointer to the state information object.

TUid aTypeSafetyUid

A UID which uniquely identifies the FEP which is calling this function. The text editor should store this value for use by the State() function.


State()

virtual CState* State(TUid aTypeSafetyUid)=0;

Description

Gets the state information previously set using SetStateTransferingOwnershipL(). This function does not transfer ownership. The function should first check that aTypeSafetyUid matches the UID value previously specified by SetStateTransferingOwnershipL(). If it doesn't match, the function should return NULL.

Parameters

TUid aTypeSafetyUid

A UID which uniquely identifies the FEP which is calling this function. The purpose of this is to enable the FEP to safely downcast the CState pointer returned by this function to a pointer to a derived class known about by the FEP.

Return value

CState*

Pointer to the state information object.

[Top]


Classes


Class CState

CState

Description

State information for a text editor control. This is information specific to the control which is only of interest to the FEP which sets it.

Derivation

CBaseBase class for all classes to be instantiated on the heap
MCoeFepAwareTextEditor_Extension1::CStateState information for a text editor control

Defined in MCoeFepAwareTextEditor_Extension1::CState:
~CState(), BaseConstructL(), CState()

Inherited from CBase:
operator new()

CState()


protected: CState();

Description

Empty default constructor.

BaseConstructL()


protected: void BaseConstructL();

Description

Empty second phase base class constructor. This function should be called from derived classes at the beginning of their ConstructL() even though it is currently empty. This is because this class may be extended in future to own resources, which will be allocated in BaseConstructL().

~CState()


virtual ~CState();

Description

Empty virtual destructor. This is present because the class may be extended in the future to own resources.