--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook/View/inc/CPbkGroupPopup.h Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,145 @@
+/*
+* 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:
+* UI control for Phonebook's "Add to group".
+*
+*/
+
+
+#ifndef __CPbkGroupPopup_H__
+#define __CPbkGroupPopup_H__
+
+// INCLUDES
+#include <e32base.h> // CBase
+#include <cntdef.h> // TContactItemId
+#include <cntviewbase.h> // MContactViewObserver
+#include <eikcmobs.h> // MEikCommandObserver
+
+// FORWARD DECLARATIONS
+class CEikColumnListBox;
+class CPbkInputAbsorber;
+
+// CLASS DECLARATION
+
+/**
+ * @internal Only Phonebook internal use supported!
+ *
+ * Popup dialog which displays groups.
+ */
+NONSHARABLE_CLASS(CPbkGroupPopup) :
+ public CBase,
+ private MContactViewObserver,
+ private MEikCommandObserver
+ {
+ public: // interface
+ /**
+ * Parameters object for NewL.
+ */
+ struct TParams
+ {
+ /// Ref, input: a contact view containing the groups to display
+ CContactViewBase* iGroupView;
+ /// Own, input: Initial (before iGroupView is ready) popup softkeys
+ /// resource id
+ TInt iInitialSoftkeyResId;
+ /// Own, input: Popup softkeys resource id
+ TInt iSoftkeyResId;
+ /// Ref, input: Popup prompt text
+ const TDesC* iPrompt;
+ /// Ref, input: empty text for the listbox
+ const TDesC* iEmptyText;
+ /// Own, input: listbox flags
+ TInt iListBoxFlags;
+ /// Own, output: Selected group's id
+ TContactItemId iSelectedGroupId;
+
+ /**
+ * Constructor. Initializes mandatory fields with parameters and
+ * other fields to default values.
+ * @param aGroupView the view
+ * @param aInitialSoftkeyResId initial popup softkeys resource id
+ * @param aSoftKeyResId popup softkeys resource id
+ */
+ TParams
+ (CContactViewBase& aGroupView,
+ TInt aInitialSoftkeyResId,
+ TInt aSoftKeyResId);
+ };
+
+ /**
+ * Creates a new instance of this class.
+ *
+ * @param aParams @see TParams.
+ */
+ static CPbkGroupPopup* NewL(TParams& aParams);
+
+ /**
+ * Destructor. Also makes ExecuteLD return like the dialog was
+ * cancelled.
+ */
+ ~CPbkGroupPopup();
+
+ /**
+ * Executes and deletes (also if a leave occurs) this dialog.
+ *
+ * @postcond (result==0 && iParams.iSelectedGroupId==KNullContactId) ||
+ * (result!=0 && iParams.iSelectedGroupId!=KNullContactId)
+ */
+ TInt ExecuteLD();
+
+ /**
+ * Resets *aSelfPtr to NULL when this object is destroyed.
+ *
+ * @precond !aSelfPtr || *aSelfPtr==this
+ */
+ void ResetWhenDestroyed(CPbkGroupPopup** aSelfPtr);
+
+ private: // from MContactViewObserver
+ void HandleContactViewEvent
+ (const CContactViewBase& aView,
+ const TContactViewEvent& aEvent);
+
+ private: // from MEikCommandObserver
+ void ProcessCommandL(TInt aCommandId);
+
+ private: // Implementation
+ CPbkGroupPopup(TParams& aParams);
+ void ConstructL();
+ void WaitForViewEventL();
+ void RunPopupL();
+ void Close();
+ void DoHandleContactViewEventL(const TContactViewEvent& aEvent);
+
+ private: // data
+ /// Ref: parameters
+ TParams& iParams;
+ /// Own: return value from ExecuteLD
+ TInt iResult;
+ /// Own: event absorbing control
+ CPbkInputAbsorber* iInputAbsorber;
+ /// Own: listbox
+ CEikColumnListBox* iListBox;
+ /// Type of iPopupList
+ class CPopupList;
+ /// Own: popuplist that contains iListBox
+ CPopupList* iPopupList;
+ /// Ref: destructor sets referred TBool to ETrue
+ TBool* iDestroyedPtr;
+ /// Ref: referred pointer is set to NULL in destructor
+ CPbkGroupPopup** iSelfPtr;
+ };
+
+#endif // __CPbkGroupPopup_H__
+
+// End of File