epoc32/include/app/cpbkfieldinfo.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@4
     5
* under the terms of "Eclipse Public License v1.0"
williamr@2
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description: 
williamr@2
    15
*     Phonebook constant field type information
williamr@2
    16
*
williamr@2
    17
*/
williamr@2
    18
williamr@2
    19
williamr@2
    20
#ifndef __CPbkFieldInfo_H__
williamr@2
    21
#define __CPbkFieldInfo_H__
williamr@2
    22
williamr@2
    23
//  INCLUDES
williamr@2
    24
#include    <e32std.h>
williamr@2
    25
#include    <cntdef.h>
williamr@2
    26
#include    "PbkFields.hrh"
williamr@2
    27
#include    "PbkIconId.hrh"
williamr@2
    28
williamr@2
    29
// FORWARD DECLARATIONS
williamr@2
    30
class CContentType;
williamr@2
    31
class CContactItemField;
williamr@2
    32
class CContactItemViewDef;
williamr@2
    33
class CContactItemFieldDef;
williamr@2
    34
class CPbkFieldsInfo;
williamr@2
    35
class TResourceReader;
williamr@2
    36
class CPbkFieldInfoGroup;
williamr@2
    37
class CPbkFieldImportType;
williamr@2
    38
class TPbkContactItemFieldType;
williamr@2
    39
class TPbkVcardFieldType;
williamr@2
    40
class CPbkUidMap;
williamr@2
    41
class TPbkMatchPriorityLevel;
williamr@2
    42
williamr@2
    43
// CLASS DECLARATION
williamr@2
    44
williamr@2
    45
/**
williamr@2
    46
 * Phonebook constant field type information. Loaded from resources into
williamr@2
    47
 * CPbkFieldsInfo array. The corresponding resource structure is PHONEBOOK_FIELD
williamr@2
    48
 * in PbkFieldInfo.rh.
williamr@2
    49
 *
williamr@2
    50
 * @see CPbkFieldsInfo
williamr@2
    51
 * @see PHONEBOOK_FIELD
williamr@2
    52
 * @see FIELD
williamr@2
    53
 */
williamr@2
    54
class CPbkFieldInfo :
williamr@2
    55
        public CBase
