phonebookui/Speeddial/inc/SpdiaContainer.h
changeset 0 e686773b3f54
child 9 0d28c1c5b6dd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Speeddial/inc/SpdiaContainer.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,278 @@
+/*
+* Copyright (c) 2002 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 container control for application.
+*
+*/
+
+
+
+
+
+
+#ifndef SPDIACONTAINER_H
+#define SPDIACONTAINER_H
+
+// INCLUDES
+#include <aknview.h>
+#include <AknUtils.h>
+#include <eiklbo.h>
+#include <MPbkContactDbObserver.h>
+#include "centralrepository.h"
+#include <aknlongtapdetector.h>
+
+// FORWARD DECLARATIONS
+//class CAknGrid;
+class CAknQdialStyleGrid;
+class CSpdiaView;
+class CPbkContactChangeNotifier;
+class CSpeedDialPrivate;
+class TSpdiaIndexData;
+class CSpdiaNoteDialog;
+class CVPbkContactManager;
+class CPNGNumberGrouping;
+class CAknLongTapDetector;
+// CLASS DECLARATION
+
+class MRefreshObserver
+    {
+    public: // Interface
+        virtual void RefreshDialog() = 0;
+    };
+
+/**
+*  Generic Speeddial container class.
+*  Container's task is to dispatch key presses to an application-side
+*  key event handler. If key event is not processed application-side,
+*  it is passed to the contained control.
+*
+*  @since 
+*/
+
+class CSpdiaContainer : public CCoeControl,
+                        public MPbkContactDbObserver,
+                        public MAknLongTapDetectorCallBack,
+                        public MRefreshObserver,
+                        public MEikListBoxObserver
+    {
+    public: // Constructors and destructor
+
+        /**
+        * C++ default constructor.
+        */
+        CSpdiaContainer(CSpeedDialPrivate *aSpeedPrivate);
+        
+        /**
+        * Symbian second phase Constructor.
+        * @param aView      Frame pointer.
+        */
+        void ConstructL(CAknView* aView);
+
+        /**
+        * Virtual C++ destructor.
+        */
+        virtual ~CSpdiaContainer();
+        
+        /**
+        * From CAknContainer takes care of skin changes.
+        * @param aType skin event identifier.
+        */
+        void HandleResourceChange(TInt aType);
+
+    public: // New functions
+        /**
+        * Gets the grid data control of speeddial. 
+        * @return   reference of spdctrl
+        */
+        CSpeedDialPrivate& Control();
+
+        /**
+        * Returns whether the cell position is a VoiceMailBox number or not. 
+        * @param aIndex    index number
+        * @return   ETrue: On VoiceMail Box number
+        */
+        TBool IsVoiceMailBox(TInt aIndex = -1) const;
+        TBool IsVdoMailBox(TInt aIndex = -1) const;
+
+        /**
+        * Gets the current position of the grid.
+        * @return   Grid position
+        */
+        TInt CurGridPosition() const;
+
+        /**
+        * Redraws and renfreshes the grid data.
+        */
+        void UpdatePhoneNumberL(TInt aIndex = -1);
+
+        /**
+        * Get resource id on grid position
+        */
+        TInt MenuResourceID();
+        
+        /**
+        * Selection of the MiddleSoftKey
+        * 
+        */
+		void CSpdiaContainer::MiddleSoftKeyL();
+
+        /**
+        * Shows the ViewNumber note.
+        */
+        void ShowViewNumberL();
+
+        /**
+        * Redraws and renfreshes the ViewNumber note.
+        */
+        void DoUpdateL();
+
+        /**
+        * Gets the pointer of the grid control.
+        * @return   point of gird control.
+        */
+        CAknQdialStyleGrid* Grid();
+        
+        /* Activating the animation in 
+        * the background for grid
+        */
+        void FocusChanged(TDrawNow aDrawNow);
+        
+        /**
+        * Set status pane to the normal status.
+        */
+        void SetStatusPaneL();
+
+    public: // Functions from CCoeControl classes
+        /**
+        * This function is called when Help application is launched.  
+        * @param aContex
+        */
+        void GetHelpContext( TCoeHelpContext& aContext ) const;
+
+        /**
+        * This function is called from Spdiaview once the application comes 
+         to foreground.
+        */
+        void RefreshGrid();
+        /**
+        * Sets true when voice mail box dialog launched 
+        * sets false dialog destroyed.  
+        * @param aBool
+        */
+        void VoiceMailDialogLaunched( TBool aBool );
+
+
+        CAknLongTapDetector& CSpdiaContainer::LongTapDetectorL();
+        /**
+        * refresh the dialog in speeddial view 
+        */
+        void RefreshDialog();
+    public: // Functions from base classes
+
+    private:    // New function
+
+
+        /**
+        * Call create by current number
+        */
+        void CallCreateL();
+
+        /**
+        * Creats image from thumbnail.
+        */
+        CEikImage* CreateBitmapL(const CGulIcon& aSrc);
+
+    private: // Functions from base classes
+        /**
+        * From CoeControl,SizeChanged.
+        */
+        void SizeChanged();
+
+        /**
+        * From CoeControl,CountComponentControls.
+        */
+        TInt CountComponentControls() const;
+
+        /**
+        * From CCoeControl,ComponentControl.
+        */
+        CCoeControl* ComponentControl(TInt aIndex) const;
+
+        /**
+        * From CCoeControl,Draw.
+        */
+        void Draw(const TRect& aRect) const;
+
+        /**
+        * From CCoeControl processing of a key event
+        */
+        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
+
+        /**
+        * From CCoeControl,HandlePointerEventL.
+        */
+        void HandlePointerEventL(const TPointerEvent& aPointerEvent);
+        /**
+        * From MContactDbObserver, Handles an event of type aEventType.
+        */
+        void HandleDatabaseEventL(TContactDbObserverEvent aEvent);
+        
+        /**
+        * Returns scaled CEikImage pointer
+        * @param selected icon.
+        */
+        CEikImage* CreateScaledBitmapL(const CGulIcon& aSrc);
+   
+    public:    
+        /**
+        * From MAknLongTapDetectorCallBack
+        * 
+        */
+        void HandleLongTapEventL( const TPoint& aPenEventLocation, 
+                                  const TPoint& aPenEventScreenLocation );
+        
+        /**
+        * From MEikListBoxObserver, Handles an event of listbox.
+        */
+        void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
+    private:
+        
+        void SetLayoutL();
+        
+    private: //data
+        CAknQdialStyleGrid*   iGrid;             // owned by this
+        CSpdiaView* iView;
+        CSpeedDialPrivate* iSpeedPrivate;                 // owned by this
+        CVPbkContactManager *iContactManager;
+        CSpdiaNoteDialog* iDialog;               // owned by this
+        TBool iNeedUpdate;
+
+        CPNGNumberGrouping* iNumberGrouping;
+        TBool iVoiceDialog;
+        TBool iAlreadyActive;
+        CAknLongTapDetector* iLongTapDetector;
+        CRepository*  ivmbxvariation;
+        TInt iVmbxsupported;
+        
+        TBool iLongTapUsed;
+        
+        // Indicator for the note: no assigned number shown
+        TBool iNoAssignedShown;
+        
+        // Grid index in which the button down
+        TInt iButton1DownIndex;
+    };
+
+#endif        // SPDIACONTAINER_H
+
+// End of File