emailuis/widget/emailwidgetsettings/inc/emailwidgetsettingslistview.h
branchRCL_3
changeset 25 3533d4323edc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/widget/emailwidgetsettings/inc/emailwidgetsettingslistview.h	Wed Sep 01 12:28:57 2010 +0100
@@ -0,0 +1,118 @@
+/*
+* Copyright (c) 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:  Declares list view class for application.
+ *
+*/
+
+#ifndef __EMAILWIDGETSETTINGSLISTVIEW_H_
+#define __EMAILWIDGETSETTINGSLISTVIEW_H_
+
+#include <aknlists.h>
+#include <aknPopup.h>
+#include <AknQueryDialog.h>
+#include <aknenv.h>
+#include <aknsettingitemlist.h>
+#include <ecom/ecom.h>
+#include <emailobserverplugin.h>
+#include <memailobserverlistener.h>
+
+#include "emailwidgetsettingsappui.h"
+#include "emailwidgetsettingsmailboxes.h"
+
+extern const TUid KEmailWidgetSettingsListViewId;
+
+class CEmailWidgetSettingsListView;
+class CEmailWidgetSettingsListViewContainer :
+    public CCoeControl, 
+    public EmailInterface::MEmailObserverListener
+	{
+public:
+	CEmailWidgetSettingsListViewContainer();
+	void ConstructL(CEmailWidgetSettingsListView* aView, 
+	                const TRect& aRect);
+	~CEmailWidgetSettingsListViewContainer();
+
+public: 	
+	TInt  CurrentIndex() const;
+	void  SizeChanged();
+	TInt  CountComponentControls() const;
+	CCoeControl* ComponentControl(TInt /*aIndex*/) const;
+	TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
+	TSize MinimumSize();
+    void SaveSelectedL();
+    
+    // From MEmailObserverListener
+    virtual void EmailObserverEvent( EmailInterface::MEmailData& aEmailData );
+
+private:
+	void CreateCbaL(MEikCommandObserver* aObserver);
+	void CreateListBoxL(MEikListBoxObserver* aObserver);
+    void SetupListIconsL();
+    void AppendIconL(
+            CArrayPtr<CGulIcon>* aIcons,
+            const TInt aFileBitmapId, 
+            const TInt aFileMaskId);
+    TInt AppendExternalIconL(
+            CArrayPtr<CGulIcon>* aIcons,
+            const TDesC& aMifPath,
+            const TInt aFileBitmapId, 
+            const TInt aFileMaskId);
+
+	TInt GetSettingToAssociateL(const TDesC& aCid, const TBool aNativeBox, CRepository* aCenRep);
+	void LaunchEmailWizardL();
+	
+	void ResetExtAccountWithSameId( const TDesC& aContentId, CRepository* aCenRep );
+    void ResetNatAccountWithSameId( const TDesC& aContentId, CRepository* aCenRep );
+
+private: // from MObjectProvider
+	TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
+
+public:
+	CEikColumnListBox*                     iListBox;
+	
+private:
+	CEikButtonGroupContainer*              iPopoutCba;
+	CDesCArrayFlat*                        iAccountNames;
+	CDesCArrayFlat*                        iDomains;
+	CArrayFixFlat<TFSMailMsgId>*           iAccountIds;
+	CEmailWidgetSettingsMailboxes*         iMailboxes;
+	CEikonEnv*                             iEnv;
+	};
+
+class CEmailWidgetSettingsListView : public CAknView, public MEikListBoxObserver
+	{
+public:
+	void ConstructL();
+	~CEmailWidgetSettingsListView();
+
+public:
+	TUid Id() const;
+	void HandleCommandL(TInt aCommand);
+
+	void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
+
+private: 
+	void DoActivateL(const TVwsViewId& aPrevViewId,TUid aCustomMessageId,const TDesC8& aCustomMessage);
+	void DoDeactivate();
+
+private:
+	void HandleForegroundEventL(TBool aForeground);
+	void HandleStatusPaneSizeChange();
+
+private:
+	TVwsViewId                             iPrevViewId;
+	CEmailWidgetSettingsListViewContainer* iView;
+	};
+
+#endif