williamr@2: /* williamr@2: * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * Phonebook Multiple Entry Fetch API. williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef __CPbkMultipleEntryFetchDlg_H__ williamr@2: #define __CPbkMultipleEntryFetchDlg_H__ williamr@2: williamr@2: // INCLUDES williamr@2: #include // CBase williamr@2: williamr@2: // FORWARD DECLARATIONS williamr@2: class CPbkContactEngine; williamr@2: class CContactViewBase; williamr@2: class CContactIdArray; williamr@2: class CPbkFetchDlg; williamr@2: class MObjectProvider; williamr@2: class MPbkFetchDlgSelection; williamr@2: williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * Phonebook Multiple Entry Fetch API. This class is used to construct williamr@2: * a Phonebook UI dialog where the user is able to select multiple williamr@2: * contact entries from a list. The selection is then returned to the williamr@2: * client. williamr@2: */ williamr@2: class CPbkMultipleEntryFetchDlg : public CBase williamr@2: { williamr@2: public: // Types williamr@2: /** williamr@2: * Multiple entry fetch parameter class. williamr@2: */ williamr@2: class TParams williamr@2: { williamr@2: public: // Input parameters williamr@2: /** williamr@2: * Contact view to display. If NULL loads the default williamr@2: * contact view containing all names in the contact williamr@2: * database. williamr@2: */ williamr@2: CContactViewBase* iContactView; williamr@2: williamr@2: public: // Output parameters williamr@2: /** williamr@2: * Returns an array of ids of the selected entries, williamr@2: * undefined if the dialog is canceled. williamr@2: * Caller must delete iMarkedEntries when no longer needed. williamr@2: */ williamr@2: CContactIdArray* iMarkedEntries; williamr@2: williamr@2: public: // Additional input parameters williamr@2: /** williamr@2: * OPTIONAL: Fetch softkey resource ID. williamr@2: * If 0, default softkeys are used. williamr@2: */ williamr@2: TInt iCbaId; williamr@2: williamr@2: /** williamr@2: * OPTIONAL: Fetch selection accepter. williamr@2: * If NULL, not applicable. williamr@2: */ williamr@2: MPbkFetchDlgSelection* iFetchSelection; williamr@2: williamr@2: public: // Interface williamr@2: /** williamr@2: * C++ constructor. williamr@2: */ williamr@2: IMPORT_C TParams(); williamr@2: williamr@2: // Compiler-generated destructor is ok for this class williamr@2: williamr@2: /** williamr@2: * Returns a cleanup item which will handle cleanup of this williamr@2: * object in case of a leave. williamr@2: */ williamr@2: IMPORT_C operator TCleanupItem(); williamr@2: williamr@2: private: // Implementation williamr@2: static void Cleanup(TAny* aPtr); williamr@2: williamr@2: private: // Unimplemented functions williamr@2: /// Unimplemented copy constructor williamr@2: TParams(const TParams&); williamr@2: /// Unimplemented assignment operator williamr@2: TParams& operator=(const TParams&); williamr@2: }; williamr@2: williamr@2: public: // Interface williamr@2: /** williamr@2: * Creates a new multiple entry fetch dialog. williamr@2: * williamr@2: * @param aParams Fetch parameters, see TParams. williamr@2: * @param aEngine Phonebook engine. williamr@2: * @return A new instance of this class. williamr@2: */ williamr@2: IMPORT_C static CPbkMultipleEntryFetchDlg* NewL williamr@2: (TParams& aParams, CPbkContactEngine& aEngine); williamr@2: williamr@2: /** williamr@2: * See CCoeControl::SetMopParent(MObjectProvider* aParent) williamr@2: */ williamr@2: IMPORT_C void SetMopParent(MObjectProvider* aParent); williamr@2: williamr@2: /** williamr@2: * Executes this dialog. williamr@2: * NOTE: this object is deleted when ExecuteLD returns or leaves! williamr@2: * NOTE: current status pane layout is replaced with the Phonebook williamr@2: * one. Restoring the original pane is left to be the responsibility williamr@2: * of the caller. williamr@2: * williamr@2: * @return A non-zero value if accepted, zero if canceled. williamr@2: */ williamr@2: IMPORT_C TInt ExecuteLD(); williamr@2: williamr@2: /** williamr@2: * Destructor. Also cancels this dialog and makes ExecuteLD return. williamr@2: */ williamr@2: ~CPbkMultipleEntryFetchDlg(); williamr@2: williamr@2: private: // Implementation williamr@2: CPbkMultipleEntryFetchDlg(TParams& aParams, CPbkContactEngine& aEngine); williamr@2: void ConstructL(); williamr@2: static void Panic(TInt aReason); williamr@2: williamr@2: private: // Data williamr@2: /// Own: parameters williamr@2: TParams& iParams; williamr@2: /// Own: fetch dialog williamr@2: CPbkFetchDlg* iFetchDlg; williamr@2: /// Ref: Phonebook engine williamr@2: CPbkContactEngine& iPbkEngine; williamr@2: /// Ref: set to ETrue in destructor williamr@2: TBool* iDestroyedPtr; williamr@2: /// Own: Object Provider williamr@2: MObjectProvider* iObjectProvider; williamr@2: }; williamr@2: williamr@2: #endif // __CPbkMultipleEntryFetchDlg_H__ williamr@2: williamr@2: // End of File