williamr@2: /* williamr@2: * Copyright (c) 1999 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef __EIKDPOBS_H__ williamr@2: #define __EIKDPOBS_H__ williamr@2: williamr@2: #include williamr@2: williamr@2: williamr@2: /** williamr@2: * The MEikDialogPageObserver class specifies an interface through which the behaviour of the pages of williamr@2: * a dialog may be observed. williamr@2: * williamr@2: * @since ER5U williamr@2: */ williamr@2: class MEikDialogPageObserver williamr@2: { williamr@2: /** williamr@2: * It is necessary to know from which base class a control has been derived from williamr@2: * in order to use the correct layout method. williamr@2: * These are all the known form control base types. williamr@2: */ williamr@2: public: williamr@2: enum TFormControlTypes williamr@2: { williamr@2: EUnknownType, williamr@2: EEdwinDerived, williamr@2: EMfneDerived, williamr@2: EPopfieldDerived, williamr@2: ESecretEditorDerived, williamr@2: ESliderDerived, williamr@2: EColourSelectionGridDerived williamr@2: }; williamr@2: williamr@2: public: williamr@2: enum TDialogPageObserverEvents williamr@2: { williamr@2: EDialogPageTapped williamr@2: }; williamr@2: williamr@2: public: williamr@2: /** williamr@2: * Prepares for focus transition from the current line e.g. to validate the williamr@2: * contents of the current control. williamr@2: */ williamr@2: virtual void PrepareForFocusTransitionL()=0; williamr@2: williamr@2: /** williamr@2: * Takes any action required when the active dialog page is changed to aPageId. williamr@2: */ williamr@2: virtual void PageChangedL(TInt aPageId)=0; williamr@2: williamr@2: /** williamr@2: * Takes any action required when the current line is changed to aControlId. williamr@2: */ williamr@2: virtual void LineChangedL(TInt aControlId)=0; williamr@2: williamr@2: /** williamr@2: * Creates a custom control of type aControlType and returns the control information for the custom control williamr@2: * which is created. Called when creating a line on the dialog page if the Eikon control factory does not williamr@2: * recognise the type aControlType. williamr@2: */ williamr@2: virtual SEikControlInfo CreateCustomControlL(TInt aControlType)=0; williamr@2: williamr@2: /** williamr@2: * ConvertCustomControlTypeToKnownControlType williamr@2: * Used for custom control, to provide a mapping for forms between custom controls williamr@2: * and the base types that the layout knows how to deal with. williamr@2: * For example an edwin derived custom control could return EEikCtEdwin williamr@2: */ williamr@2: virtual TFormControlTypes ConvertCustomControlTypeToBaseControlType(TInt aControlType)const =0 ; williamr@2: williamr@2: /** williamr@2: * Gets the custom auto value for the custom control aControl of type aControlType with return value williamr@2: * aReturnValue. This method is included in the interface to support deprecated legacy code only. williamr@2: */ williamr@2: virtual void GetCustomAutoValue(TAny* aReturnValue,TInt aControlType,const CCoeControl* aControl)=0; williamr@2: williamr@2: /** williamr@2: * Takes any action required when the dialog page event happens. williamr@2: */ williamr@2: virtual void HandleDialogPageEventL(TInt aEventID) = 0; williamr@2: }; williamr@2: williamr@2: #endif