commsconfig/cscsettingsui/inc/cscsettingsuimaincontainer.h
changeset 0 a4daefaec16c
child 16 6134b5029079
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commsconfig/cscsettingsui/inc/cscsettingsuimaincontainer.h	Mon Jan 18 20:12:36 2010 +0200
@@ -0,0 +1,316 @@
+/*
+* Copyright (c) 2007-2009 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:  Declarition of CSCSettingsUiMainContainer
+*
+*/
+
+
+#ifndef C_CSCSETTINGSUIMAINCONTAINER_H
+#define C_CSCSETTINGSUIMAINCONTAINER_H
+
+class CCSCSettingsUiModel;
+class CAknSettingStyleListBox;
+
+/**
+ *  TListBoxItem class
+ *
+ *  @lib CSCSettingsUi.lib
+ *  @since S60 v3.2
+ */
+NONSHARABLE_CLASS( TMainListBoxItem )
+    {
+    public:
+    
+        /** Enumeration of setting items **/
+        enum TSettingItems
+            {
+            EUsername = 0,
+            EPassword,
+            EPreferredService,
+            EVccPreferredService,
+            EHandoverNotifTone,
+            EImTone,
+            EAutoacceptInv,
+            EServiceConn
+            };
+        
+        /**
+         * Constructor.
+         *
+         * @since S60 3.2
+         */
+        TMainListBoxItem()
+            : iItem( EUsername )
+            {}
+
+    public: // data
+
+        /**
+         * Listbox item
+         */
+        TSettingItems iItem;
+    };
+
+/**
+ *  CCSCSettingsUiMainContainer class
+ *  Declarition of CCSCSettingsUiMainContainer.
+ *
+ *  @lib CSCSettingsUi.lib
+ *  @since S60 v3.2
+ */
+NONSHARABLE_CLASS( CCSCSettingsUiMainContainer ) : public CCoeControl
+    {
+    public:
+    
+        CCSCSettingsUiMainContainer(
+            CCSCSettingsUiModel& aModel );
+        
+        
+        void ConstructL(
+            const TRect& aRect );
+    
+    
+        virtual ~CCSCSettingsUiMainContainer();
+    
+        
+        /**
+         * Updates container and redraws listbox items.
+         *
+         * @since S60 v3.2
+         */
+        void UpdateContainerL();
+
+        
+        /**
+         * Shows a query which changes handover notification tone setting
+         *
+         * @since S60 v5.0
+         */
+        void HandoverNotificationToneQueryL();
+        
+        
+        /**
+         * Shows a query which changes presence request preference
+         *
+         * @since S60 v3.2
+         */
+        void PresenceReqPrefQueryL();
+        
+        /**
+          * For saving IM tone path to service tab storage.
+          *
+          * @param aTonePath tone path to be saved.
+          * @since S60 v5.0
+          */
+         void SaveImTonePathL( const TDesC& aTonePath );
+
+        
+        /**
+         * Returns handle to the listbox.
+         *
+         * @since S60 v3.2
+         * @return handle to the listbox
+         */        
+        CAknSettingStyleListBox* ListBox();
+        
+        
+       /**
+         * Returns selected list box item
+         *
+         * @since S60 v3.2
+         * @return selected list box item
+         */
+        TMainListBoxItem CurrentItem() const;
+
+
+        // from base class CCoeControl
+
+        /**
+         * From CCoeControl.
+         */ 
+        CCoeControl* ComponentControl( TInt aIndex ) const;
+  
+  
+        /**
+         * From CCoeControl.
+         */
+        TKeyResponse OfferKeyEventL( 
+            const TKeyEvent& aKeyEvent, 
+            TEventCode aType );
+        
+        
+        /**
+         * From CCoeControl.
+         */ 
+        void HandleResourceChange( TInt aType );
+
+
+    private:
+        
+        /**
+         * Creates listbox item for setting items.
+         *
+         * @since S60 v3.2
+         */
+        void ConstructListBoxL();
+        
+        
+        /**
+         * Return caption for setting item.
+         *
+         * @since S60 v3.2
+         * @param aItem for setting list item to be constructed
+         * @return setting item caption
+         */
+        HBufC* GetCaptionL( TMainListBoxItem::TSettingItems aItem );
+        
+        
+        /**
+         * Get username.
+         *
+         * @since S60 v5.0
+         * @param aUsername username is set to this. 
+         */
+        void GetUsernameL( RBuf& aUsername );
+        
+        
+        /**
+         * Get preferred service setting.
+         *
+         * @since S60 v5.0
+         * @param aValue presence pref setting value is stored to this.
+         */
+        void GetPreferredServiceSettingL( RBuf& aValue );
+        
+        
+        /**
+         * Get preferred service setting when VCC is supported.
+         *
+         * @since S60 v5.0
+         * @param aValue presence pref setting value is stored to this.
+         */
+        void GetVccPreferredServiceSettingL( RBuf& aValue );
+        
+        
+        /**
+         * Get handover notification tone setting.
+         *
+         * @since S60 v5.0
+         * @param aValue handover notification tone setting value is stored 
+         * to this.
+         */
+        void GetHandoverNotificationTonePrefL( RBuf& aValue );
+        
+        
+        /**
+         * Get precence preferred setting.
+         *
+         * @since S60 v5.0
+         * @param aValue presence pref setting value is stored to this.
+         */
+        void GetPresencePrefSettingL( RBuf& aValue );
+        
+                
+        /**
+         * Get IM message tone setting.
+         *
+         * @since S60 v5.0
+         * @param aValue im tone setting value is stored to this.
+         */
+        void GetImToneSettingL( RBuf& aValue );
+        
+        
+        /**
+         * Get SNAP settings.
+         *
+         * @since S60 v5.0
+         * @param aValue snap setting value is stored to this.
+         */
+        void GetSnapSettingL( RBuf& aValue );
+        
+        
+        /**
+         * Draws setting items at the first time 
+         * after the initialization is completed.
+         *
+         * @since S60 v3.2
+         */
+        void InitializeSettingItemsL();
+        
+        
+         /**
+         * Constructs setting list items.
+         *
+         * @since S60 v3.2
+         * @param aItem for setting list item to be constructed
+         */
+        void MakeSettingItemL( TMainListBoxItem::TSettingItems aItem );
+        
+        
+        // from base class CCoeControl
+    
+        /**
+        * From CCoeControl.
+        */
+        TInt CountComponentControls() const;
+        
+        
+        /**
+        * From CCoeControl
+        */
+        void GetHelpContext( TCoeHelpContext& aContext ) const;
+
+
+        /**
+        * From CCoeControl.
+        */
+        void SizeChanged();
+
+
+        /**
+        * From CoeControl.
+        */        
+        void FocusChanged( TDrawNow aDrawNow );        
+
+    private:  // data
+        
+        /**
+         * Reference to model class for settings handling.
+         */
+        CCSCSettingsUiModel& iModel;
+                            
+        /**
+         * Listbox for main view setting page items.
+         * Own.
+         */
+        CAknSettingStyleListBox* iListBox;    
+                
+        /**
+         * Listbox item array
+         */
+        RArray<TMainListBoxItem> iListBoxItemArray;
+        
+        /**
+         * Setting item caption
+         */
+        HBufC* iCaption;
+        
+#ifdef _DEBUG
+    friend class UT_cscsettingsui;
+#endif        
+        
+    };
+
+#endif // C_CSCSETTINGSUIMAINCONTAINER_H
+