diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/inc/CPbk2MemoryEntryDefaultsAssignDlg.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/inc/CPbk2MemoryEntryDefaultsAssignDlg.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,119 @@ +/* +* Copyright (c) 2005-2007 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 2 memory entry defaults assign dialog. +* +*/ + + +#ifndef CPBK2MEMORYENTRYDEFAULTSASSIGNDLG_H +#define CPBK2MEMORYENTRYDEFAULTSASSIGNDLG_H + +// INCLUDES +#include +#include "MPbk2ClipListBoxText.h" +#include + +// FORWARD DECLARATIONS +class CAknPopupList; +class CPbk2IconArray; +class CVPbkContactManager; +class CEikFormattedCellListBox; +class CPbk2PresentationContactFieldCollection; +class MPbk2FieldPropertyArray; +class CPbk2ApplicationServices; +class CPbk2FieldListBoxModel; + +// CLASS DECLARATION + +/** + * Phonebook 2 memory entry defaults assign dialog. + * Responsible for presenting memory entry defaults assign dialog. + */ +NONSHARABLE_CLASS(CPbk2MemoryEntryDefaultsAssignDlg) : + public CBase, + public MPbk2ClipListBoxText + { + public: // Construction and destruction + + /** + * Creates a new instance of this class. + * + * @return A new instance of this class. + */ + IMPORT_C static CPbk2MemoryEntryDefaultsAssignDlg* NewL(); + + /** + * Destructor. + */ + ~CPbk2MemoryEntryDefaultsAssignDlg(); + + public: // Interface + + /** + * Executes the defaults assign dialog. + * @param aFields Collection of presentation fields from + * where to select the default. + * @param aManager Contact manager. + * @param aFieldProperties Field properties + * @return Field index selected as default. + * KErrCancel, if user pressed Cancel. + * If the returned index is bigger than + * than the field count indicates, it means + * that the user decided to remove the default + * (last choice of the dialog is 'no default'). + */ + IMPORT_C TInt ExecuteLD( + const CPbk2PresentationContactFieldCollection& aFields, + const CVPbkContactManager& aManager, + const MPbk2FieldPropertyArray& aFieldProperties, + const VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aSelectorID = VPbkFieldTypeSelectorFactory::EEmptySelector ); + + + private: // From MPbkClipListBoxText + TBool ClipFromBeginning( + TDes& aBuffer, + TInt aItemIndex, + TInt aSubCellNumber ); + + private: // Implementation + void ConstructL(); + CPbk2MemoryEntryDefaultsAssignDlg(); + void PreparePopupL( + const CPbk2PresentationContactFieldCollection& aFields, + const CVPbkContactManager& aManager, + const MPbk2FieldPropertyArray& aFieldProperties ); + void CreateModelL( + const CPbk2PresentationContactFieldCollection& aFields, + const CVPbkContactManager& aManager, + const MPbk2FieldPropertyArray& aFieldProperties, + const CPbk2IconArray& aIconArray ); + + private: // Data + /// Own: Field selection listbox + CEikFormattedCellListBox* iListBox; + /// Own: Popup list for the listbox + CAknPopupList* iPopupList; + /// Ref: Referred TBool is set ETrue in destructor + TBool* iDestroyedPtr; + /// Own: Application Services + CPbk2ApplicationServices* iAppServices; + /// Own: Listbox model + CPbk2FieldListBoxModel* iModel; + // Selector Id + VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector iSelectorId; + }; + +#endif // CPBK2MEMORYENTRYDEFAULTSASSIGNDLG_H + +// End of File