wvuing/wvuiave/AppSrc/ccainvitationcontainer.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuiave/AppSrc/ccainvitationcontainer.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,391 @@
+/*
+* Copyright (c) 2006 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:  Container class for Invitations view
+*
+*/
+
+
+
+#ifndef CCAINVITATIONCONTAINER_H
+#define CCAINVITATIONCONTAINER_H
+
+//  INCLUDES
+
+#include "MCALayoutChangeObserver.h"
+
+#include <eiklbo.h>
+#include <coecntrl.h>
+#include <aknlists.h>
+#include <bldvariant.hrh>
+#include <aknlongtapdetector.h>
+
+#include "frmtlay.h"
+
+// FORWARD DECLARATIONS
+class MCAViewSwitcher;
+class CCABlockingUI;
+class CCAAppUi;
+class CCAView;
+class MCAInvitationPC;
+class CCAInvitationView;
+class CCATextViewControl;
+class CRichText;
+class CParaFormatLayer;
+class CCharFormatLayer;
+class CAknsBasicBackgroundControlContext;
+class MCARecipientObserver;
+class CAknLongTapDetector;
+
+// CLASS DECLARATION
+
+/**
+*  Container class for private chat list view
+*
+*  @lib chat.app
+*  @since 1.2
+*/
+class CCAInvitationContainer : public CCoeControl,
+            public MCALayoutChangeObserver,
+            public MAknLongTapDetectorCallBack
+    {
+    public:  // Constructors and destructor
+
+
+        /**
+        * Static constructor
+        * Symbian OS default constructor.
+        * @param aRect Frame rectangle for container.
+        * @param aInvitationIndex index of the invitation to be opened
+        * @param aViewSwitcher Handle to view-switcher
+        * @param aEngine Handle to engine
+        */
+        static CCAInvitationContainer* NewL(
+            const TRect& aRect,
+            TInt aInvitationIndex,
+            TPtr aRejectReason,
+            MCAViewSwitcher& aViewSwitcher,
+            CCAView& aView,
+            TInt& aTabId,
+            TBool aContextFlag,
+            MCARecipientObserver& aMenuObserver );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CCAInvitationContainer();
+
+        /**
+         * From CCoeControl, Handles key-events
+         * @param aEvent Event that occured
+         * @param aType Type of key-event (EEventKey, EEventKeyUp or EEventKeyDown)
+         * @return Containers response to event (EKeyWasNotConsumed/ EKeyWasConsumed)
+         */
+        TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent, TEventCode aType );
+
+    protected:
+
+        /**
+        * Symbian OS default constructor.
+        */
+        void ConstructL( const TRect& aRect );
+
+        /*
+        * @param aRect Frame rectangle for container.
+        * @param aViewSwitcher Handle to view-switcher
+        * @param aEngine Handle to engine
+        */
+        CCAInvitationContainer( MCAViewSwitcher& aViewSwitcher,
+                                TInt aInvitationIndex,
+                                TPtr aRejectReason,
+                                CCAView& aView,
+                                TInt& aTabId,
+                                TBool aContextflag,
+                                MCARecipientObserver& aMenuObserver );
+
+    public: // New functions
+
+        /**
+         * @returns ETrue if the contact is blocked
+         * Else return EFalse.
+         */
+        TBool IsBlocked( const TDesC& aUserId );
+
+        /**
+         * Displays Blocked List
+         */
+        void DisplayBlockedListL() const;
+
+        /**
+         * Displays unblock list query
+         */
+        void DisplayUnblockListQueryL() const;
+
+        /**
+         * Displays block textquery
+         */
+        void DisplayBlockTextQueryL() const;
+
+        /**
+         * Adds focused conversation dead end to friendslist
+         */
+        void AddToFriendsL();
+
+        /**
+         * Switches to the singlelistview
+         */
+        void SwitchToSingleListViewL( );
+
+        /**
+         * Joins to selected conversation
+         * @param aGroupId Group id
+         */
+        void JoinToGroupL( TInt aInviteIndex );
+
+        /**
+         * Deletes currently active invitation
+         */
+        void DeleteInvitationL( TInt aInviteindex ) ;
+
+        /**
+         * RejectInvitationL is called when the active
+         * invitation has been rejected by teh user
+         */
+        void RejectInvitationL( TInt aInviteindex, TPtr aRejectReason );
+
+        /**
+         * This method tells if selected item is invitation or not
+         * @return ETrue if selected item is invitation,
+         * EFalse if it's conversation
+         */
+        TBool IsInvitation() const;
+
+        /**
+         * This method switches between the specified
+         * invitation
+         * @param iCurrenntActiveTab, specifies to
+         * which tab  to switch.
+         */
+        void InvitationSwitchTabL( TInt iCurrenntActiveTab );
+
+        /**
+         * Prepare the text in teh rich text format,
+         * @param aInvitationindex, index of the invitation
+         * whose data needs to prepared int eh richtext format.
+         */
+        void PrepareTextL( TInt aInvitationindex );
+
+        /**
+         * Displays the formated Data
+         * @param aInvitationindex, index of the invitation
+         * whose data has to be displayed.
+         */
+        void DisplayTextL( TInt aInvitationindex );
+
+        /**
+         * Search the LAF specified font for invite dialog
+         * @since 3.0
+         * @return LAF specified font
+         */
+        const CFont* GetLayoutFont();
+
+        /**
+         * Inserts line to rich text object
+         * @since 3.0
+         * @param aTextResourceId Resource for text in line
+         * @param aBold Should text be bolded
+         */
+        void InsertLineL( TInt aTextResourceId, TBool aBold = EFalse );
+
+        /**
+         * Inserts line to rich text object
+         * @since 3.0
+         * @param aText Text for line
+         * @param aBold Should text be bolded
+         */
+        void InsertLineL( const TDesC& aText, TBool aBold = EFalse );
+
+        /**
+         * Construct a CAknLongTapDetector object
+         */
+        CAknLongTapDetector& LongTapDetectorL();
+
+    public: // From MAknLongTapDetectorCallBack
+
+        /**
+         * From MAknLongTapDetectorCallBack.
+         * Handle long tap event.
+         * @see MAknLongTapDetectorCallBack
+        */
+        void HandleLongTapEventL( const TPoint& aPenEventLocation,
+                                  const TPoint& aPenEventScreenLocation );
+
+    private: // From MCALayoutChangeObserver
+
+        /**
+         * Called when layout/skins change
+         * @since 2.1
+         */
+        void LayoutChangedL( TInt aType );
+
+    private: //From base classes
+
+        /**
+         * From CoeControl, Handles "size changed"-events..
+         * @since 2.1
+         */
+        void SizeChanged();
+
+        /**
+         * From CoeControl, Returns the number of control contained by this class.
+         * @return Number of controls contained
+         * @since 2.1
+         */
+        TInt CountComponentControls() const;
+
+        /**
+         * From CCoeControl, Returns handle to control pointed by aIndex
+         * @param aIndex Wanted control's index [0..n]
+         * @return Handle to wanted control
+         * @since 2.1
+         */
+        CCoeControl* ComponentControl( TInt aIndex ) const;
+
+        /**
+         * Gets help context
+         * @since 2.1
+         */
+        void GetHelpContext( TCoeHelpContext& aContext ) const;
+
+        /**
+         * From CCoeControl.
+         * Handle pointer event.
+         * @see CCoeControl
+         */
+        void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+
+        /**
+         * From CCoeControl.
+         * Handle focus event change.
+         * @see CCoeControl
+         */
+        //void FocusChanged( TDrawNow aDrawNow );
+
+    private:  // New functions
+
+        /**
+         * Sets the layout of container
+         * @since 2.1
+         */
+        void SetLayout();
+
+        /*
+        * Error handler function. Propagates error note, if necessary.
+        * @param aError Error value.
+        * @since 2.1
+        */
+        void HandleError( TInt aError ) const;
+
+        /**
+         * Updates CBA set, shows label in MSK if there are
+         * items in list.
+         * @since S60 v3.2
+         */
+        void UpdateCbaL();
+
+    public: // new functions
+
+        /**
+         *  Checks if invitation is open and processing.
+         *  @return ETrue, if invitation is opened and processing.
+         *	@since 2.1
+         */
+        TBool IsInvitationOpen();
+
+    private:    // Data
+
+        // Owns. Array of controls contained
+        CArrayPtrSeg<CCoeControl>* iControlArray;
+
+        //Doesn't own
+        MCAViewSwitcher& iViewSwitcher;
+
+        //Owns
+        CCABlockingUI* iBlockingUI;
+
+        //doesn't own
+        CCAAppUi* iAppUi;
+
+        // Flag for telling if invitation is opened.
+        TBool iInvitationOpen;
+
+        // EFalse, if numeric input for WVID fields is wanted
+        TBool iTextualInputMode;
+
+        // Doesn't own
+        CCAView& iView;
+
+        // doesn't own
+        CEikButtonGroupContainer* iCba;
+
+        //Does not Own
+        MCAInvitationPC* iInvitationPC;
+
+
+        TInt iInvitationIndex;
+
+        //pointer to teh reject reason
+        TPtr iRejectReason;
+
+        // Owns. Text view control
+        CCATextViewControl* iTextView;
+
+        // Owns. Rich text for invitation view
+        CRichText* iRichText;
+
+        // Owns. Paragraph formatter
+        CParaFormatLayer* iParaFormatLayer;
+
+        // Owns. Character formatter
+        CCharFormatLayer* iCharFormatLayer;
+
+        // Owns. Date and time buffer
+        HBufC* iDateTime;
+
+        HBufC* iIdentification;
+
+        // Skin background control context
+        CAknsBasicBackgroundControlContext* iBgContext;
+
+        //Reference variable required to delete the tab.
+        TInt& iTabId;
+
+        //Tells whether to show the contxtmenu or not
+        TBool iContextFlag;
+
+        TCursorSelection iLastSelection;
+
+
+        //Doesn't own. Handle to recipient observer
+        MCARecipientObserver& iMenuObserver;
+
+        // Owns. Long tap the main pane
+        CAknLongTapDetector* iLongTapDetector;
+        TBool iLongTapUsed;
+
+
+    };
+
+#endif      // CCAINVITATIONCONTAINER_H
+
+// End of File