diff -r 000000000000 -r 094583676ce7 wvuing/wvuiave/AppSrc/CCAAppSettingsDialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiave/AppSrc/CCAAppSettingsDialog.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,388 @@ +/* +* Copyright (c) 2006 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: Dialog for application local settings + * +*/ + + +#ifndef CCAAPPSETTINGSDIALOG_H +#define CCAAPPSETTINGSDIALOG_H + +// INCLUDES +#include +#include +#include +#include "MCAUiSettingsDialogCmdCB.h" +#include "MCASettingSapExt.h" +#include "MCASettingsPC.h" +#include "MCASettingsCommand.h" + +// FORWARD DECLARATIONS +class CAknSettingItemArray; +class CCAStatusPaneHandler; +class CAknSettingStyleListBox; +class CCAUISessionManager; +class CAknSettingItem; +class CIMPSSAPSettings; +class CIMPSSAPSettingsStore; +class CRepository; + +// CLASS DECLARATION + +/** + * Application settings dialog + * Implements the dialog that is used with application settings + * + * @lib chatng.app + */ +class CCAAppSettingsDialog : public CAknDialog, + public MEikListBoxObserver, + public MCAUiSettingsDialogCmdCB + { + private: // Enumerations + + //Setting items' indexes + enum TSettingListLayout + { + ENickName = 0, + EAuthorizePresence, + EReceiveIMessages, + EReceiveInvitations, + EMessageFlow, + EContactOrdering, + EFriendsListUpdate, + EContactsToBeReloaded, + EAutoLogin, + EAliasName, + EShowOffline, + EOwnColor, + EOtherColor, + EMessageTone, + EShowTimeStamp, + ELastItemMarker + }; + + public: // Constructors and destructor + + /** + * C++ default constructor. + * @param aTitleBar Reference to status-pane handler + * @param aSettings Reference to settings API + */ + CCAAppSettingsDialog( CCAStatusPaneHandler& aTitleBar, + MCASettingsPC& aSettingsPC, + CCAUISessionManager& aUISessionManager, + CIMPSSAPSettings* aServer ); + + /** + * Destructor. + */ + virtual ~CCAAppSettingsDialog(); + + public: // New methods + + /** + * Method which is called with async callback + * @param aInstance Object which is called + * @return EFalse + */ + static TInt CallBack( TAny* aInstance ); + + /** + * Real callback handler. Launches dialogs. + * @return EFalse + */ + TInt DoHandleCallBackL(); + + void GetParameters( MCAUiSettingsDialogCmdCB::TSettingsDialogParams& aSettingsDialogParams ); + + /** + * Help Key Support + * This function is called by the Framework to get the context to launch + * Help + * + * @param aContext The context that contains the appid and the help id. + */ + void GetHelpContext( TCoeHelpContext& aContext ) const; + + /** + * Set the status of a dialog + * @param aContext The status whether a dialog is shown + */ + void SetIsTargetDialogOpened( TBool aBool ); + + /** + * Get the status of a dialog + * @return Dialog status + */ + TBool GetIsTargetDialogOpened(); + private: //From MEikCommandObserver + + /** + * From MEikCommandObserver Command handler + * @since 1.2 + * @param aCommand Command that was initiated + */ + void ProcessCommandL( TInt aCommand ); + + private: // Functions from MEikListBoxObserver + + /** + * From MEikListBoxObserver Callback for listbox events + * @since 1.2 + * @param aListBox Originating listbox + * @param aEventType Event type + */ + void HandleListBoxEventL( CEikListBox* aListBox, + TListBoxEvent aEventType ); + + private: // Functions from CCoeControl + + /** + * Called by framework when system wide resources are changed. + * @since 3.1 + */ + void HandleResourceChange( TInt aType ); + + /** + * From CCoeControl + * @see CCoeControl for more information + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ); + + /** + * From CEikDialog + * @see CEikDialog for more information + */ + void DisplayMenuL(); + protected: // Functions from CEikDialog + + /** + * From MEikMenuObserver + * @see MEikMenuObserver + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + /** + * From CEikDialog + * @see CEikDialog for more information + */ + void PreLayoutDynInitL(); + + /** + * From CEikDialog + * @see CEikDialog for more information + */ + TBool OkToExitL( TInt aButtonId ); + + private: //New methods + + + /** + * Lauches text-setting-page + * @since 1.2 + */ + void DisplayTextSettingPageL(); + + + /** + * Adds binary-type item to settings array + * @since 1.2 + * @param aBuffer Buffer for setting value + * @param aId Resource id for the associated values and texts + * @param aTitleResource Title text's resource id + * @param aSettingPageResource Setting page's resource id + * @param aAssociatedResource Associated resource + * @see CAknSettingItem for more information about parameters + */ + void AddBinaryItemL( TBool& aBuffer, + TInt aId, + TInt aTitleResource, + TInt aSettingPageResource, + TInt aAssociatedResource ); + + /** + * Adds enumerated text-type item to settings array + * @since 2.1 + * @param aBuffer Buffer for setting value + * @param aId Resource id for the associated values and texts + * @param aTitleResource Title text's resource id + * @param aSettingPageResource Setting page's resource id + * @param aAssociatedResource Associated resource + * @see CAknSettingItem for more information about parameters + */ + void AddEnumTextItemL( TInt& aBuffer, + TInt aId, + TInt aTitleResource, + TInt aSettingPageResource, + TInt aAssociatedResource ); + + /** + * Adds colour setting item to settings array. + * @since S60 v3.2 + * @param aKey Key for key-value pair in SAP settings, + used to get colour information from SAP settings. + * @param aBuffer Buffer for setting value. + * @param aId Resource id for the associated values and texts. + * @param aTitleResource Title text's resource id. + * @param aSettingPageResource Setting page's resource id. + * @see CAknSettingItem for more information about parameters. + */ + void AddColourItemL( + const TDesC& aKey, + TBool& aBuffer, + TInt aId, + TInt aTitleResource ); + + /** + * Stores the values of setting items to persistent storage + * @since 1.2 + */ + void StoreValuesL(); + + /** + * Handles the errorcodes, leaves on non-CSP error codes + * @since 2.5 + */ + void HandleErrorL( TInt aErrorCode ); + + /** + * Externalizes the values of setting items' iternal buffers + * @since 1.2 + */ + void StoreAllL() const; + + /** + * Updates title-pane text with text found from given resource id + * @param aResourceId Resource id for text + * @since 1.2 + */ + void UpdateTitlePaneL( const TInt aResourceId ); + + /** + * Handle CBA change. + * @param aResourceId. Id for resource to use. + * @since 2.8 + */ + void HandleCBAChangeL( const TInt aResourceId ); + + /** + * Adds tone setting item to setting item array + */ + void AddToneSettingItemL( TBool aBranded ); + + + private: // Data + + // Owns. Array for setting items + CAknSettingItemArray* iSettingItemArray; + + // Doesn't own. Pointer to status-pane handler + CCAStatusPaneHandler* iTitlePane; + + + //Doesn't own + CCAUISessionManager* iUISessionManager; + // Doesn't own. Pointer to listbox in settings dialog + CAknSettingStyleListBox* iListbox; + + // Flag for default nickname usage + TBool iDefaultNick; + TBool iOldDefaultNick; + + // Enum for authorizing IM presence + TInt iAuthorizeIMPr; + TInt iOldAuthorizeIMPr; + + // Enum for receiving instant messages + TInt iReceiveIMessages; + TInt iOldReceiveIMessages; + + // Enum for receiving invitations + TInt iReceiveInvitations; + TInt iOldReceiveInvitations; + + // Value for message flow + TInt iMsgFlow; + TInt iOldMsgFlow; + + // Flag for contact list ordering + TBool iOrderAlphabetically; + TBool iOldOrderAlphabetically; + + // Flag for automatic friends-list update + TBool iAutoUpdFriends; + TBool iOldAutoUpdFriends; + + // Owns. Buffer for default nickname + HBufC* iDefaultNickName; + HBufC* iOldDefaultNickName; + + + //owns. Buffer for tone filename + HBufC* iToneFileName; + TPtr iToneFileNamePtr; + TBool iToneFileInUse; + //Tells if branded tones are in use + TInt iBrandedTones; + + // "show offline contacts" + TBool iShowOffline; + TBool iOldShowOffline; + + // is own/other message color defined + TBool iOwnColorDefined; + TBool iOthersColorDefined; + + // Show timestamp settings item + TBool iOldShowTimeStamp; + TBool iShowTimeStamp; + + // Ordinal number that is used to layout the dialog correctly + TInt iOrdinal; + + MCASettingSapExt* iSAPExtension; + + // Doesn't own. Pointer to settings API + MCASettingsPC* iSettingsPC; + // async callback for showing dialogs + CAsyncCallBack* iAsyncCallBack; + + // settingitem index which will be edited with callback + TInt iEditIndex; + + // Is edit dialog launched from menu (ETrue) + TBool iIsPopUp; + + // Not owned. the server whose settings we show + CIMPSSAPSettings* iServer; + + // Not owned. Pointer to message flow setting item + CAknSettingItem* iFlowSettingItem; + + // owns. + CRepository* iCenRep; + MCASettingsCommand* iCommandSetings; + + TBool iIsEditItemFlag; + + TBool iIsTargetDialogOpened; + + TBool iSavingFlag; + }; + +#endif // CCAAPPSETTINGSDIALOG_H + +// End of File