calendarui/views/inc/calenmissedalarmscontainer.h
changeset 0 f979ecb2b13e
child 13 1984aceb8774
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/views/inc/calenmissedalarmscontainer.h	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,270 @@
+/*
+* Copyright (c) 2008 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:   Missed alarm container class declaration
+*
+*/
+
+
+
+#ifndef CALENMISSEDALARMSCONTAINER_H
+#define CALENMISSEDALARMSCONTAINER_H
+
+#include<coecntrl.h>
+#include<missedalarm.h>
+#include<missedalarmstore.h>
+#include <caleninstanceid.h>            // TCalenInstanceId
+
+#include "calencontainer.h"
+#include "calenmissedalarmsview.h"
+
+// FORWARD DECLARATIONS
+class CAknDoubleGraphicStyleListBox;
+class CAknIconArray;
+class CCalenAppUi;
+class CCalEntry;
+
+/**
+ * Class declaration for Missed alarms container
+ */
+NONSHARABLE_CLASS(CCalenMissedAlarmsContainer) : public CCalenContainer
+    {
+    public:
+        
+   	    /**
+         * Two-phased constructor.
+         * @param aRect of this container.
+         * @param aView CCalenMissedAlarmsView* that owns this class.
+         * @return CCalenMissedAlarmsContainer*
+         */
+        CCalenMissedAlarmsContainer( CCalenNativeView* aView,
+                              MCalenServices& aServices,
+                              TInt& aHighlightedRowNumber);
+
+        /**
+         * Destructor.
+         */
+        virtual ~CCalenMissedAlarmsContainer();
+
+        /**
+         * Return list box pointer.
+         * @return List box pointer.
+         */
+        CAknDoubleGraphicStyleListBox* ListBox() const;
+
+    private: // Functions from base classes
+        /**
+         * From CCoeControl, child control was resized.
+         */
+        void SizeChanged();
+
+        /**
+         * From CCoeControl, return child control count.
+         * @return Control count
+         */
+        TInt CountComponentControls() const;
+
+        /**
+         * From CCoeControl, return child control pointer.
+         * @param aIndex Child control index
+         * @return Child control pointer.
+         */
+        CCoeControl* ComponentControl(TInt aIndex) const;
+
+        /**
+         * From CCoeControl, process key event.
+         * @param aKeyEvent The key event.
+         * @param aType EEventKey | EEventKeyUp | EEventKeyDown.
+         * @return EKeyWasNotConsumed : Key event was not consumed.
+         */
+        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,
+                                    TEventCode aType);
+
+        /**
+         * From CCoeControl, process pointer event.
+         */
+        void HandlePointerEventL(const TPointerEvent& aPointerEvent);
+
+        /**
+         * From CCoeControl
+         */  
+        void Draw(const TRect& /*aRect*/) const;
+
+        /**
+         * Pass skin information if needed
+         */
+        TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
+
+        /**
+         * From CCoeControl, Get help context.
+         * @param aContext Help context
+         */
+        void GetHelpContext(TCoeHelpContext& aContext) const;
+
+        /**
+         * From MActiveStep, refresh EventView data.
+         */
+        TInt DoStepL();
+    
+        /**
+         * From CCoeControl Handles a resource relative event
+         */
+        void HandleResourceChange(TInt aType);                              
+        
+    private:    // From CCalenContainer
+
+        /**
+         * From CCalenContainer Third phase constructor.
+         * This function was called CCalenView::ConstructL().
+         */
+        void ConstructImplL();
+        
+        /**
+         * From CCalenContainer.
+         * This methods is called after calendar settings have changed.
+         */
+        void UpdateSize();
+     	
+        /**
+         * Create icon index
+         */
+        void CreateIconIndicesL( RArray<MCalenServices::TCalenIcons>& aIndexArray );
+        
+        /**
+         * This method is called after pointer event in Navi
+         * decoration object.
+         * @param aDirection right or left
+         */
+        void HandleNaviDecoratorEventL(TInt aEventID);
+        
+        /**
+         * Handle long tap events
+         */
+        void HandleLongTapEventL( const TPoint& aPenEventLocation, 
+                                  const TPoint& aPenEventScreenLocation );
+    private:
+        
+        /**
+         * Gets an icon index corresponding to a note
+         * @param aEntry Agenda entry
+         * @return ENullIcon | EBirthdayIcon |
+         *         EMeetingIcon | EDaynoteIcon | EToDoIcon
+         */
+        TInt IconIndexForEntryL(CCalEntry& aEntry, TInt aSeenMissedAlarm);
+        
+        /**
+         * Creates the list box data
+         * @aIndex index of the listbox 
+         */
+        void CreateListBoxDataL(TInt aIndex);
+                 
+         /**
+          * Get Missed Alarm Entry
+          * @param aIndex: index for fetching the missed alarm entry
+          * @return CCalEntry* pointer to the calendar entry
+          */
+         CCalEntry* GetMissedAlarmEntryL(TInt aIndex) const ;  
+          
+         /**
+          * Get the Instance Time
+          * @param aIndex : index for fetching the instance time
+          * @return TTime returns the instance time
+          */ 
+         TTime GetInstanceTime(TInt aIndex) const ;
+         
+         /**
+          * Get the Viewed Event Information
+          *
+          * @param aIndex : index for fetching the viewed event info
+          * @return TInt returns the viewed event info
+          */ 
+         TInt GetViewedEventInfo(TInt aIndex);
+          
+         /**
+          * Set current item index and draw list.
+          */
+         void SetCurrentItemIndexAndDraw();
+          
+         /**
+          * Sets the correct highlight, based on the context.
+          */
+         void SetHighlightingL();
+          
+         /**
+          * Set current item index.
+          * @param aIndex Item index
+          */
+         void SetCurrentItemIndex(TInt aIndex);
+         
+         /**
+          * Set empty list text
+          */ 
+         void SetEmptyListTextL();
+          
+    public:
+        
+        /**
+         * Updates missed alarms array
+         */
+        void UpdateMissedAlarmsArrayL();
+        
+        /**
+         * Populate Missed alarms View with missed alarm entries
+         */
+        void PopulateWithMissedAlarmsL();
+	    
+        /**
+         * Completes the population of the Missed alarms view 
+         */
+	    void CompletePopulationL();
+	    
+		/**
+		 * Returns the current lisbox item's index
+		 * @return returns the current listbox's index
+		 */
+		TInt CurrentItemIndex();
+   	
+    	/**
+    	 * Returns the Missed alarms Count
+    	 * @return returns the missed alarms count
+    	 */
+    	TInt MissedAlarmsCount();
+    	    	 
+        /**
+         * Sets the context from the current focused missed alarm entry
+         * @aIndex index of the missed alarm entry
+         */
+        void SetContextFromMissedAlarmEntryL(TInt aIndex);
+       
+        /**
+         * Returns the index of the missed alarm entry 
+         * @aId Intance id of the context
+         * @return TInt return focused index of the missed alarms entry
+         */
+        TInt FindMissedAlarmEntryIndexL(const TCalenInstanceId& aId);
+
+    private:    // Data Members
+        
+    	CAknDoubleGraphicStyleListBox* iListBox;
+    	CCalenMissedAlarmsView* iMissedAlarmsView;
+    	CMissedAlarmStore* iMissedAlarmStore;
+     	RArray<TCalenInstanceId> iMissedAlarmsArray;
+    	CDesCArray* iListBoxItemArray;
+    	TUint32 iMissedAlarmsCount;
+    	TInt& iHighlightedRowNumber;
+    	TBool iFirstTap;
+    };
+
+#endif // CALENMISSEDALARMSCONTAINER_H
+
+// End of File