phonebookui/Phonebook2/inc/TPbk2AddressSelectParams.h
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook2/inc/TPbk2AddressSelectParams.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,172 @@
+/*
+* 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 address selection parameters.
+*
+*/
+
+
+#ifndef TPBK2ADDRESSSELECTPARAMS_H
+#define TPBK2ADDRESSSELECTPARAMS_H
+
+// INCLUDES
+#include <e32base.h>
+#include <barsread.h>
+#include <VPbkFieldType.hrh>
+#include <RVPbkContactFieldDefaultPriorities.h>
+#include <VPbkFieldTypeSelectorFactory.h>
+
+// FORWARD DECLARATIONS
+class MVPbkStoreContact;
+class MVPbkStoreContactField;
+class MPbk2ContactNameFormatter;
+class CVPbkContactManager;
+class CPbk2FieldPropertyArray;
+
+// CLASS DECLARATION
+
+/**
+ * Phonebook 2 address selection parameters.
+ * Responsible for carrying the parameters to the address select class.
+ */
+class TPbk2AddressSelectParams
+    {
+    public: // Construction
+
+        /**
+         * Constructor.
+         *
+         * @param aContact            Contact from where to select
+         *                            an address.
+         * @param aContactManager     Virtual Phonebook contact manager.
+         * @param aNameFormatter      Name formatter.
+         * @param aFieldPropertyArray Phonebook 2 field property array.
+         * @param aReader             Resource reader pointed to
+         *                            PBK2_ADDRESS_SELECT structure.
+         * @param aTitleResId         Resource id for title text.
+         *                            Default = 0. If default, the memory
+         *                            entry name is used as a title.
+         */
+         IMPORT_C TPbk2AddressSelectParams(
+                MVPbkStoreContact& aContact,
+                const CVPbkContactManager& aContactManager,
+                MPbk2ContactNameFormatter& aNameFormatter,
+                const CPbk2FieldPropertyArray& aFieldPropertyArray,
+                TResourceReader& aReader,
+                TInt aTitleResId = 0 );
+
+    public: // Interface
+
+        /**
+         * Sets the focused field of the contact. If focused field
+         * is a non-empty address field it is returned directly by
+         * ExecuteLD. Defaults to NULL.
+         *
+         * @param aFocusedField       The focused field to set.
+         */
+        IMPORT_C void SetFocusedField(
+                const MVPbkStoreContactField* aFocusedField );
+
+        /**
+         * Sets the default to be used in address select. The
+         * defaults in the array should be in priority order.
+         * If the priorities array is not set, no defaults are used.
+         * Focused field overrides default address if both are
+         * available.
+         *
+         * @param aDefaultPriorities  An array of default properties in
+         *                            priority order.
+         */
+        IMPORT_C void SetDefaultPriorities(
+                const RVPbkContactFieldDefaultPriorities& aDefaultPriorities );
+
+        /**
+         * Set to ETrue to use default address of the contact directly.
+         * Focused field overrides default address if both are
+         * available. Default value for this parameter is EFalse.
+         *
+         * @param aUseDefaultDirectly   Defines should the default address
+         *                              be used directly.
+         */
+        IMPORT_C void SetUseDefaultDirectly(
+                TBool aUseDefaultDirectly );
+
+        /**
+         * Set to ETrue if the query should be shown always, even if
+         * it possible to select only one field. This overrides defaults
+         * also. Default value for this parameter is EFalse.
+         *
+         * @param aQueryAlways  Set to ETrue if the query should
+         *                      be always shown.
+         */
+        IMPORT_C void SetQueryAlways(
+                TBool aQueryAlways );
+
+        /**
+         * Sets custom title type. Indicates whether the resource string
+         * must have one "%U" in it, which the contact name will replace.
+         *
+         * @param aIncludeContactName   If ETrue the prompt will include
+         *                              contact name in it. If EFalse,
+         *                              the prompt include contact name.
+         *                              Default is ETrue.
+         */
+        IMPORT_C void SetTitleToIncludeContactName(
+                TBool aIncludeContactName );
+
+        /**
+         * Set to ETrue if the warnings should be suppressed.
+         * Default value for this parameter is EFalse.
+         *
+         * @param aSuppressWarnings     Set to ETrue if the warnings
+         *                              should be suppressed.
+         */
+        IMPORT_C void SetSuppressWarnings(
+                TBool aSuppressWarnings );
+
+    public: // Data
+        /// Ref: Contact where to select an address from
+        MVPbkStoreContact& iContact;
+        /// Ref: Virtual Phonebook contact manager
+        const CVPbkContactManager& iContactManager;
+        /// Ref: Contact name formatter.
+        MPbk2ContactNameFormatter& iNameFormatter;
+        /// Ref: Phonebook 2 field property array.
+        const CPbk2FieldPropertyArray& iFieldPropertyArray;
+        /// Ref: Resource reader.
+        TResourceReader& iResReader;
+        /// Own: Title resource id
+        TInt iTitleResId;
+        /// Ref: Focused field of the contact.
+        const MVPbkStoreContactField* iFocusedField;
+        /// Ref: Prioritized array of defaults to use.
+        const RVPbkContactFieldDefaultPriorities* iDefaultPriorities;
+        /// Own: Indicates should the default address be used directly
+        TBool iUseDefaultDirectly;
+        /// Own: Indicates should the query be shown always
+        TBool iQueryAlways;
+        /// Own: Indicates whether to include contact name in custom prompt.
+        ///      Custom prompt refers to iTitleResId.
+        TBool iIncludeContactNameInPrompt;
+        /// Own: Indicates are the warnings suppressed
+        TBool iSuppressWarnings;
+        /// Own: Communication method
+        VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector iCommMethod;
+
+    private: // Friends
+        friend class CPbk2AddressSelect;
+    };
+
+#endif // TPBK2ADDRESSSELECTPARAMS_H
+
+// End of File