williamr@2
    56
	{
williamr@2
    57
    public: // Interface
williamr@2
    58
        /**
williamr@2
    59
         * Returns the unique Phonebook field id for this field type.
williamr@2
    60
         * @return The unique Phonebook field id for this field type.
williamr@2
    61
         */
williamr@2
    62
        IMPORT_C TPbkFieldId FieldId() const;
williamr@2
    63
williamr@2
    64
        /**
williamr@2
    65
         * Returns the storage type of this field type.
williamr@2
    66
         * @return The storage type of this field type.
williamr@2
    67
         */
williamr@2
    68
        IMPORT_C TStorageType FieldStorageType() const;
williamr@2
    69
williamr@2
    70
        /**
williamr@2
    71
         * Returns the content type of this field type.
williamr@2
    72
         * @return The content type of this field type.
williamr@2
    73
         * @see CContentType
williamr@2
    74
         */
williamr@2
    75
        IMPORT_C const CContentType& ContentType() const;
williamr@2
    76
williamr@2
    77
        /**
williamr@2
    78
         * Returns the category of this field type.
williamr@2
    79
         * @return The category of this field type
williamr@2
    80
         */
williamr@2
    81
        IMPORT_C TInt Category() const;
williamr@2
    82
williamr@2
    83
        /**
williamr@2
    84
         * Returns this field type's default label.
williamr@2
    85
         * @return The field type's default label.
williamr@2
    86
         */
williamr@2
    87
        IMPORT_C const TDesC& FieldName() const;
williamr@2
    88
williamr@2
    89
        /**
williamr@2
    90
         * Returns Symbian Contacts Model field flags of this field type.
williamr@2
    91
         * @return Symbian Contacts model field flags for this field type.
williamr@2
    92
         */
williamr@2
    93
        IMPORT_C TUint Flags() const;
williamr@2
    94
williamr@2
    95
        /**
williamr@2
    96
         * Returns the multiplicity allowed for this field type.
williamr@2
    97
         * @return The multiplicity allowed for this field type.
williamr@2
    98
         */
williamr@2
    99
        IMPORT_C TPbkFieldMultiplicity Multiplicity() const;
williamr@2
   100
williamr@2
   101
        /**
williamr@2
   102
         * Returns the maximum data length that Phonebook UI spec specifies
williamr@2
   103
         * for this field type.
williamr@2
   104
         * @return The maximum data length that Phonebook UI spec specifies
williamr@2
   105
         *         for this field type.
williamr@2
   106
         */
williamr@2
   107
        IMPORT_C TInt MaxLength() const;
williamr@2
   108
williamr@2
   109
        /**
williamr@2
   110
         * Returns the default editing mode for this field type.
williamr@2
   111
         * @return The default editing mode for this field type.
williamr@2
   112
         */
williamr@2
   113
        IMPORT_C TPbkFieldEditMode EditMode() const;
williamr@2
   114
williamr@2
   115
        /**
williamr@2
   116
         * Returns the default character case for this field type.
williamr@2
   117
         * @return The default character case for this field type.
williamr@2
   118
         */
williamr@2
   119
        IMPORT_C TPbkFieldDefaultCase DefaultCase() const;
williamr@2
   120
williamr@2
   121
        /**
williamr@2
   122
         * Returns the icon id for this field type.
williamr@2
   123
         * @return The icon id for this field type.
williamr@2
   124
         */
williamr@2
   125
        IMPORT_C TPbkIconId IconId() const;
williamr@2
   126
williamr@2
   127
        /**
williamr@2
   128
         * Returns the UI control type required to edit this field.
williamr@2
   129
         * @return The UI control type required to edit this field.
williamr@2
   130
         */
williamr@2
   131
        IMPORT_C TPbkFieldCtrlType CtrlType() const;
williamr@2
   132
williamr@2
   133
        /**
williamr@2
   134
         * Returns additional flags of this field type.
williamr@2
   135
         * @return The additional flags of this field type.
williamr@2
   136
         */
williamr@2
   137
        IMPORT_C TUint AddFlags() const;
williamr@2
   138
williamr@2
   139
        /**
williamr@2
   140
         * @deprecated  This function is no longer supported.
williamr@2
   141
         *
williamr@2
   142
         * Returns the UI ordering for adding a field.
williamr@2
   143
         * @return The UI ordering for adding a field.
williamr@2
   144
         */
williamr@2
   145
        IMPORT_C TPbkAddItemOrdering AddItemOrdering() const;
williamr@2
   146
williamr@2
   147
        /**
williamr@2
   148
         * Returns ETrue if this field is hidden.
williamr@2
   149
         * @return ETrue if this field is hidden, EFalse otherwise.
williamr@2
   150
         */
williamr@2
   151
        IMPORT_C TBool IsHidden() const;
williamr@2
   152
williamr@2
   153
        /**
williamr@2
   154
         * Returns ETrue if this field is read only.
williamr@2
   155
         * @return ETrue if this field is read only, EFalse otherwise.
williamr@2
   156
         */
williamr@2
   157
        IMPORT_C TBool IsReadOnly() const;
williamr@2
   158
williamr@2
   159
        /**
williamr@2
   160
         * Returns ETrue if this field is synchronized.
williamr@2
   161
         * @return ETrue if this field is synchronized, EFalse otherwise.
williamr@2
   162
         */
williamr@2
   163
        IMPORT_C TBool DoSynchronize() const;
williamr@2
   164
williamr@2
   165
        /**
williamr@2
   166
         * Returns ETrue if this field is disabled.
williamr@2
   167
         * @return ETrue if this field is disabled, EFalse otherwise.
williamr@2
   168
         */
williamr@2
   169
        IMPORT_C TBool IsDisabled() const;
williamr@2
   170
williamr@2
   171
        /**
williamr@2
   172
         * Returns ETrue if this is a name field type.
williamr@2
   173
         * @return ETrue if this is a name field type, EFalse otherwise.
williamr@2
   174
         */
williamr@2
   175
        IMPORT_C TBool NameField() const;
williamr@2
   176
williamr@2
   177
        /**
williamr@2
   178
         * Returns ETrue if this field type is part of the default template.
williamr@2
   179
         * @return ETrue if this is part of the default template, 
williamr@2
   180
         *         EFalse otherwise.
williamr@2
   181
         */
williamr@2
   182
        IMPORT_C TBool TemplateField() const;
williamr@2
   183
williamr@2
   184
        /**
williamr@2
   185
         * Returns ETrue if this field type can be added by the user.
williamr@2
   186
         * @return ETrue if this field type can be added by the user, 
williamr@2
   187
         *         EFalse otherwise.
williamr@2
   188
         */
williamr@2
   189
        IMPORT_C TBool UserCanAddField() const;
williamr@2
   190
williamr@2
   191
        /**
williamr@2
   192
         * Returns ETrue if the field type can be edited in Phonebook's contact
williamr@2
   193
         * editor.
williamr@2
   194
         * @return ETrue if this field type can be edited in phonebook's contact 
williamr@2
   195
         *         editor, EFalse otherwise.
williamr@2
   196
         */
williamr@2
   197
        IMPORT_C TBool IsEditable() const;
williamr@2
   198
williamr@2
   199
        /**
williamr@2
   200
         * Returns ETrue if this is a numeric field type.
williamr@2
   201
         * @return ETrue if this is a numeric field type, EFalse otherwise.
williamr@2
   202
         */
williamr@2
   203
        IMPORT_C TBool NumericField() const;
williamr@2
   204
williamr@2
   205
        /**
williamr@2
   206
         * Returns ETrue if this is a phone number field type.
williamr@2
   207
         * @return ETrue if this is a phone number field type, EFalse otherwise.
williamr@2
   208
         */
williamr@2
   209
        IMPORT_C TBool IsPhoneNumberField() const;
williamr@2
   210
williamr@2
   211
        /**
williamr@2
   212
         * Returns ETrue if this is an EmailOverSms address field type.
williamr@2
   213
         * @return ETrue if this field type is a EmailOverSms address 
williamr@2
   214
         *         field, EFalse otherwise.
williamr@2
   215
         */
williamr@2
   216
        IMPORT_C TBool IsEmailOverSmsField() const;
williamr@2
   217
williamr@2
   218
        /**
williamr@2
   219
         * Returns ETrue if this is an Email address field type.
williamr@2
   220
         * @return ETrue if this is a EMail address field type, EFalse otherwise.
williamr@2
   221
         */
williamr@2
   222
        IMPORT_C TBool IsEmailField() const;
williamr@2
   223
williamr@2
   224
        /**
williamr@2
   225
         * Returns ETrue if this is a MMS address field type.
williamr@2
   226
         * @return ETrue if this is a MMS address field type, EFalse otherwise.
williamr@2
   227
         */
williamr@2
   228
        IMPORT_C TBool IsMmsField() const;
williamr@2
   229
williamr@2
   230
        /**
williamr@2
   231
         * Returns ETrue if this is an image field type.
williamr@2
   232
         * @return ETrue if this is a image field type, EFalse otherwise.
williamr@2
   233
         */
williamr@2
   234
        IMPORT_C TBool IsImageField() const;
williamr@2
   235
williamr@2
   236
        /**
williamr@2
   237
		 * Returns ETrue if this is a POC address field type.
williamr@2
   238
         * @return ETrue if this is a POC address field type, EFalse otherwise.
williamr@2
   239
		 */
williamr@2
   240
        IMPORT_C TBool IsPocField() const;
williamr@2
   241
        
williamr@2
   242
        /**
williamr@2
   243
		 * Returns ETrue if this is a VOIP address field type.
williamr@2
   244
         * @return ETrue if this is a VOIP address field type, EFalse otherwise.
williamr@2
   245
		 */
williamr@2
   246
        IMPORT_C TBool IsVoipField() const;
williamr@2
   247
williamr@2
   248
        /**
williamr@2
   249
         * Returns ETrue if aFieldInfo is same as this.
williamr@2
   250
         * @param aFieldInfo Field info to compare to this field type.
williamr@2
   251
         * @return ETrue if aField Is same as this field type, EFalse otherwise.
williamr@2
   252
         */
williamr@2
   253
        IMPORT_C TBool IsSame(const CPbkFieldInfo& aFieldInfo) const;
williamr@2
   254
williamr@2
   255
        /**
williamr@2
   256
         * Returns ETrue if this field info matches aFieldId.
williamr@2
   257
         * @param aFieldId  The field type id to compare to this field type.
williamr@2
   258
         * @return ETrue if this field info matched aFieldId, EFalse otherwise.
williamr@2
   259
         */
williamr@2
   260
        IMPORT_C TBool Match(TPbkFieldId aFieldId) const;
williamr@2
   261
williamr@2
   262
        /**
williamr@2
   263
         * Returns ETrue if this field info matches aFieldType at any import
williamr@2
   264
         * type priority level.
williamr@2
   265
         * @param aFieldType    Field type to match to this field type.
williamr@2
   266
         * @return ETrue if this field info matches aFieldType at any import
williamr@2
   267
         * type priority level, EFalse otherwise.
williamr@2
   268
         */
williamr@2
   269
        TBool Match(const TPbkContactItemFieldType& aFieldType) const;
williamr@2
   270
williamr@2
   271
        /**
williamr@2
   272
         * Returns ETrue if this field info matches aFieldType at import
williamr@2
   273
         * type priority level defined by aMatchPriority.
williamr@2
   274
         * @param aFieldType    Field type to compare.
williamr@2
   275
         * @param aMatchPriority    Matching priority.
williamr@2
   276
         * @return ETrue if this field info matches aFieldType at import
williamr@2
   277
         *         type priority level defined by aMatchPriority.
williamr@2
   278
         */
williamr@2
   279
        TBool Match
williamr@2
   280
            (const TPbkContactItemFieldType& aFieldType,
williamr@2
   281
            const TPbkMatchPriorityLevel& aMatchPriority) const;
williamr@2
   282
williamr@2
   283
        /**
williamr@2
   284
         * Returns ETrue if this field info matches aVcardType at import
williamr@2
   285
         * type priority level defined by aMatchPriority.
williamr@2
   286
         * @param aVcardType        vCard field type to match to this field type.
williamr@2
   287
         * @param aMatchPriority    Matching priority.
williamr@2
   288
         * @return ETrue if this field info matches aVcardType at import
williamr@2
   289
         *         type priority level defined by aMatchPriority.
williamr@2
   290
         */
williamr@2
   291
        TBool Match
williamr@2
   292
            (const TPbkVcardFieldType& aVcardType,
williamr@2
   293
            const TPbkMatchPriorityLevel& aMatchPriority) const;
williamr@2
   294
williamr@2
   295
        /**
williamr@2
   296
         * @deprecated  This function is no longer supported. If you want to
williamr@2
   297
         *              find the CPbkFieldInfo instance matching a
williamr@2
   298
         *              CContactItemField use
williamr@2
   299
         *              CPbkFieldsInfo::Match(const CContactItemField&) const.
williamr@2
   300
         *              That function works correctly and uses <it>a lot</it>
williamr@2
   301
         *              faster algorithm than this function.
williamr@2
   302
         * @param aField    Symbian Contacts model contact item to match to this field type.
williamr@2
   303
         * Returns ETrue if this field info matches aField.
williamr@2
   304
         * @return ETrue is field matches, EFalse otherwise.
williamr@2
   305
         */
williamr@2
   306
        IMPORT_C TBool Match(const CContactItemField& aField) const;
williamr@2
   307
williamr@2
   308
        /**
williamr@2
   309
         * Creates a Symbian Contacts model field of this field type. Ownership of the field
williamr@2
   310
         * is passed to the client.
williamr@2
   311
         * @return Symbian Contacts model field of this field type.
williamr@2
   312
         */
williamr@2
   313
        IMPORT_C CContactItemField* CreateFieldL() const;
williamr@2
   314
williamr@2
   315
        /**
williamr@2
   316
         * Returns ETrue if aField's label is equal to this field info objects.
williamr@2
   317
         * @param aField    Symbian Contacts model field to compare to this field types label.
williamr@2
   318
         * @return ETrue if aField's label is equal to this field info object.
williamr@2
   319
         */
williamr@2
   320
        TBool IsEqualLabel(const CContactItemField& aField) const;
williamr@2
   321
williamr@2
   322
        /**
williamr@2
   323
         * Returns ETrue if aField's type is equal to this field info object.
williamr@2
   324
         * @param aField Symbian Contacts model field to compare.
williamr@2
   325
         * @return ETrue if Symbian Contacts model aField's type is equal 
williamr@2
   326
         *         to this field info object.
williamr@2
   327
         */
williamr@2
   328
        TBool IsEqualType(const CContactItemField& aField) const;
williamr@2
   329
williamr@2
   330
        /**
williamr@2
   331
         * Returns ETrue if aField's type and labels are equal to this field
williamr@2
   332
         * info object.
williamr@2
   333
         * @param aField    Symbian Contacts model field to compare
williamr@2
   334
         * @return ETrue if aField's type and labels are equal to this field
williamr@2
   335
         * info object.
williamr@2
   336
         */
williamr@2
   337
        IMPORT_C TBool IsEqualTo(const CContactItemField& aField) const;
williamr@2
   338
williamr@2
   339
        /**
williamr@2
   340
         * Compares the field ordering of this and aOther.
williamr@2
   341
         *
williamr@2
   342
         * @param   aOther  The other object this is compared against.
williamr@2
   343
         * @return  0, if this and aOther are equal in field ordering<br>
williamr@2
   344
         *          negative, if this is less than aOther in field ordering<br>
williamr@2
   345
         *          positive, if this is greater than aOther in field ordering.
williamr@2
   346
         */
williamr@2
   347
        IMPORT_C TInt CompareOrdering(const CPbkFieldInfo& aOther) const;
williamr@2
   348
williamr@2
   349
        /**
williamr@2
   350
         * Returns the field info group this field info belongs to or NULL.
williamr@2
   351
         * @return The field info group this field info belongs to or NULL.
williamr@2
   352
         */
williamr@2
   353
        IMPORT_C const CPbkFieldInfoGroup* Group() const;
williamr@2
   354
williamr@2
   355
        /**
williamr@2
   356
         * Returns the location information of the field.
williamr@2
   357
         * @return The location information of the field.
williamr@2
   358
         */
williamr@2
   359
        IMPORT_C TPbkFieldLocation Location() const;
williamr@2
   360
williamr@2
   361
        /**
williamr@2
   362
         * Returns the versit storage type of the field.
williamr@2
   363
         * @return The versit storage type of the field.
williamr@2
   364
         */
williamr@2
   365
        IMPORT_C TPbkVersitStorageType VersitStorageType() const;
williamr@2
   366
williamr@2
   367
        /**
williamr@2
   368
         * Add this field's type information to a contact item view definition.
williamr@2
   369
         *
williamr@2
   370
         * @param aViewDef  View definition to add types to.
williamr@2
   371
         */
williamr@2
   372
        IMPORT_C void AddToViewDefL(CContactItemViewDef& aViewDef) const;
williamr@2
   373
williamr@2
   374
        /**
williamr@2
   375
         * Add this field's type information to a contact item field definition.
williamr@2
   376
         *
williamr@2
   377
         * @param aFieldDef Field definition to add types to.
williamr@2
   378
         */
williamr@2
   379
        IMPORT_C void AddToFieldDefL(CContactItemFieldDef& aFieldDef) const;
williamr@2
   380
williamr@2
   381
        /**
williamr@2
   382
         * Returns the Add item label text of the field.
williamr@2
   383
         * @return The Add item label text of the field.
williamr@2
   384
         */
williamr@2
   385
        IMPORT_C const TDesC& AddItemText() const;
williamr@2
   386
williamr@2
   387
        /**
williamr@2
   388
         * Returns ETrue if this field is a reading field type (japanese).
williamr@2
   389
         * @return ETrue if this field is a reading field type (japanese).
williamr@2
   390
         */
williamr@2
   391
        IMPORT_C TBool IsReadingField() const;
williamr@2
   392
williamr@2
   393
    private: // Forward declaration of internal class
williamr@2
   394
        class TPbkFieldInfoParams;
williamr@2
   395
williamr@2
   396
    private: // Constructors and destructor
williamr@2
   397
        CPbkFieldInfo();
williamr@2
   398
williamr@2
   399
        static CPbkFieldInfo* NewLC(TResourceReader& aReaderStd, TResourceReader& aReaderAdd, 
williamr@2
   400
            TPbkFieldInfoParams& aPbkFieldInfoParams);
williamr@2
   401
williamr@2
   402
        ~CPbkFieldInfo();
williamr@2
   403
        void ReadCntModelFieldsL(TResourceReader& aReaderStd);
williamr@2
   404
        void ReadAdditionalFieldsL(TResourceReader& aReaderAdd, 
williamr@2
   405
            TPbkFieldInfoParams& aPbkFieldInfoParams);
williamr@2
   406
        void ReadImportPropertiesL(TResourceReader& aReaderAdd);
williamr@2
   407
        void ConstructFromResourceL
williamr@2
   408
            (TResourceReader& aReaderStd, TResourceReader& aReaderAdd,
williamr@2
   409
             TPbkFieldInfoParams& aPbkFieldInfoParams);
williamr@2
   410
        TInt ImportPropertyCount() const;
williamr@2
   411
        void UpdateTypeUidMapL(CPbkUidMap& aTypeUidMap) const;
williamr@2
   412
        void CalculateTypeSignatures(const CPbkUidMap& aTypeUidMap);
williamr@2
   413
        TBool IsEqualFlags(const CContactItemField& aField) const;
williamr@2
   414
    
williamr@2
   415
    private: // Structure
williamr@2
   416
williamr@2
   417
        struct TPbkFieldInfoParams
williamr@2
   418
	        {
williamr@2
   419
	        /// Own: Max number length in editor
williamr@2
   420
	        TInt iEditorMaxNumberLength;
williamr@2
   421
	        };
williamr@2
   422
	        
williamr@2
   423
    private:  // Data
williamr@2
   424
        /**
williamr@2
   425
		 * Contacts Model attributes			
williamr@2
   426
		 * Attribute in resource struct FIELD
williamr@2
   427
		 */
williamr@2
   428
        /// Own: storage type (Text,Date,...)
williamr@2
   429
        TStorageType iFieldStorageType;		// LONG fieldStorageType
williamr@2
   430
		/// Own: content type
williamr@2
   431
        CContentType* iContentType;			// LONG contactFieldType,
williamr@2
   432
											// LONG vCardMapping,
williamr@2
   433
											// STRUCT extraMapping[]
williamr@2
   434
		/// Own: category (Home/Work)
williamr@2
   435
        TInt iCategory;						// LONG category
williamr@2
   436
		/// Own: field's default name and label
williamr@2
   437
        HBufC* iFieldName;					// LTEXT fieldName
williamr@2
   438
		/// Own: special flags
williamr@2
   439
        TUint iFlags;						// LONG flags
williamr@2
   440
williamr@2
   441
		/**
williamr@2
   442
         * Additional attributes
williamr@2
   443
		 * Attributes in resource struct PHONEBOOK_FIELD
williamr@2
   444
		 */
williamr@2
   445
        /// Own: entry Add item labeltext
williamr@2
   446
        HBufC* iAddItemText;				// LTEXT AddItemText
williamr@2
   447
        /// Own: assorted flags for the field type
williamr@2
   448
        TUint iAddFlags;					// LONG Flags
williamr@2
   449
        /// Own: maximum length in characters
williamr@2
   450
        TInt16 iMaxLength;					// WORD MaxLength
williamr@2
   451
        /// Own: index of an icon
williamr@2
   452
        TInt8 iIconId;					    // BYTE IconId
williamr@2
   453
        /// Own: The unique field type id
williamr@2
   454
        TInt8 iFieldId;                     // BYTE Id
williamr@2
   455
        /// Own: allowed multiplicity (one/many).
williamr@2
   456
        TInt8 iMultiplicity;                // BYTE Multiplicity
williamr@2
   457
        /// Own: default editing mode
williamr@2
   458
        TInt8 iEditMode;		            // BYTE EditMode
williamr@2
   459
        /// Own: default character case
williamr@2
   460
        TInt8 iDefaultCase;                 // BYTE DefaultCase
williamr@2
   461
        /// Own: editor UI control type
williamr@2
   462
        TInt8 iCtrlType;                    // BYTE CtrlType
williamr@2
   463
        /// Own: entry item grouping
williamr@2
   464
        TInt8 iOrderingGroup;	            // BYTE OrderingGroup
williamr@2
   465
        /// Own: entry item group item ordering
williamr@2
   466
        TInt8 iOrderingItem;		        // BYTE OrderingItem
williamr@2
   467
        /// Own: entry Add Item ordering
williamr@2
   468
        TInt8 iAddItemOrdering;             // BYTE AddItemOrdering
williamr@2
   469
        /// Own: entry item location (none/home/work)
williamr@2
   470
        TInt8 iLocation;		            // BYTE Location
williamr@2
   471
        // Own: data storage type in versit
williamr@2
   472
        TInt8 iVersitStorageType;           // BYTE VersitStorageType
williamr@2
   473
williamr@2
   474
		/// Own: field import type
williamr@2
   475
        CPbkFieldImportType* iImportType;
williamr@2
   476
williamr@2
   477
        union
williamr@2
   478
            {
williamr@2
   479
            /// Own: group id before groups are loaded
williamr@2
   480
            TPbkFieldGroupId iGroupId;
williamr@2
   481
            /// Ref: field info group this contact info belongs to
williamr@2
   482
            const CPbkFieldInfoGroup* iGroup;
williamr@2
   483
            } iGroupLink;
williamr@2
   484
        
williamr@2
   485
    private: // Friend declarations
williamr@2
   486
        friend class CPbkFieldsInfo;
williamr@2
   487
        friend class PbkFieldInfoWrite;
williamr@2
   488
	};
williamr@2
   489
williamr@2
   490
#endif // __CPbkFieldInfo_H__
williamr@2
   491
williamr@2
   492
// End of File