--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gssettingsuis/Gs/GSCallPlugin/inc/GSCallPlugin.h Thu Dec 17 08:52:52 2009 +0200
@@ -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 <MSSSettingsObserver.h> //for MSSSettingsObserver
+#include <MMGFetchVerifier.h>
+#include <mgsasyncimagehandlingobserver.h>
+#include <centralrepository.h>
+#include <cenrepnotifyhandler.h>
+#include <ConeResLoader.h>
+
+#include <gsbaseview.h>
+#include <gsfwviewuids.h>
+#include <gsplugininterface.h>
+
+// 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