--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingrequest/mrgui/inc/cesmrtrackingview.h Wed Sep 01 12:28:57 2010 +0100
@@ -0,0 +1,207 @@
+/*
+* 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: ESMR Tracking view container for the title label and list component
+*
+*/
+
+#ifndef CESMRTRACKINGVIEW_H_
+#define CESMRTRACKINGVIEW_H_
+
+#include <coecntrl.h>
+#include <aknlists.h>
+#include <eiklbo.h>
+
+#include "mesmrtitlepaneobserver.h"
+#include "mesmrfontsizeobserver.h"
+#include "tnavipaneclearer.h"
+
+#include "resmrstatic.h"
+#include "cesmrcontactmenuhandler.h"
+#include "nmrbitmapmanager.h"
+
+class CESMRTitlePane;
+class MESMRCalEntry;
+class MESMRFieldStorage;
+class MAgnEntryUiCallback;
+class CAknsBasicBackgroundControlContext;
+class CESMRTrackingViewDialog;
+
+/**
+ * Container for the meeting request title and list control.
+ * This class is deleted by framework
+ */
+NONSHARABLE_CLASS( CESMRTrackingView ):
+ public CCoeControl,
+ public MCoeControlBackground,
+ public MESMRFontSizeObserver,
+ public MEikListBoxObserver
+ {
+public:
+ /**
+ * Two-phased constructor.
+ *
+ * @param aEntry - interface to entry information.
+ * @param aRect - rect for this view
+ * @param aReqAttendee - the count of required attendees
+ * @param aOptAttendee - the count of optional attendees
+ * @return Pointer to created and initialized esmr view object.
+ */
+ static CESMRTrackingView* NewL(
+ MESMRCalEntry& aEntry,
+ const TRect& aRect,
+ const TInt &aReqAttendee,
+ const TInt &aOptAttendee);
+
+ /**
+ * Destructor.
+ */
+ ~CESMRTrackingView();
+
+public:
+
+ /**
+ * Externalize the list component items. Data in list items
+ * is stored to iEntry member variable.
+ *
+ * @param TBool ETrue if force validation should be used
+ */
+ void ExternalizeL( TBool aForceValidation = EFalse );
+
+ /**
+ * Internalize the list component items. Data from iEntry is updated
+ * to all fields.
+ */
+ void InternalizeL();
+
+ /**
+ * Process commands. Dialog forwards the commands that must
+ * be handled by CESMRTrackingView.
+ *
+ * @param aCommand
+ */
+ void ProcessEditorCommandL( TInt aCommand );
+
+ /**
+ * Title can be changed by calling this method
+ *
+ * @param aTitle New title for the view
+ * @param aDefault
+ */
+ void SetTitleL( const TDesC& aTitle );
+
+ /**
+ * Launches editor help
+ */
+ void LaunchEditorHelpL();
+
+ /**
+ * Launches viewer help
+ */
+ void LaunchViewerHelpL();
+
+ void SetParentDialog(CCoeControl* aParentDialog);
+
+private: // implementation
+ void ConstructL( const TRect& aRect );
+ CESMRTrackingView( MESMRCalEntry& aEntry,
+ const TInt &aReqAttendee,
+ const TInt &aOptAttendee);
+
+private:
+ // Define the type of icons for status type
+ enum TStatusIconType
+ {
+ /** For accept */
+ EAcceptIcon,
+ /** For reject */
+ ERejectIcon,
+ /** For tentative */
+ ETentativeIcon,
+ /** For none status */
+ ENoneIcon,
+ /** For account total type number */
+ ETotalIconNumber
+ };
+ void LaunchHelpL( const TDesC& aContext );
+ void CreateTrackingListL();
+ void InitTrackingListL();
+ void InitStatusIconArrayL();
+ CGulIcon* InitStatusIconL(NMRBitmapManager::TMRBitmapId aStatus);
+
+public: // From CCoeControl
+ void SetContainerWindowL(const CCoeControl& aContainer);
+ TInt CountComponentControls() const;
+ CCoeControl* ComponentControl( TInt aInd ) const;
+ void SizeChanged();
+ TSize MinimumSize();
+ TKeyResponse OfferKeyEventL(const TKeyEvent &aKeyEvent, TEventCode aType);
+ void HandleResourceChange( TInt aType );
+ TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
+
+private: // From CCoeControl
+ void Draw( const TRect& aRect ) const;
+
+protected: // FromMESMRFontSizeObserver
+ void FontSizeSettingsChanged();
+
+public: // From MCoeControlBackground
+ void Draw(CWindowGc& aGc,
+ const CCoeControl& aControl,
+ const TRect& aRect) const;
+ void GetTextDrawer(
+ CCoeTextDrawerBase*& aText,
+ const CCoeControl* aControl) const;
+
+public: // From MEikListBoxObserver
+ virtual void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
+
+private:
+ /// Own: Priority icon
+ CESMRTitlePane* iTitle;
+ /// Own: attendee list
+ /// Own: The list for attendee names and tracking status
+ CAknSingleGraphicStyleListBox* iList;
+ /// Ref: List item storage
+// MESMRFieldStorage* iStorage;
+ /// Ref: Current MR entry
+ MESMRCalEntry& iEntry;
+ /// Own: To enable skin as background for the iTitle
+ CAknsBasicBackgroundControlContext* iBgContext;
+ /// Own: This clears the navipane for us.
+ TNavipaneClearer iClearer;
+ /// Required attendee count
+ TInt iReqAttendeeCount;
+ /// Optional attendee count
+ TInt iOptAttendeeCount;
+ /// Own: list text array
+ MDesCArray* iItemArray;
+ /**
+ * Static TLS stored variables.
+ */
+ RESMRStatic iESMRStatic;
+ /**
+ * Ref: Reference to menu handler
+ */
+ CESMRContactMenuHandler* iMenuHandler;
+ /// Ref: Tracking View Dialog
+ CESMRTrackingViewDialog* iParentDialog;
+ /// Own: attendees' contact info
+ TDesC* iAddress;
+ /// Own: Focused list item index
+ TInt iFocusedItemIndex;
+ /// Own: Index of "Optional" item
+ TInt iIndexOfOptLabel;
+ };
+
+#endif /* CESMRTRACKINGVIEW_H_ */