williamr@2: /* williamr@2: * Copyright (c) 2002 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: * Interface for Setting page carrying CEikEdwin editors williamr@2: * - CAknTextSettingPage: 6 line text editor williamr@2: * - CAknIntegerSettingPage: 1 line integer editor williamr@2: * williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef __AKNTEXTSETTINGPAGE_H__ williamr@2: #define __AKNTEXTSETTINGPAGE_H__ williamr@2: williamr@2: // For coecontrol and its observer williamr@2: #include williamr@2: #include williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include "aknsettingpage.h" williamr@2: #include "aknnumedwin.h" williamr@2: williamr@2: /** williamr@2: * This class is an intermediate pure virtual class for all setting page classes that host williamr@2: * Edwins. williamr@2: * williamr@2: * It implements type-specific access to the hosted editor and common drawing code williamr@2: */ williamr@2: class CAknEdwinSettingPage : public CAknSettingPage williamr@2: { williamr@2: williamr@2: public: williamr@2: williamr@2: /** williamr@2: * Common access to the edwin for descendant classes williamr@2: * williamr@2: * @return Pointer to contained edwin control williamr@2: */ williamr@2: IMPORT_C CEikEdwin* TextControl(); williamr@2: williamr@2: /** williamr@2: * From CCoeControl. williamr@2: * Handles pointer events williamr@2: */ williamr@2: IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); williamr@2: williamr@2: protected: williamr@2: /** williamr@2: * Simple constructor depending only on a single resource Id. williamr@2: * williamr@2: * @param aSettingPageResourceId Setting Page resource id to use williamr@2: */ williamr@2: IMPORT_C CAknEdwinSettingPage( TInt ResourceId ); williamr@2: /** williamr@2: * Constructor that allows separate setting page and editor resources williamr@2: * williamr@2: * This constructor allows the use of setting page using only the editor resource. Other combinations are also possible williamr@2: * williamr@2: * In all cases the number (if supplied i.e. <> 0 ) is used. williamr@2: * williamr@2: * Editor Resource Setting Page Resource williamr@2: * present present Both are used (but text & number overridden) williamr@2: * = 0 present Editor resource is used via SP resource (Effectively like the other constructor) williamr@2: * present = 0 Default Avkon SP resource if used + this editor resource williamr@2: * = 0 = 0 uses default resource for both SP and editor. This is OK if: williamr@2: * i) control type is present, williamr@2: * ii) a default resource exists ( OK for text, integer, date, time, duration ) williamr@2: * williamr@2: * Note: THe first argument is a TDesC* (rather than TDesC&) because the other constructor williamr@2: * cannot initialize such a member without allocation or having an internal dummy buffer. williamr@2: * Note that this buffer must be owned by the client until ExecuteLD has been called. williamr@2: * williamr@2: * Rules for text and numbers: The rules are the same for both: (non-zero length) text or number other williamr@2: * than EAknSettingPageNoOrdinalDisplayed if given in this constructor will not override resource williamr@2: * (unless that is zero length or EAknSettingPageNoOrdinalDisplayed). Note, however, that text or number given via the williamr@2: * specific API for setting them, WILL override resource. williamr@2: * It is assumed that number from resource is very rare. Special text is somewhat more likely. williamr@2: * williamr@2: * @param aSettingTitleText Text at top of setting pane; EXTERNALLY OWNED williamr@2: * @param aSettingNumber Number at top left (if present) williamr@2: * @param aControlType Determines the type constructed and how its resource is read williamr@2: * @param aEditorResourceId Editor resource to use in the setting page (if present) williamr@2: * @param aSettingPageResourceId Setting Page to use (if present) williamr@2: */ williamr@2: williamr@2: IMPORT_C CAknEdwinSettingPage( williamr@2: const TDesC* aSettingTitleText, williamr@2: TInt aSettingNumber, williamr@2: TInt aControlType, williamr@2: TInt aEditorResourceId, williamr@2: TInt aSettingPageResourceId ); williamr@2: williamr@2: // williamr@2: // From CCoeControl williamr@2: // williamr@2: protected: williamr@2: /** williamr@2: * No implementation of SizeChanged is delivered with this class williamr@2: * williamr@2: */ williamr@2: virtual void SizeChanged() = 0; williamr@2: williamr@2: /** williamr@2: * Common draw function for laid-out descendent setting pages. williamr@2: * This should not need to be re-implemented as long as the rectangle members are williamr@2: * all that is needed williamr@2: * williamr@2: * @param aRect rectangle within which to perform the draw williamr@2: */ williamr@2: IMPORT_C void Draw(const TRect& aRect) const; williamr@2: williamr@2: private: williamr@2: /** williamr@2: * From CAknControl williamr@2: */ williamr@2: IMPORT_C void* ExtensionInterface( TUid aInterface ); williamr@2: williamr@2: private: williamr@2: /** williamr@2: * New reserved method with this class williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void CAknEdwinSettingPage_Reserved_1(); williamr@2: williamr@2: protected: williamr@2: /** williamr@2: * Rectangle within which to layout the edwin. Not drawn williamr@2: */ williamr@2: TAknLayoutRect iEdwinLayoutRect; williamr@2: williamr@2: /** williamr@2: * Horizontal shadow rectangle williamr@2: */ williamr@2: TAknLayoutRect iHorizontalShadow; williamr@2: williamr@2: /** williamr@2: * Vertical shadow rectangle williamr@2: */ williamr@2: TAknLayoutRect iVerticalShadow; williamr@2: williamr@2: /** williamr@2: * Rectangle drawn around the edwin williamr@2: */ williamr@2: TAknLayoutRect iOutlineFrame; williamr@2: williamr@2: private: williamr@2: TInt iSpare; williamr@2: }; williamr@2: williamr@2: /** williamr@2: * Implementation of the 6 line textual setting page. williamr@2: * A multi-line edwin is displayed when the setting page is executing. williamr@2: * An externally held text descriptor is altered by user input williamr@2: */ williamr@2: class CAknTextSettingPageExtension; williamr@2: williamr@2: class CAknTextSettingPage : public CAknEdwinSettingPage williamr@2: { williamr@2: public: williamr@2: williamr@2: // Flags to modify the behaviour of the editor williamr@2: enum TAknTextSettingPageFlags williamr@2: { williamr@2: EZeroLengthNotOffered = 0x0, // DEPRECATED. This enum preserved but with value 0 williamr@2: EPutCursorAtEnd = 0x0, // DEPRECATED. This is already default so putting flag at beginning is more useful williamr@2: EZeroLengthAllowed = 0x0000001, williamr@2: ENoInitialSelection = 0x0000004, // DEPRECATED and no longer used williamr@2: EPutCursorAtBeginning = 0x0000008, // DEPRECATED and no longer used williamr@2: // Instructs the TextSettingPage not to override any of the Edwin's cursor and selection flags williamr@2: EUseEdwinCursorAndSelectionFlags = 0x0000010, // DEPRECATED williamr@2: EPredictiveTextEntryPermitted = 0x0020 williamr@2: }; williamr@2: williamr@2: public: williamr@2: /** williamr@2: * Simple constructor depending only on a single resource Id. Editor resource is given via williamr@2: * the link in the setting page resource. williamr@2: * williamr@2: * @param aSettingPageResourceId Setting Page to use (if present) williamr@2: * @param aText Reference to text for editing williamr@2: * @param aTextSettingPageFlags option flags for miscellaneous things williamr@2: */ williamr@2: IMPORT_C CAknTextSettingPage(TInt aResourceID, TDes& aText, TInt aTextSettingPageFlags = 0 ); williamr@2: /** williamr@2: * Constructor that allows separate setting page and editor resources williamr@2: * williamr@2: * This constructor allows the use of setting page using only the editor resource. Other combinations are also possible williamr@2: * williamr@2: * In all cases the number (if supplied i.e. <> 0 ) is used. williamr@2: * williamr@2: * Editor Resource Setting Page Resource williamr@2: * present present Both are used (but text & number overridden) williamr@2: * = 0 present Editor resource is used via SP resource (Effectively like the other constructor) williamr@2: * present = 0 Default Avkon SP resource if used + this editor resource williamr@2: * = 0 = 0 uses default resource for both SP and editor. This is OK if: williamr@2: * i) control type is present, williamr@2: * ii) a default resource exists ( OK for text, integer, date, time, duration ) williamr@2: * williamr@2: * Note: The first argument is a TDesC* (rather than TDesC&) because the other constructor williamr@2: * cannot initialize such a member without allocation or having an internal dummy buffer. williamr@2: * Note that this buffer must be owned by the client until ExecuteLD has been called. williamr@2: * williamr@2: * Rules for text and numbers: The rules are the same for both: (non-zero length) text or number other williamr@2: * than EAknSettingPageNoOrdinalDisplayed if given in this constructor will not override resource williamr@2: * (unless that is zero length or EAknSettingPageNoOrdinalDisplayed). Note, however, that text or number given via the williamr@2: * specific API for setting them, WILL override resource. williamr@2: * It is assumed that number from resource is very rare. Special text is somewhat more likely. williamr@2: * williamr@2: * @param aSettingTitleText Text at top of setting pane; OWNED EXTERNALLY williamr@2: * @param aSettingNumber Number at top left (if present) williamr@2: * @param aControlType Determines the type constructed and how its resource is read williamr@2: * @param aEditorResourceId Editor resource to use in the setting page (if present) williamr@2: * @param aSettingPageResourceId Setting Page to use (if present) williamr@2: * @param aText Reference to text for editing williamr@2: * @param aTextSettingPageFlags option flags for miscellaneous things williamr@2: */ williamr@2: IMPORT_C CAknTextSettingPage( const TDesC* aSettingTitleText, williamr@2: TInt aSettingNumber, williamr@2: TInt aControlType, williamr@2: TInt aEditorResourceId, williamr@2: TInt aSettingPageResourceId, williamr@2: TDes& aText, williamr@2: TInt aTextSettingPageFlags = 0); williamr@2: williamr@2: /** williamr@2: * 2nd stage construction for this specific type. Calls BaseConstructL in williamr@2: * CAknSettingPage, where the object is constructed from resource. williamr@2: * williamr@2: * After calling this method, the contained editor is fully constructed and has its text set, williamr@2: * copied from the aText parameter of the constructor. williamr@2: * williamr@2: * This constructor can be called prior to a call to ExecuteLD in order to ensure williamr@2: * construction of the editor if API needs to be called on it prior to setting page launch. williamr@2: * ExecuteLD will not attempt itself to do the construction a 2nd time. williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void ConstructL(); williamr@2: williamr@2: /** williamr@2: * From CCoeControl. williamr@2: * Handles pointer events williamr@2: */ williamr@2: IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); williamr@2: williamr@2: williamr@2: protected: williamr@2: /** williamr@2: * C++ destructor williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual ~CAknTextSettingPage(); williamr@2: williamr@2: // williamr@2: // CAknSettingPage Framework implementations williamr@2: // williamr@2: protected: williamr@2: williamr@2: /** williamr@2: * Called immediately prior to activation of the dialog. Framework routine for derived williamr@2: * classes. williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void DynamicInitL(); williamr@2: williamr@2: /** williamr@2: * Called when something has changed and the client's object needs to have its text updated williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void UpdateSettingL(); williamr@2: williamr@2: /** williamr@2: * Called when the user accepts the text and the setting page is about to be dismissed. The latest value of the williamr@2: * text is written to the client's object williamr@2: */ williamr@2: IMPORT_C virtual void AcceptSettingL(); williamr@2: williamr@2: /** williamr@2: * Called when the user rejects the setting. williamr@2: * A backed up copy is used to restore the initial value williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void RestoreOriginalSettingL(); williamr@2: williamr@2: /** williamr@2: * From MCoeControlObserver: williamr@2: * Acts upon changes in the hosted control's state. If the EUpdateWhenChanged williamr@2: * flag is set, this updates the setting text. williamr@2: * williamr@2: * @param aControl The control changing its state (not used) williamr@2: * @param aEventType The type of control event williamr@2: */ williamr@2: IMPORT_C virtual void HandleControlEventL(CCoeControl* aControl, TCoeEvent aEventType ); williamr@2: williamr@2: williamr@2: /** williamr@2: * Framework method to set the validity of the data williamr@2: * This is called when the data changes. williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void CheckAndSetDataValidity(); williamr@2: williamr@2: /** williamr@2: * This method copies out the text from the editor into the client's descriptor williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void UpdateTextL(); williamr@2: williamr@2: /** williamr@2: * Update the CBA. This should be called after a control state change in case williamr@2: * there has been a change in data validity. williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void UpdateCbaL(); williamr@2: williamr@2: /** williamr@2: * Framework method to determine if it is OK to exit the setting page. williamr@2: * Derived classes may check for valid data before allowing the dismissal of the williamr@2: * setting page. williamr@2: * williamr@2: * williamr@2: * williamr@2: * @param aAccept ETrue if the user has indicated to accept the setting page; EFalse otherwise williamr@2: * @return TBool a value indicating whether the setting page should be dismissed williamr@2: */ williamr@2: IMPORT_C virtual TBool OkToExitL(TBool aAccept); williamr@2: williamr@2: /** williamr@2: * This routine routes the keys to the editor. williamr@2: * However, if the menu is showing, then events are sent to the menu. williamr@2: * williamr@2: * @param aKeyEvent event information williamr@2: * @param aType type of event being handled williamr@2: * williamr@2: */ williamr@2: IMPORT_C TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType); williamr@2: williamr@2: williamr@2: /** williamr@2: * Reserved methods for CAknSettingPage hierarchy williamr@2: */ williamr@2: private: williamr@2: IMPORT_C virtual void CAknSettingPage_Reserved_1(); williamr@2: IMPORT_C virtual void CAknSettingPage_Reserved_2(); williamr@2: williamr@2: // williamr@2: // From CCoeControl williamr@2: // williamr@2: williamr@2: protected: williamr@2: williamr@2: /** williamr@2: * From CCoeControl williamr@2: * This routine is called as part of the set-up of the control. It is the place to put williamr@2: * the layout code. williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void SizeChanged(); williamr@2: williamr@2: /** williamr@2: * Writes the internal state of the control and its components to aStream. williamr@2: * Does nothing in release mode. williamr@2: * Designed to be overidden and base called by subclasses. williamr@2: * williamr@2: * @param aWriteSteam A connected write stream williamr@2: */ williamr@2: IMPORT_C virtual void WriteInternalStateL(RWriteStream& aWriteStream) const; williamr@2: williamr@2: private: williamr@2: /** williamr@2: * Reserved method derived from CCoeControl williamr@2: */ williamr@2: IMPORT_C virtual void Reserved_2(); williamr@2: williamr@2: private: williamr@2: /** williamr@2: * From CAknControl williamr@2: */ williamr@2: IMPORT_C void* ExtensionInterface( TUid aInterface ); williamr@2: williamr@2: /** williamr@2: * Reserved method from CAknEdwinSettingPage williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void CAknEdwinSettingPage_Reserved_1(); williamr@2: williamr@2: private: williamr@2: // restarts timer that blocks Ok button for the period FEP may reject the edit williamr@2: void RestartMultitapWaitTimer(); williamr@2: williamr@2: private: williamr@2: HBufC* iBackupText; williamr@2: TDes& iText; williamr@2: TInt iTextSettingPageFlags; williamr@2: CAknTextSettingPageExtension* iExtension; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: * Setting page specialized for display of CAknIntegerEdwin williamr@2: * williamr@2: */ williamr@2: class CAknIntegerSettingPage : public CAknEdwinSettingPage williamr@2: { williamr@2: public: williamr@2: williamr@2: // Flags to modify the behaviour of the editor williamr@2: enum TAknIntegerSettingPageFlags williamr@2: { williamr@2: EInvalidValueNotOffered = 0x0, williamr@2: EEmptyValueAllowed = 0x0000001, williamr@2: EInvalidValueAllowed = 0x0000002, williamr@2: ENoInitialSelection = 0x0000004, williamr@2: EPutCursorAtBeginning = 0x0000008 williamr@2: }; williamr@2: williamr@2: public: williamr@2: IMPORT_C CAknIntegerSettingPage(TInt aResourceID, TInt& aValue, TInt aTextSettingPageFlags = 0 ); williamr@2: /** williamr@2: * Constructor that allows separate setting page and editor resources williamr@2: * williamr@2: * This constructor allows the use of setting page using only the editor resource. Other combinations are also possible williamr@2: * williamr@2: * In all cases the number (if supplied i.e. <> 0 ) is used. williamr@2: * williamr@2: * Editor Resource Setting Page Resource williamr@2: * present present Both are used (but text & number overridden) williamr@2: * = 0 present Editor resource is used via SP resource (Effectively like the other constructor) williamr@2: * present = 0 Default Avkon SP resource if used + this editor resource williamr@2: * = 0 = 0 uses default resource for both SP and editor. This is OK if: williamr@2: * i) control type is present, williamr@2: * ii) a default resource exists ( OK for text, integer, date, time, duration ) williamr@2: * williamr@2: * Note: The first argument is a TDesC* (rather than TDesC&) because the other constructor williamr@2: * cannot initialize such a member without allocation or having an internal dummy buffer. williamr@2: * williamr@2: * Rules for text and numbers: The rules are the same for both: (non-zero length) text or number other williamr@2: * than EAknSettingPageNoOrdinalDisplayed if given in this constructor will not override resource williamr@2: * (unless that is zero length or EAknSettingPageNoOrdinalDisplayed). Note, however, that text or number given via the williamr@2: * specific API for setting them, WILL override resource. williamr@2: * It is assumed that number from resource is very rare. Special text is somewhat more likely. williamr@2: * williamr@2: * @param aSettingTitleText Text at top of setting pane; OWNED EXTERNALLY williamr@2: * @param aSettingNumber Number at top left (if present) williamr@2: * @param aControlType Determines the type constructed and how its resource is read williamr@2: * @param aEditorResourceId Editor resource to use in the setting page (if present) williamr@2: * @param aSettingPageResourceId Setting Page to use (if present) williamr@2: * @param aValue Reference to integer value for editing williamr@2: * @param aIntegerSettingPageFlags option flags for miscellaneous things williamr@2: */ williamr@2: IMPORT_C CAknIntegerSettingPage( const TDesC* aSettingTitleText, williamr@2: TInt aSettingNumber, williamr@2: TInt aControlType, williamr@2: TInt aEditorResourceId, williamr@2: TInt aSettingPageResourceId, williamr@2: TInt& aValue, williamr@2: TInt aIntegerSettingPageFlags = 0); williamr@2: williamr@2: /** williamr@2: * 2nd stage construction for this specific type. Call BaseConstructL in williamr@2: * CAknSettingPage, where the object is constructed from resource. williamr@2: */ williamr@2: IMPORT_C virtual void ConstructL(); williamr@2: williamr@2: /** williamr@2: * Type-specific access to the hosted editor williamr@2: * williamr@2: * @return CAknIntegerEdwin* pointer to the current hosted editor williamr@2: */ williamr@2: IMPORT_C CAknIntegerEdwin* IntegerEditorControl(); williamr@2: williamr@2: /** williamr@2: * From CCoeControl. williamr@2: * Handles pointer events williamr@2: */ williamr@2: IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); williamr@2: williamr@2: // williamr@2: // Framework methods from CAknSettingPage williamr@2: // williamr@2: protected: williamr@2: williamr@2: /** williamr@2: * Called immediately prior to activation of the dialog. Framework routine for derived williamr@2: * classes. williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void DynamicInitL(); williamr@2: williamr@2: /** williamr@2: * Called when something has changed and the client's object needs to have its value updated williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void UpdateSettingL(); williamr@2: williamr@2: williamr@2: /** williamr@2: * Called when the user rejects the setting. A backup copy may need to be restored if UpdateWhenChanged flag was set williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void RestoreOriginalSettingL(); williamr@2: williamr@2: /** williamr@2: * Framework method to set the validity of the data williamr@2: * This is called when the data changes. williamr@2: * May be over-ridden to change the validation rules. williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void CheckAndSetDataValidity(); williamr@2: williamr@2: /** williamr@2: * This framework method is used to update the contents of the CBA in a custom way. williamr@2: * Some setting page classes implement a degree of validation and will implement this. williamr@2: * Derived classes should ensure that this is being called frequently enough for their williamr@2: * purposes. williamr@2: */ williamr@2: IMPORT_C virtual void UpdateCbaL(); williamr@2: williamr@2: /** williamr@2: * Reserved methods for CAknSettingPage hierarchy williamr@2: */ williamr@2: private: williamr@2: IMPORT_C virtual void CAknSettingPage_Reserved_1(); williamr@2: IMPORT_C virtual void CAknSettingPage_Reserved_2(); williamr@2: williamr@2: williamr@2: williamr@2: // williamr@2: // From MEikControlObserver williamr@2: // williamr@2: williamr@2: protected: williamr@2: williamr@2: /** williamr@2: * From MCoeControlObserver: williamr@2: * Acts upon changes in the hosted control's state. williamr@2: * williamr@2: * The implementation of this class is trivial and should be able to be williamr@2: * safely re-implemented in directly client-derived classes. williamr@2: * For non-base setting page classes, a call to the base class should be made williamr@2: * williamr@2: * @param aControl The control changing its state (not used) williamr@2: * @param aEventType The type of control event williamr@2: */ williamr@2: IMPORT_C virtual void HandleControlEventL(CCoeControl* aControl, TCoeEvent aEventType ); williamr@2: williamr@2: // williamr@2: // From CCoeControl williamr@2: // williamr@2: protected: williamr@2: williamr@2: /** williamr@2: * From CCoeControl williamr@2: * This routine is called as part of the set-up of the control. It is the place to put williamr@2: * layout code. williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void SizeChanged(); williamr@2: williamr@2: williamr@2: /** williamr@2: * Writes the internal state of the control and its components to aStream. williamr@2: * Does nothing in release mode. williamr@2: * Designed to be overidden and base called by subclasses. williamr@2: * williamr@2: * @param aWriteSteam A connected write stream williamr@2: */ williamr@2: IMPORT_C virtual void WriteInternalStateL(RWriteStream& aWriteStream) const; williamr@2: williamr@2: private: williamr@2: /** williamr@2: * Reserved method derived from CCoeControl williamr@2: */ williamr@2: IMPORT_C virtual void Reserved_2(); williamr@2: williamr@2: private: williamr@2: /** williamr@2: * From CAknControl williamr@2: */ williamr@2: IMPORT_C void* ExtensionInterface( TUid aInterface ); williamr@2: williamr@2: private: williamr@2: williamr@2: /** williamr@2: * Reserved method from CAknEdwinSettingPage williamr@2: * williamr@2: */ williamr@2: IMPORT_C virtual void CAknEdwinSettingPage_Reserved_1(); williamr@2: williamr@2: private: williamr@2: TInt iBackupValue; williamr@2: TInt& iValue; williamr@2: TInt iIntegerSettingPageFlags; williamr@2: TInt iSpare_1; williamr@2: }; williamr@2: williamr@2: williamr@2: #endif