diff -r 000000000000 -r 2f259fa3e83a classicui_pub/setting_pages_api/inc/AknMfneSettingPage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/classicui_pub/setting_pages_api/inc/AknMfneSettingPage.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,980 @@ +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Header file for Setting page implementations for Date, Time, duration +* and IP addresses +* +*/ + + +#ifndef __AKNMFNESETTINGPAGE_H__ +#define __AKNMFNESETTINGPAGE_H__ + +#include +#include +#include +#include +#include +#include + + +// FORWARD DECLARATIONS +class CAknButton; + +/** + * + * This class is used as the base for the date, time, duration and Ip editor + * setting page types. It performs all the layout. + * + */ +class CAknMfneSettingPage : public CAknSettingPage +{ + +public: + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + /** + * Destructor. + */ + IMPORT_C virtual ~CAknMfneSettingPage(); + +protected: + /** + * Constructor using purely Setting page resource + * + * @param aResourceId Setting page resource Id + */ + IMPORT_C CAknMfneSettingPage(TInt ResourceId ); + /** + * Constructor that allows separate setting page and editor resources + * + * @param aSettingTitleText Text at top of setting pane ; Externally owned + * @param aSettingNumber Number at top left (if present) + * @param aControlType Determines the type constructed and how its + * resource is read + * @param aEditorResourceId Editor resource to use in the setting page + * (if present) + */ + IMPORT_C CAknMfneSettingPage( const TDesC* aSettingTitleText, + TInt aSettingNumber, + TInt aControlType, + TInt aEditorResourceId, + TInt aSettingPageResourceId ); + + /** + * + * Framework method called when the control needs to be re-laid out + * + */ + IMPORT_C virtual void SizeChanged(); + + /** + * Draws the control. Framework method + */ + IMPORT_C void Draw(const TRect& aRect) const; + + /** + * Type-specific access to control + */ + IMPORT_C CEikMfne* Mfne() const; + + /** + * Implementation of of validity framework method for mfnes. + * Checks if the current focused field in the mfne is valid and sets the + * setting page validity accordingly. + * + * This method is called in order for the softkeys to be updated + */ + IMPORT_C void CheckAndSetDataValidity(); + + /** + * From MCoeControlObserver: + * Acts upon changes in the hosted control's state. + * + * This observer method performs + * - Updates the value if EUpdateWhenChanged is the setting page's update + * mode + * - updates CBA labels depending on the data validity + * + * @param aControl The control changing its state (not used) + * @param aEventType The type of control event + */ + IMPORT_C virtual void HandleControlEventL(CCoeControl* aControl, + TCoeEvent aEventType); + + /** + * + * 2nd stage construction. This creates the editing buttons in + * touch enabled builds. + * + */ + IMPORT_C virtual void ConstructL(); + + /** + * Standard CCoeControl routine to return the number of componentn controls + * + * @param aIndex index at which to return control + */ + IMPORT_C TInt CountComponentControls() const; + + /** + * Standard CCoeControl routine to return the control at a given index + * + * @param aIndex index at which to return control + */ + IMPORT_C CCoeControl* ComponentControl(TInt anIndex) const; + +protected: + + // Buttons for modifying the value of the active MFNE field with stylus. + // The derived classes which require the buttons, must call this class' + // ConstructL function in their second phase constructor. This class + // takes care of the button positioning and functionality. + CAknButton* iIncreaseValueButton; + CAknButton* iDecreaseValueButton; + +private: + /** + * From CAknControl + */ + IMPORT_C void* ExtensionInterface( TUid aInterface ); + +private: + // Layout information is stored here and not in the derived classes + TAknLayoutRect iMfneLayoutRect; + TAknLayoutRect iHorizontalShadow; + TAknLayoutRect iVerticalShadow; + TAknLayoutRect iOutlineFrame; + + TInt iSpare_1; + +}; + + +/** +* +* This class is used for entering Dates in a "Code" setting page +* +*/ +class CAknDateSettingPage : public CAknMfneSettingPage +{ +public: + + /** + * Constructor using purely Setting page resource + * + * @param aResourceId Setting page resource Id + * @param aDateValue Reference to a date value set to the initial + * date + */ + IMPORT_C CAknDateSettingPage( + TInt aResourceID, + TTime& aDateValue); + + /** + * Constructor that allows separate setting page and editor resources + * + * This constructor allows the use of setting page using only the editor + * resource. Other combinations are also possible + * + * In all cases the number (if supplied i.e. <> 0 ) is used. + * + * Editor Resource Setting Page Resource + * present present Both are used + * (but text + * & number overridden) + * = 0 present Editor resource is used + * via SP resource + * (Effectively like the + * other constructor) + * present = 0 Default Avkon SP + * resource if used + this + * editor resource + * = 0 = 0 uses default resource + * for both SP and editor. + * This is OK if: + * i) control type is present, + * ii) a default resource exists ( OK for text, integer, date, time, + * duration ) + * + * Note: The first argument is a TDesC* (rather than TDesC&) because the + * other constructor cannot initialize such a member without allocation or + * having an internal dummy buffer. + * Note that this descriptor must be owned by the client at least until the + * ExecuteLD(). + * + * Rules for text and numbers: The rules are the same for both: + * (non-zero length) text or number other than + * EAknSettingPageNoOrdinalDisplayed if given in this constructor will not + * override resource (unless that is zero length or + * EAknSettingPageNoOrdinalDisplayed). Note, however, that text or number + * given via the specific API for setting them, WILL override resource. + * It is assumed that number from resource is very rare. Special text is + * somewhat more likely. + * + * @param aSettingTitleText Text at top of setting pane; OWNED EXTERNALLY + * @param aSettingNumber Number at top left (if present) + * @param aControlType Determines the type constructed and how its + * resource is read + * @param aEditorResourceId Editor resource to use in the setting page + * (if present) + * @param aSettingPageResourceId Setting Page to use (if present) + * @param aDateValue reference to date + */ + IMPORT_C CAknDateSettingPage( + const TDesC* aSettingTitleText, + TInt aSettingNumber, + TInt aControlType, + TInt aEditorResourceId, + TInt aSettingPageResourceId, + TTime& aDateValue ); + + + /** + * + * 2nd stage construction. This uses stored values from the conststuctor + * to allocate the required aggregate objects, and then set the Date value. + * + */ + IMPORT_C virtual void ConstructL(); + + /** + * Type-specific access to the editor + * + * @return the hosted editor + */ + IMPORT_C CEikDateEditor* DateEditor(); + + /** + * From CCoeControl + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +protected: + /** + * Destructor + */ + IMPORT_C virtual ~CAknDateSettingPage(); + + /** + * This framework method is called when the editor changes its value and the + * mode of execution of the setting page is a continuous update mode. + * + */ + IMPORT_C virtual void UpdateSettingL(); + + /** + * Called when the user has accepted the value. + * The external value is updated once again, in case we were not in + * continuous update mode. + * A specific observer event is generated for the observer to say that the + * value is accepted. + */ + IMPORT_C virtual void AcceptSettingL(); + + /** + * The backup value, stored at construction time, is re-loaded into the + * referenced Date. An event is sent to the observer saying that the event + * was dismissed. + */ + IMPORT_C virtual void RestoreOriginalSettingL(); + +// +// CoeControl Framework and reserved methods +// +protected: + +/** + * Writes the internal state of the control and its components to aStream. + * Does nothing in release mode. + * Designed to be overidden and base called by subclasses. + * + * @param aWriteSteam A connected write stream + */ + IMPORT_C virtual void WriteInternalStateL(RWriteStream& aWriteStream) const; + +private: +/** + * Reserved method derived from CCoeControl + */ + IMPORT_C virtual void Reserved_2(); + +private: + /** + * From CAknControl + */ + IMPORT_C void* ExtensionInterface( TUid aInterface ); + +/** + * New reserved methods for CAknSettingPage hierarchy + */ +private: + IMPORT_C virtual void CAknSettingPage_Reserved_1(); + IMPORT_C virtual void CAknSettingPage_Reserved_2(); + +private: + TTime& iDateValue; + TTime iBackupDateValue; +}; + +/** + * + * This class is used for entering Times in a "Code" setting page + * + */ +class CAknTimeSettingPage : public CAknMfneSettingPage +{ +public: + /** + * Constructor using purely Setting page resource + * + * @param aResourceId Setting page resource Id + * @param aTimeValue Reference to a time value for the initial time + */ + IMPORT_C CAknTimeSettingPage( + TInt aResourceID, + TTime& aTimeValue); + + /** + * Constructor that allows separate setting page and editor resources + * + * This constructor allows the use of setting page using only the editor + * resource. Other combinations are also possible + * + * In all cases the number (if supplied i.e. <> 0 ) is used. + * + * Editor Resource Setting Page Resource + * present present Both are used (but text + * & number overridden) + * = 0 present Editor resource is used + * via SP resource + * (Effectively like the + * other constructor) + * present = 0 Default Avkon SP + * resource if used + this + * editor resource + * = 0 = 0 uses default resource + * for both SP and editor. + * This is OK if: + * i) control type is present, + * ii) a default resource exists ( OK for text, integer, + * date, time, duration ) + * + * Note: The first argument is a TDesC* (rather than TDesC&) because the + * other constructor cannot initialize such a member without allocation or + * having an internal dummy buffer. + * Note that this descriptor must be owned by the client at least until the + * ExecuteLD(). + * + * Rules for text and numbers: The rules are the same for both: + * (non-zero length) text or number other than + * EAknSettingPageNoOrdinalDisplayed if given in this constructor will not + * override resource (unless that is zero length or + * EAknSettingPageNoOrdinalDisplayed). Note, however, that text or number + * given via the specific API for setting them, WILL override resource. + * It is assumed that number from resource is very rare. Special text is + * somewhat more likely. + * + * @param aSettingTitleText Text at top of setting pane + * @param aSettingNumber Number at top left (if present) + * @param aControlType Determines the type constructed and how its + * resource is read + * @param aEditorResourceId Editor resource to use in the setting page + * (if present) + * @param aSettingPageResourceId Setting Page to use (if present) + * @param aTimeValue reference to a time + */ + IMPORT_C CAknTimeSettingPage( const TDesC* aSettingTitleText, + TInt aSettingNumber, + TInt aControlType, + TInt aEditorResourceId, + TInt aSettingPageResourceId, + TTime& aTimeValue ); + + /** + * Specific 2nd stage contructor for this type. Construction is performed + * according to the resources and parameters set in the C++ constructors + * + */ + IMPORT_C virtual void ConstructL(); + + /** + * Type-specific access to the editor + */ + IMPORT_C CEikTimeEditor* TimeEditor(); + + /** + * From CCoeControl + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +protected: + + /** + * Destructor + */ + IMPORT_C virtual ~CAknTimeSettingPage(); + + /** + * This framework method is called when the editor changes its value and + * the mode of execution of the setting page is a continuous update mode. + * + */ + IMPORT_C virtual void UpdateSettingL(); + + /** + * Called when the user has accepted the value. + * The external value is updated once again, in case we were not in + * continuous update mode. + * A specific observer event is generated for the observer to say that the + * value is accepted. + */ + IMPORT_C virtual void AcceptSettingL(); + /** + * The backup value, stored at construction time, is re-loaded into the + * referenced Date. + * An event is sent to the observer saying that the event was dismissed. + */ + IMPORT_C virtual void RestoreOriginalSettingL(); + +// +// CoeControl Framework and reserved methods +// +protected: + +/** + * Writes the internal state of the control and its components to aStream. + * Does nothing in release mode. + * Designed to be overidden and base called by subclasses. + * + * @param aWriteSteam A connected write stream + */ + IMPORT_C virtual void WriteInternalStateL(RWriteStream& aWriteStream) const; + +private: + +/** + * Reserved method derived from CCoeControl + */ + IMPORT_C virtual void Reserved_2(); + +private: + /** + * From CAknControl + */ + IMPORT_C void* ExtensionInterface( TUid aInterface ); + +/** + * New reserved methods for CAknSettingPage hierarchy + */ +private: + IMPORT_C virtual void CAknSettingPage_Reserved_1(); + IMPORT_C virtual void CAknSettingPage_Reserved_2(); + + +private: + TTime& iTimeValue; + TTime iBackupTimeValue; + +}; + +/** + * + * This class is used for entering duration in a "Code" setting page + * + */ +class CAknDurationSettingPage : public CAknMfneSettingPage +{ +public: + /** + * Constructor using purely Setting page resource + * + * @param aResourceId Setting page resource Id + * @param aDurationValue Reference to the maintained duration value + */ + IMPORT_C CAknDurationSettingPage( + TInt aResourceID, + TTimeIntervalSeconds& aDurationValue); + /** + * Constructor that allows separate setting page and editor resources + * + * This constructor allows the use of setting page using only the editor + * resource. Other combinations are also possible + * + * In all cases the number (if supplied i.e. <> 0 ) is used. + * + * Editor Resource Setting Page Resource + * present present Both are used + * (but text & number + * overridden) + * = 0 present Editor resource is used + * via SP resource + * (Effectively like the + * other constructor) + * present = 0 Default Avkon SP + * resource if used + this + * editor resource + * = 0 = 0 uses default resource + * for both SP and editor. + * This is OK if: + * i) control type is present, + * ii) a default resource exists ( OK for text, integer, + * date, time, duration ) + * + * Note: The first argument is a TDesC* (rather than TDesC&) because the + * other constructor cannot initialize such a member without allocation or + * having an internal dummy buffer. + * Note that this descriptor must be owned by the client at least until the + * ExecuteLD(). + * + * Rules for text and numbers: The rules are the same for both: + * (non-zero length) text or number other than + * EAknSettingPageNoOrdinalDisplayed if given in this constructor will not + * override resource (unless that is zero length or + * EAknSettingPageNoOrdinalDisplayed). Note, however, that text or number + * given via the specific API for setting them, WILL override resource. + * It is assumed that number from resource is very rare. Special text is + * somewhat more likely. + * + * @param aSettingTitleText Text at top of setting pane; OWNED EXTERNALLY + * @param aSettingNumber Number at top left (if present) + * @param aControlType Determines the type constructed and how its + * resource is read + * @param aEditorResourceId Editor resource to use in the setting page + * (if present) + * @param aSettingPageResourceId Setting Page to use (if present) + * @param aDurationValue reference to a duration + */ + IMPORT_C CAknDurationSettingPage( const TDesC* aSettingTitleText, + TInt aSettingNumber, + TInt aControlType, + TInt aEditorResourceId, + TInt aSettingPageResourceId, + TTimeIntervalSeconds& aDurationValue); + + /** + * Specific 2nd stage contructor for this type. Construction is performed + * according to the resources and parameters set in the C++ constructors + * + */ + IMPORT_C virtual void ConstructL(); + /** + * Type-specific access to the editor + */ + IMPORT_C CEikDurationEditor* DurationEditor(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +protected: + /** + * Destructor + */ + IMPORT_C virtual ~CAknDurationSettingPage(); + + /** + * This framework method is called when the editor changes its value and + * the mode of execution of the setting page is a continuous update mode. + * + */ + IMPORT_C virtual void UpdateSettingL(); + + /** + * Called when the user has accepted the value. + * The external value is updated once again, in case we were not in + * continuous update mode. + * A specific observer event is generated for the observer to say that the + * value is accepted. + */ + IMPORT_C virtual void AcceptSettingL(); + + /** + * The backup value, stored at construction time, is re-loaded into the + * referenced Date. + * An event is sent to the observer saying that the event was dismissed. + */ + IMPORT_C virtual void RestoreOriginalSettingL(); + +// +// CoeControl Framework and reserved methods +// +protected: + +/** + * Writes the internal state of the control and its components to aStream. + * Does nothing in release mode. + * Designed to be overidden and base called by subclasses. + * + * @param aWriteSteam A connected write stream + */ + IMPORT_C virtual void WriteInternalStateL(RWriteStream& aWriteStream) const; + +private: +/** + * Reserved method derived from CCoeControl + */ + IMPORT_C virtual void Reserved_2(); + +private: + /** + * From CAknControl + */ + IMPORT_C void* ExtensionInterface( TUid aInterface ); + +/** + * New reserved methods for CAknSettingPage hierarchy + */ +private: + IMPORT_C virtual void CAknSettingPage_Reserved_1(); + IMPORT_C virtual void CAknSettingPage_Reserved_2(); + +private: + TTimeIntervalSeconds& iDurationValue; + TTimeIntervalSeconds iBackupDurationValue; +}; + + +/** +* Time offset setting page. +* +* @lib avkon +* @since 2.0 +*/ + +class CAknTimeOffsetSettingPage : public CAknMfneSettingPage +{ +public: + /** + * Constructor using purely Setting page resource + * + * @since 2.0 + * @param aResourceId Setting page resource Id + * @param aTimeOffsetValue Reference to the maintained + * offset value + */ + IMPORT_C CAknTimeOffsetSettingPage( + TInt aResourceID, + TTimeIntervalSeconds& aTimeOffsetValue); + /** + * Constructor that allows separate setting page and editor resources + * + * This constructor allows the use of setting page using only the editor + * resource. Other combinations are also possible + * + * In all cases the number (if supplied i.e. <> 0 ) is used. + * + * Editor Resource Setting Page Resource + * present present Both are used + * (but text & number + * overridden) + * = 0 present Editor resource is + * used via SP resource + * (Effectively like the + * other constructor) + * present = 0 Default Avkon SP + * resource if used + + * this editor resource + * = 0 = 0 uses default resource + * for both SP and editor. + * This is OK if: + * i) control type is present, + * ii) a default resource exists ( OK for text, integer, + * date, time, duration ) + * + * Note: The first argument is a TDesC* (rather than TDesC&) because + * the other constructor cannot initialize such a member without allocation + * or having an internal dummy buffer. + * Note that this descriptor must be owned by the client at least until the + * ExecuteLD(). + * + * Rules for text and numbers: The rules are the same for both: + * (non-zero length) text or number other than + * EAknSettingPageNoOrdinalDisplayed if given in this constructor will not + * override resource (unless that is zero length or + * EAknSettingPageNoOrdinalDisplayed). Note, however, that text or number + * given via the specific API for setting them, WILL override resource. + * It is assumed that number from resource is very rare. Special text is + * somewhat more likely. + * + * @since 2.0 + * @param aSettingTitleText Text at top of setting pane; OWNED EXTERNALLY + * @param aSettingNumber Number at top left (if present) + * @param aControlType Determines the type constructed + * and how its resource is read + * @param aEditorResourceId Editor resource to use in the setting page + * (if present) + * @param aSettingPageResourceId Setting Page to use (if present) + * @param aTimeOffsetValue reference to time offset + */ + IMPORT_C CAknTimeOffsetSettingPage( const TDesC* aSettingTitleText, + TInt aSettingNumber, + TInt aControlType, + TInt aEditorResourceId, + TInt aSettingPageResourceId, + TTimeIntervalSeconds& aTimeOffsetValue); + + /** + * Specific 2nd stage contructor for this type. Construction is performed + * according to the resources and parameters set in the C++ constructors + * + */ + IMPORT_C virtual void ConstructL(); + /** + * Type-specific access to the editor + */ + IMPORT_C CEikTimeOffsetEditor* TimeOffsetEditor(); + /** + * From CCoeControl + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +protected: + /** + * Destructor + */ + IMPORT_C virtual ~CAknTimeOffsetSettingPage(); + + /** + * This framework method is called when the editor changes its + * value and the mode of execution of the setting page is a continuous + * update mode. + * + * @since 2.0 + */ + IMPORT_C virtual void UpdateSettingL(); + + /** + * Called when the user has accepted the value. + * The external value is updated once again, in case we were not in + * continuous update mode. + * A specific observer event is generated for the observer to say that the + * value is accepted. + * + * @since 2.0 + */ + IMPORT_C virtual void AcceptSettingL(); + + /** + * The backup value, stored at construction time, is re-loaded into the + * referenced Date. + * An event is sent to the observer saying that the event was dismissed. + * + * @since 2.0 + */ + IMPORT_C virtual void RestoreOriginalSettingL(); + +// +// CoeControl Framework and reserved methods +// +protected: + +/** + * Writes the internal state of the control and its components to aStream. + * Does nothing in release mode. + * Designed to be overidden and base called by subclasses. + * + * @since 2.0 + * @param aWriteSteam A connected write stream + */ + IMPORT_C virtual void WriteInternalStateL(RWriteStream& aWriteStream) const; + +private: +/** + * Reserved method derived from CCoeControl + * + * @since 2.0 + */ + IMPORT_C virtual void Reserved_2(); + +private: + /** + * From CAknControl + */ + IMPORT_C void* ExtensionInterface( TUid aInterface ); + +/** + * New reserved methods for CAknSettingPage hierarchy + */ +private: + IMPORT_C virtual void CAknSettingPage_Reserved_1(); + IMPORT_C virtual void CAknSettingPage_Reserved_2(); + +private: + TTimeIntervalSeconds& iTimeOffsetValue; + TTimeIntervalSeconds iBackupTimeOffsetValue; + +}; +/** + * + * Setting page class for entering an IP Address + * + */ +class CAknIpFieldSettingPage : public CAknMfneSettingPage +{ +public: + /** + * Constructor using purely Setting page resource + * + * @param aResourceId Setting page resource Id + * @param aIpAddress Reference to the maintained IP address + */ + IMPORT_C CAknIpFieldSettingPage( + TInt aResourceID, + TInetAddr& aIpAddress); + /** + * Constructor that allows separate setting page and editor resources + * + * This constructor allows the use of setting page using only the editor + * resource. Other combinations are also possible + * + * In all cases the number (if supplied i.e. <> 0 ) is used. + * + * Editor Resource Setting Page Resource + * present present Both are used (but text + * & number overridden) + * = 0 present Editor resource is + * used via SP resource + * (Effectively like the + * other constructor) + * present = 0 Default Avkon SP + * resource if used + this + * editor resource + * = 0 = 0 uses default resource + * for both SP and editor. + * This is OK if: + * i) control type is present, + * ii) a default resource exists ( OK for text, integer, + * date, time, duration ) + * + * Note: The first argument is a TDesC* (rather than TDesC&) because the + * other constructor cannot initialize such a member without allocation + * or having an internal dummy buffer. + * Note that this descriptor must be owned by the client at least until + * the ExecuteLD(). + * + * Rules for text and numbers: The rules are the same for both: + * (non-zero length) text or number other than + * EAknSettingPageNoOrdinalDisplayed if given in this constructor will not + * override resource (unless that is zero length or + * EAknSettingPageNoOrdinalDisplayed). Note, however, that text or number + * given via the specific API for setting them, WILL override resource. + * It is assumed that number from resource is very rare. Special text is + * somewhat more likely. + * + * @param aSettingTitleText Text at top of setting pane; OWNED EXTERNALLY + * @param aSettingNumber Number at top left (if present) + * @param aControlType Determines the type constructed and how its + * resource is read + * @param aEditorResourceId Editor resource to use in the setting page + * (if present) + * @param aSettingPageResourceId Setting Page to use (if present) + * @param aIpAddress reference to a duration + */ + IMPORT_C CAknIpFieldSettingPage( const TDesC* aSettingTitleText, + TInt aSettingNumber, + TInt aControlType, + TInt aEditorResourceId, + TInt aSettingPageResourceId, + TInetAddr& aIpAddress); + + /** + * Specific 2nd stage contructor for this type. Construction is performed + * according to the resources and parameters set in the C++ constructors + * + */ + IMPORT_C virtual void ConstructL(); + /** + * Type-specific access to the editor + */ + IMPORT_C CAknIpFieldEditor* IpFieldEditor(); + + /** + * From CCoeControl + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +protected: + /** + * Destructor + */ + IMPORT_C virtual ~CAknIpFieldSettingPage(); + + /** + * This framework method is called when the editor changes its value and + * the mode of execution of the setting page is a continuous update mode. + * + */ + IMPORT_C virtual void UpdateSettingL(); + + /** + * Called when the user has accepted the value. + * The external value is updated once again, in case we were not in + * continuous update mode. + * A specific observer event is generated for the observer to say that the + * value is accepted. + */ + IMPORT_C virtual void AcceptSettingL(); + + /** + * The backup value, stored at construction time, is re-loaded into + * the referenced Date. + * An event is sent to the observer saying that the event was dismissed. + */ + IMPORT_C virtual void RestoreOriginalSettingL(); + +// +// CoeControl Framework and reserved methods +// +protected: + +/** + * Writes the internal state of the control and its components to aStream. + * Does nothing in release mode. + * Designed to be overidden and base called by subclasses. + * + * @param aWriteSteam A connected write stream + */ + IMPORT_C virtual void WriteInternalStateL(RWriteStream& aWriteStream) const; + +private: + +/** + * Reserved method derived from CCoeControl + */ + IMPORT_C virtual void Reserved_2(); + +private: + /** + * From CAknControl + */ + IMPORT_C void* ExtensionInterface( TUid aInterface ); + +/** + * New reserved methods for CAknSettingPage hierarchy + */ +private: + IMPORT_C virtual void CAknSettingPage_Reserved_1(); + IMPORT_C virtual void CAknSettingPage_Reserved_2(); + +private: + TInetAddr& iIpAddress; + TInetAddr iBackupIpAddress; // Not a reference + + }; +#endif