meetingui/attendeeview/UiSrc/CAttendeeLBModel.h
changeset 0 f979ecb2b13e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingui/attendeeview/UiSrc/CAttendeeLBModel.h	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,133 @@
+/*
+* Copyright (c) 2004 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:   Implements listbox model 
+*
+*/
+
+
+
+#ifndef __CATTENDEE_LB_MODEL_H__
+#define __CATTENDEE_LB_MODEL_H__
+
+//  INCLUDES
+#include <e32base.h>
+#include <bamdesca.h>  // MDesCArray
+
+// FORWARD DECLARATION
+class CEikonEnv;
+class MAttendeeEng;
+class CAttendeeItem;
+
+// CLASS DECLARATION
+/**
+*  Implements listbox model
+*/
+class CAttendeeLBModel : public CBase, public MDesCArray
+    {
+    private: //title structure
+        struct CAttendeeTitles
+            {
+            /**
+            * Destructor            
+            */
+            inline ~CAttendeeTitles()
+                {
+                delete iOrganizer;
+                delete iRequire;
+                delete iOptional;
+                }
+            
+            /// Own: Organizer format text string
+            HBufC* iOrganizer;
+
+            /// Own: Require format text string
+            HBufC* iRequire;
+
+            /// Own: Optional format text string
+            HBufC* iOptional;
+            };
+
+    public:
+        /**
+        * Two-phased constructor.
+        * @param aEngine, reference to MAttendeeEng
+        * @return CAttendeeLBModel object.
+        */
+        static CAttendeeLBModel* NewLC( MAttendeeEng& aEngine );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CAttendeeLBModel();
+
+    private:
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        /**
+        * C++ default constructor.
+        * @param aEngine, Reference to MAttendeeEng
+        * @return CAttendeeLBModel object
+        */
+        CAttendeeLBModel( MAttendeeEng& aEngine );
+
+    private: // From MDesCArray
+        TInt MdcaCount() const;
+        TPtrC16 MdcaPoint(TInt aIndex) const;
+
+    private: //new functions
+        /**
+        * Check if listbox contain only organizers
+        * @return ETrue if Entry includes only organizers
+        * other EFalse
+        */
+        TBool CheckIfOnlyOrganizers() const;
+        
+        /**
+        * Append icon id to buffer
+        * @param aPtr
+        * @param aItem
+        */
+        void AppendIconL( TPtr& aPtr, CAttendeeItem& aItem ) const;
+
+        /**
+        * Append attendance to buffer
+        * @param aPtr
+        * @param aItem
+        */
+        void AppendAttendanceL( TPtr& aPtr, CAttendeeItem& aItem ) const;
+
+        /**
+        * Append address or contact title to buffer
+        * @param aPtr
+        * @param aItem
+        */
+        void AppendAddressOrTitle( TPtr& aPtr, CAttendeeItem& aItem ) const;
+
+    private:    // data
+        ///Own: Conversion buffer
+        HBufC* iBuffer; 
+        
+        ///Own:
+        CAttendeeTitles* iTitles;
+
+        ///Ref:
+        MAttendeeEng& iEngine;
+    };
+
+#endif // __CATTENDEE_LB_MODEL_H__
+
+// End of File