diff -r 6465d5bb863a -r 13e71d907dc3 gssettingsuis/Gs/GSCallPlugin/inc/GSCallPlugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gssettingsuis/Gs/GSCallPlugin/inc/GSCallPlugin.h Thu Nov 04 13:38:47 2010 +0800 @@ -0,0 +1,479 @@ +/* +* Copyright (c) 2002-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: Call sub-menu in General Settings. +* +*/ + + +#ifndef GSCALLPLUGIN_H +#define GSCALLPLUGIN_H + +// INCLUDES +#include "GSCallPluginModel.h" +#include "MGsFWMSKLabelObserver.h" + +#include //for MSSSettingsObserver +#include +#include +#include +#include +#include + +#include +#include +#include + +// FORWARD DECLARATIONS +class CGSCallPluginContainer; +class CAknRadioButtonSettingPage; +class CPsetContainer; +class CPsuiContainer; +class CPsuiWaitingObs; +class CPsetCallWaiting; +class CAknPopupList; +class CGSTelPluginModel; +class CGSCcbsHandler; +class CAknWaitDialog; +class CAknViewAppUi; + +// Constants +const TUid KCallPluginUID = { 0x102824A2 }; + +// Resource file name +_LIT( KGSCallPluginResourceFileName, "z:gscallpluginrsc.rsc" ); + +_LIT( KGSCallPluginIconDirAndName, "z:GSCallPlugin.mbm"); + +// CLASS DECLARATION +/** +* CGSCallPlugin view class +*/ +class CGSCallPlugin : public CGSBaseView, + public MSSSettingsObserver, + public MMGFetchVerifier, + public MGSAsyncImageHandlingObserver, + public MGsFWMSKObserver + { + public: // Constructor and destructor + + /* C++ Constructor */ + CGSCallPlugin(); + + /** + * Symbian OS two-phased constructor + * @return + */ + static CGSCallPlugin* NewL( TAny* aInitParams ); + + /* Symbian OS two-phase Constructor + * + * @return pointer to CGSCallPlugin object + */ + static CGSCallPlugin* NewLC(); + + /** + * Destructor. + */ + ~CGSCallPlugin(); + + public: // Functions from CAknView + + /** + * From CAknView, returns the views id. + * + * @return Returns id of the view. + */ + TUid Id() const; + + /** + * See base class. + */ + void HandleClientRectChange(); + + /** + * See base class. + */ + void HandleStatusPaneSizeChange(); + + /** + * From MEikCommandObserver, handles the menu based commands. + * + * @param aCommand identifies the given command. + */ + void HandleCommandL( TInt aCommand ); + + /** + * See base class. + */ + void DoActivateL( const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage ); + + /** + * See base class. + */ + void DoDeactivate(); + + public: // From base classes + /* + * From MSSSettingsObserver, observer function + * @param aSetting Current setting + * @param aNewValue New value for the setting + */ + void PhoneSettingChanged( TSSSettingsSetting aSetting, + TInt aNewValue ); + + /** + * Updates specific value to container + * @param aListItem item index to update + * @param aNewValue new value for the setting + */ + void UpdateListBoxL( const TInt& aListItem, TInt aNewValue ); + + /** + * From MEikCommandObserver, handles the commands. + * + * @param aCommand identifies the command given. + */ + void ProcessCommandL( TInt aCommand ); + + /** + * Checks if the MSK label needs to be adjusted. + */ + void CheckMiddleSoftkeyLabelL(); + + public: // From CGSPluginInterface + + /** + * See base class. + */ + void GetCaptionL( TDes& aCaption ) const; + + /** + * See base class. + */ + TInt PluginProviderCategory() const; + + /** + * See base class. + */ + CGulIcon* CreateIconL( const TUid aIconType ); + + public: //new + /** + * Remove command and label from MSK. + */ + void RemoveCommandFromMSK( const TBool flag); + + /** + * Adds given resource text as MSK to CBA. + * + * @param aResourceId middle softkey label. + * @param aCommandId command that should be performed when MSK + * is pressed. + * @since S60 v3.1 + */ + void SetMiddleSoftKeyLabelL( const TInt aResourceId,const TInt aCommandId ); + + protected: // from CGSBaseView + /** + * See base class. + */ + void NewContainerL(); + + /** + * See base class. + */ + void HandleListBoxSelectionL(); + + protected: //from MMGFetchVerifier + + /** + * Display Backlight setting page + */ + TBool VerifySelectionL( const MDesCArray* aSelectedFiles ); + + protected: //from MGSSyncImageHandlingObserver + + /** + * Method derived from MGSSyncImageHandlingObserver + * Run when the asynchronous image converting is complete. + */ + void ImageHandlingCompleteL( TInt aError ); + + protected: // From MEikMenuObserver + + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + protected: //new + + /** + * Symbian OS default constructor. + */ + void ConstructL(); + + /** + * Shows settingpage for on-off settings. + * + * @param aPage reveals what page should be displayed. + */ + void ShowSettingPageL( TGSCallItemIds aPage ); + + /** + * Responsible for showing als related settingpage. + * Separate method is needed because als settings differ quite + * a bit from the other on/off settings. + * + * @param aPage reveals what page should be displayed. + */ + void ShowAlsSettingPageL( TGSCallItemIds aPage ); + + /** + * Processes user's selection + * @param aSetting tells which value to switch + * Used when Central Repository is enabled + */ + void SwitchOnOffSetting( TCallSettId aSetting ); + + /** + * Adds item to a list + * @param aList reference to a list + * @param aItem resource ID of the item to be added + */ + void AppendItemL( CDesCArrayFlat& aList, TInt aItem ); + + + /** + * Selects what kind of menu to create next + * + * @param aIndex currently selected item + */ + virtual void HandleCreatePopupL( TInt aIndex ); + + /** + * Sets title to a setting page. + * + * @param aDlg reference to a setting page + * @param aTitleID resource ID of title + */ + void SetTitleToSettingL( CAknRadioButtonSettingPage& aDlg, + TInt aTitleID ); + + /** + * Sets title to status pane. + * + * @param aTitleID resource ID of title + */ + /*void SetTitleL( TInt aTitleID );*/ + + /** + * Switches value between shared data (0 = off, 1 = on) + * and setting page (1 = off, 0 = on). + * @param aValue value to switch + * @return switched value + */ + TInt SwitchValue( TInt& aValue ); + + /** + * Shows notes when Als Block value has been changed. + */ + void ShowAlsBlockNoteL(); + + /** + * Converts value between setting page and SsSettings. + * @param aValue value to convert + */ + void AlsBlockConvertValue( TInt& aValue ); + + /** + * Converts value between setting page and SsSettings. + * @param aValue value to convert + */ + void CliConvertValue( TInt& aValue ); + + /** + * Calls Security to make a Pin2 query. + * + * @return KPSPinQueryOk if query OK, otherwise 0. + */ + TInt MakePin2QueryL(); + + /** + * Calls Security to make a Security code query. + * + * @return ETrue if query OK. + */ + TBool MakeSecCodeQueryL(); + + /** + * Changes value in shared data for Als or Als Blocking. + */ + void SwitchAlsSettingL(); + + + /** + * Shows Soft reject setting page. + */ + void ShowSoftRejectSettingPageL(); + + + + /** + * Display the Setting page for Replace Prefix item + * @param aCurrentValue currently selected value in the setting page. + * @return ETrue if the setting page selection has changed. + */ + TBool ShowPrefixSettingPageL( TInt& aCurrentValue ); + + /** + * Toggles the Replace prefix between ON & OFF + * @param aSettingPage Tells whether to display the setting page + */ + void ChangePrefixSettingL( TBool aSettingPage ); + + /** + * Set the new changes to VOIP variables. + * @param aPage one of the TGSCallItemIds value w.r.t VOIP + * @param aCurrentSetting currently selected setting page item + */ + void SetVoipSettingBasedSelectedLine( + const TGSCallItemIds aPage, + TInt aCurrentSetting ); + + /** + * Gets line for selected VoIP setting. + * @param aPage one of the TGSCallItemIds value w.r.t VOIP + * @return line for selected VoIP setting. + */ + TInt GetLineForSelectedVoipSetting( const TGSCallItemIds aPage ); + + /** + * Display background image list from media gallery. + */ + void ShowVTStillImageSettingPageL(); + + /** + * + */ + void ShowStillImageListL(); + + /** + * Display image load wait note dialog. + */ + void ShowImageLoadWaitNoteL(); + + /** + * Hide image load wait note dialog. + */ + void HideImageLoadWaitNoteL(); + + /** + * Prompt image related errors to the user. + * @param aError system wide Symbian errors + */ + void HandleImageErrorsL( TInt aError ); + + /** + * Check if the input file is DRM protected + * @param aOriginalFileName Path of the bitmap file + * @return ETrue if file is DRM protected. + * EFalse otherwise. + */ + TBool CheckDRMProtectionL( const TDesC& aOriginalFileName ); + + TBool ShowCallDurationSettingPageL( TInt& aCurrentValue ); + + void ChangeCallDurationSettingL( TBool aSettingPage ); + + /** + * Shows note if preferred call setting + * was changed to the Internet Telephone. + */ + void ShowPreferredTelephonyNoteL(); + + /* + * Toggles between the setting values based on aShowSettingPage + * @param aShowSettingPage is ETrue then setting page is shown + */ + void ChangeLongPressCallKeySettingL( const TBool aShowSettingPage ); + + /* + * Launches setting page with the LongPressCallKey setting items + * @Param gets the updated value set + */ + TBool ShowLongPressCallKeySettingPageL( TInt& aCurrentValue ); + + /** + * Launches settings page for Own Image during video call setting + */ + void ShowOwnImageVtCallSettingPageL(); + + private: + //Retrieves container pointer. + CGSCallPluginContainer* Container(); + + /* + * Checks call state. + * @return one of the call states from P&S key + */ + TInt CheckCallStateL(); + + protected: // Member Variables + //CGSCallPluginModel class variable + CGSCallPluginModel* iModel; + //General access class for phonesettings. + CPsetContainer* iSettings; + //Call waiting SS handler + CPsetCallWaiting* iWaiting; + //General access class for PSUI. + CPsuiContainer* iObsContainer; + //Call waiting note handler + CPsuiWaitingObs* iCwObserver; + //Fetches ss related phone settings. + RSSSettings* iSsSettings; + //Value of als. + TInt iAls; + //Value of ALS Blocking. + TInt iAlsBlock; + //Value of Clir + TInt iClir; + //Has the rocker been pressed. + TBool iRockerPress; + //Creates and handles calls to CCBS Manager. + CGSCcbsHandler* iCcbsHandler; + + private: + // for image handling + CGSAsyncImageHandling* iImageHandler; + // for load wait dialog + CAknWaitDialog* iWaitDialog; + // local variation for restricted CLIR + TBool iRestrictedClir; + // local variation for secure CLIR + TBool iSecureClir; + // video Telephony Still Image state + TInt iVtStillImage; + // Previous video Telephony Still Image state + TInt iPreviousVtStillImage; + // check if which command MSK is set during destruction + TBool iMskCommandFlag; + //Lock for VT still image listbox item + TBool iVTImageSelectionOngoing; + + }; + + +#endif //GSCALLPLUGIN_H + +// End of File