diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/inc/CPbk2MemoryEntryDefaultsDlg.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/inc/CPbk2MemoryEntryDefaultsDlg.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,135 @@ +/* +* 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 dialog. +* +*/ + + +#ifndef CPBK2MEMORYENTRYDEFAULTSDLG_H +#define CPBK2MEMORYENTRYDEFAULTSDLG_H + +// INCLUDES +#include // CAknPopupList +#include +#include + +// FORWARD DECLARATIONS +class CEikColumnListBox; +class CPbk2PresentationContact; +class CVPbkContactManager; +class CPbk2DefaultAttributeProcess; +class MVPbkStoreContactField; + +// CLASS DECLARATION + +/** + * Phonebook 2 memory entry defaults dialog. + * This is a custom popup for Phonebook 2 application's + * contacts' default settings. + * + * Responsible for: + * - populating the list box with correct content, this + * is difficult since supported defaults are heavily variated + * - setting or removing the default attributes to/from the contact + * by driving default attribute processor + */ +class CPbk2MemoryEntryDefaultsDlg : + public CAknPopupList, + public MPbk2DefaultAttributeProcessObserver + { + public: // Construction and destruction + + /** + * Creates a new instance of this class. + * + * @param aContact Contact whose defaults are chosen. + * @param aManager Virtual Phonebook contact manager. + * @return A new instance of this class. + */ + IMPORT_C static CPbk2MemoryEntryDefaultsDlg* NewL( + CPbk2PresentationContact& aContact, + CVPbkContactManager& aManager ); + + /** + * Destructor. + * Also cancels and dismisses this popup list, in other words makes + * ExecuteLD return as if cancel was pressed. + */ + ~CPbk2MemoryEntryDefaultsDlg(); + + public: // Interface + + /** + * Runs the dialog. + */ + IMPORT_C void ExecuteLD(); + + private: // From CAknPopupList + void ProcessCommandL( + TInt aCommandId ); + void HandleListBoxEventL( + CEikListBox* aListBox, + TListBoxEvent aEventType ); + + private: // From MPbk2DefaultAttributeProcessObserver + void AttributeProcessCompleted(); + void AttributeProcessFailed( + TInt aErrorCode ); + + private: // Implementation + CPbk2MemoryEntryDefaultsDlg( + CPbk2PresentationContact& aContact, + CVPbkContactManager& aManager ); + void ConstructL(); + void CreateLinesL() const; + TBool DefaultsAssignPopupL( + VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aSelectorID ); + void FixIndex( + TInt& aIndex ) const; + TBool IsSupported( + const VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aSelectorID ) const; + TBool IsAvailableL( + const VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aSelectorID ) const; + void SetDefaultL( + const VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aSelectorID, + MVPbkStoreContactField& aField ); + void RemoveDefaultL( + const VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aSelectorID ); + void CreateTableOfDefaultsL(); + void ReadDefaultsFromRepositoryL(); + + private: // Data + /// Ref: The contact + CPbk2PresentationContact& iContact; + /// Ref: Virtual Phonebook contact manager + CVPbkContactManager& iManager; + /// Own: Default selection listbox + CEikFormattedCellListBox* iListBox; + /// Ref: Referred TBool is set ETrue in destructor + TBool* iDestroyedPtr; + /// Own: Contact field the default is assigned to + MVPbkStoreContactField* iField; + /// Own: Attribute set/remove process + CPbk2DefaultAttributeProcess* iAttributeProcess; + /// Own: Local variation flags + TInt iLVFlags; + /// Own: Table of used Defaults item + CArrayFixFlat* iDefaultsTable; + /// Own: Indicates if focus has been dragged around the list, helps with single tap launching + TBool iHasBeenDragged; + }; + +#endif // CPBK2MEMORYENTRYDEFAULTSDLG_H + +// End of File