phonebookui/Phonebook/inc/CPbkGroupMembersFetchDlg.h
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook/inc/CPbkGroupMembersFetchDlg.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,133 @@
+/*
+* 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: 
+*      Phonebook Group members Fetch API.
+*
+*/
+
+
+#ifndef __CPbkGroupMembersFetchDlg_H__
+#define __CPbkGroupMembersFetchDlg_H__
+
+//  INCLUDES
+#include <e32base.h>    // CBase
+#include <cntviewbase.h> // MContactViewObserver
+
+//  FORWARD DECLARATIONS
+class CPbkContactEngine;
+class CContactIdArray;
+class CPbkFetchDlg;
+class CContactGroupView;
+
+// CLASS DECLARATION
+
+/**
+ * @internal Only Phonebook internal use supported!
+ *
+ * Phonebook Group Members Fetch API.
+ */
+class CPbkGroupMembersFetchDlg : public CBase, private MContactViewObserver
+    {
+    public:  // Types
+        /**
+         * Fetch parameters class.
+         */
+        class TParams
+            {
+            public:  // Input parameters
+                /**
+                 * MANDATORY: Contact group to get label and show query.
+                 */
+                TContactItemId iGroupId;
+
+            public:  // Output parameters
+                /**
+                 * Returns the marked entries.
+                 * Caller must delete iMarkedEntries when no longer needed.
+                 */
+                CContactIdArray* iMarkedEntries;
+
+            public:  // Functions
+                /**
+                 * C++ Constructor.
+                 */
+                IMPORT_C TParams();
+
+                /**
+                 * Returns a cleanup item which will release all resources
+                 * held by this object in case a leave occurs.
+                 */
+                IMPORT_C operator TCleanupItem();
+
+                // Compiler-generated destructor is ok for this class
+
+            private:  // Implementation
+                static void Cleanup(TAny* aPtr);
+
+            private:  // Unimplemented functions
+                /// Unimplemented copy constructor
+                TParams(const TParams&);
+                /// Unimplemented assignment operator
+                TParams& operator=(const TParams&);
+            };
+
+    public:  // Interface
+        /**
+         * Creates a new group members fetch dialog.
+         *
+         * @param aParams @see TParams
+         * @param aPbkEngine reference to phonebook engine
+         */
+        IMPORT_C static CPbkGroupMembersFetchDlg* NewL(TParams& aParams,
+            CPbkContactEngine& aPbkEngine);
+
+        /**
+         * Executes this dialog.
+         * NOTE: this object is deleted when ExecuteLD returns or leaves!
+         *
+         * @return !=0 if not canceled.
+         */
+        IMPORT_C TInt ExecuteLD();
+
+        /**
+         * Destructor. Also makes ExecuteLD() return like the dialog was
+         * cancelled.
+         */
+        ~CPbkGroupMembersFetchDlg();
+
+    private: // from MContactViewObserver
+        void HandleContactViewEvent(const CContactViewBase& aView,
+            const TContactViewEvent& aEvent);
+
+    private:  // Implementation
+        CPbkGroupMembersFetchDlg(TParams& aParams,
+            CPbkContactEngine& aPbkEngine);
+        void ConstructL();
+
+    private:  // Data
+        /// Own: parameters
+        TParams& iParams;
+        /// Ref: Phonebook Engine
+        CPbkContactEngine& iPbkEngine;
+        /// Own: fetch dialog
+        CPbkFetchDlg* iFetchDlg;
+        /// Ref: Referred TBool is set ETrue in destructor
+        TBool* iDestroyedPtr;
+        /// Own: Group non members sub view
+        CContactGroupView* iGroupNonMembersSubView;
+    };
+
+#endif // __CPbkGroupMembersFetchDlg_H__
+
+// End of File