epoc32/include/app/MVPbkFieldType.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
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@4
     1
/*
williamr@4
     2
* Copyright (c) 2004-2007 Nokia Corporation and/or its subsidiary(-ies).
williamr@4
     3
* All rights reserved.
williamr@4
     4
* This component and the accompanying materials are made available
williamr@4
     5
* under the terms of "Eclipse Public License v1.0"
williamr@4
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@4
     8
*
williamr@4
     9
* Initial Contributors:
williamr@4
    10
* Nokia Corporation - initial contribution.
williamr@4
    11
*
williamr@4
    12
* Contributors:
williamr@4
    13
*
williamr@4
    14
* Description:  A generic field type interface.
williamr@4
    15
*
williamr@4
    16
*/
williamr@4
    17
williamr@4
    18
williamr@4
    19
#ifndef MVPBKFIELDTYPE_H
williamr@4
    20
#define MVPBKFIELDTYPE_H
williamr@4
    21
williamr@4
    22
williamr@4
    23
// INCLUDES
williamr@4
    24
#include <e32std.h>
williamr@4
    25
#include <vpbkfieldtype.hrh>
williamr@4
    26
williamr@4
    27
// FORWARD DECLARATIONS
williamr@4
    28
class TVPbkFieldVersitProperty;
williamr@4
    29
class TVPbkFieldTypeParameters;
williamr@4
    30
williamr@4
    31
// CLASS DECLARATIONS
williamr@4
    32
williamr@4
    33
/**
williamr@4
    34
 * Virtual Phonebook field types. 
williamr@4
    35
 *
williamr@4
    36
 * The following structure documents the field types the Virtual Phonebook
williamr@4
    37
 * supports. The structure describes each field type and the type information
williamr@4
    38
 * which is associated to the field type. More information on the field type
williamr@4
    39
 * model can be acquired from the vCard specification. For the field type
williamr@4
    40
 * definitions @see VPbkFieldType.hrh. 
williamr@4
    41
 *
williamr@4
    42
 *
williamr@4
    43
 * field type description: Last name
williamr@4
    44
 * field type resource id: r_vpbk_field_type_lastname
williamr@4
    45
 * associated versit properties:
williamr@4
    46
 *     versit property name: EVPbkVersitNameN
williamr@4
    47
 *     versit property subfield: EVPbkVersitSubFieldFamilyName
williamr@4
    48
 *     versit property name: EVPbkVersitNameFN
williamr@4
    49
 * 
williamr@4
    50
 * field type description: Last name reading
williamr@4
    51
 * field type resource id: r_vpbk_field_type_lastnamereading
williamr@4
    52
 * associated versit properties:
williamr@4
    53
 *     versit property name: EVPbkVersitNameSOUND
williamr@4
    54
 *     versit property subfield: EVPbkVersitSubFieldFamilyNamePronunciation
williamr@4
    55
 * 
williamr@4
    56
 * field type description: First name
williamr@4
    57
 * field type resource id: r_vpbk_field_type_firstname
williamr@4
    58
 * associated versit properties:
williamr@4
    59
 *     versit property name: EVPbkVersitNameN
williamr@4
    60
 *     versit property subfield: EVPbkVersitSubFieldGivenName
williamr@4
    61
 * 
williamr@4
    62
 * field type description: First name reading
williamr@4
    63
 * field type resource id: r_vpbk_field_type_firstnamereading
williamr@4
    64
 * associated versit properties:
williamr@4
    65
 *     versit property name: EVPbkVersitNameSOUND
williamr@4
    66
 *     versit property subfield: EVPbkVersitSubFieldGivenNamePronunciation
williamr@4
    67
 * 
williamr@4
    68
 * field type description: Prefix
williamr@4
    69
 * field type resource id: r_vpbk_field_type_prefix
williamr@4
    70
 * associated versit properties:
williamr@4
    71
 *     versit property name: EVPbkVersitNameN
williamr@4
    72
 *     versit property subfield: EVPbkVersitSubFieldNamePrefix
williamr@4
    73
 * 
williamr@4
    74
 * field type description: Suffix            
williamr@4
    75
 * field type resource id: r_vpbk_field_type_suffix
williamr@4
    76
 * associated versit properties:
williamr@4
    77
 *     versit property name: EVPbkVersitNameN
williamr@4
    78
 *     versit property subfield: EVPbkVersitSubFieldNameSuffix
williamr@4
    79
 * 
williamr@4
    80
 * field type description: Nick name
williamr@4
    81
 * field type resource id: r_vpbk_field_type_secondname
williamr@4
    82
 * associated versit properties:
williamr@4
    83
 *     versit property name: EVPbkVersitNameX
williamr@4
    84
 *     versit property extension name: "X-NICKNAME"
williamr@4
    85
 * 
williamr@4
    86
 * field type description: Landline phone (home)
williamr@4
    87
 * field type resource id: r_vpbk_field_type_landphonehome
williamr@4
    88
 * associated versit properties:
williamr@4
    89
 *     versit property name: EVPbkVersitNameTEL
williamr@4
    90
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
    91
 * associated exclude parameters: 
williamr@4
    92
 *     exclude parameter: EVPbkVersitParamFAX
williamr@4
    93
 *     exclude parameter: EVPbkVersitParamPAGER
williamr@4
    94
 *     exclude parameter: EVPbkVersitParamCELL
williamr@4
    95
 *     exclude parameter: EVPbkVersitParamVIDEO
williamr@4
    96
 *     exclude parameter: EVPbkVersitParamCAR
williamr@4
    97
 * 
williamr@4
    98
 * field type description: Mobile phone (home)
williamr@4
    99
 * field type resource id: r_vpbk_field_type_mobilephonehome
williamr@4
   100
 * associated versit properties:
williamr@4
   101
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   102
 *     versit parameter: EVPbkVersitParamCELL
williamr@4
   103
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
   104
 * 
williamr@4
   105
 * field type description: Video number (home)
williamr@4
   106
 * field type resource id: r_vpbk_field_type_videonumberhome
williamr@4
   107
 * associated versit properties:
williamr@4
   108
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   109
 *     versit parameter: EVPbkVersitParamVIDEO
williamr@4
   110
 *     versit parameter: EVPbkVersitParamHOME
williamr@4
   111
 * 
williamr@4
   112
 * field type description: Fax number (home)
williamr@4
   113
 * field type resource id: r_vpbk_field_type_faxnumberhome
williamr@4
   114
 * associated versit properties:
williamr@4
   115
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   116
 *     versit parameter: EVPbkVersitParamFAX
williamr@4
   117
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
   118
 * 
williamr@4
   119
 * field type description: VoIP (home)
williamr@4
   120
 * field type resource id: r_vpbk_field_type_voiphome
williamr@4
   121
 * associated versit properties:
williamr@4
   122
 *     versit property name: EVPbkVersitNameX
williamr@4
   123
 *     versit parameter: EVPbkVersitParamVOIP
williamr@4
   124
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
   125
 *     versit property extension name: "X-SIP"
williamr@4
   126
 * 
williamr@4
   127
 * field type description: Email address (home)
williamr@4
   128
 * field type resource id: r_vpbk_field_type_emailhome
williamr@4
   129
 * associated versit properties:
williamr@4
   130
 *     versit property name: EVPbkVersitNameEMAIL
williamr@4
   131
 *     versit parameter: EVPbkVersitParamINTERNET
williamr@4
   132
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
   133
 * 
williamr@4
   134
 * field type description: URL (home)
williamr@4
   135
 * field type resource id: r_vpbk_field_type_urlhome
williamr@4
   136
 * associated versit properties:
williamr@4
   137
 *     versit property name: EVPbkVersitNameURL
williamr@4
   138
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
   139
 * 
williamr@4
   140
 * field type description: Address label (home)
williamr@4
   141
 * field type resource id: r_vpbk_field_type_addrlabelhome
williamr@4
   142
 * associated versit properties:
williamr@4
   143
 *     versit property name: EVPbkVersitNameLABEL
williamr@4
   144
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
   145
 * 
williamr@4
   146
 * field type description: Address Postoffice (home)
williamr@4
   147
 * field type resource id: r_vpbk_field_type_addrpohome
williamr@4
   148
 * associated versit properties:
williamr@4
   149
 *     versit property name: EVPbkVersitNameADR
williamr@4
   150
 *     versit property subfield: EVPbkVersitSubFieldPostOfficeAddress
williamr@4
   151
 *     versit parameter: EVPbkVersitParamHOME
williamr@4
   152
 * 
williamr@4
   153
 * field type description: Address Extension (home)
williamr@4
   154
 * field type resource id: r_vpbk_field_type_addrexthome
williamr@4
   155
 * associated versit properties:
williamr@4
   156
 *     versit property name: EVPbkVersitNameADR
williamr@4
   157
 *     versit property subfield: EVPbkVersitSubFieldExtendedAddress
williamr@4
   158
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
   159
 * 
williamr@4
   160
 * field type description: Address Street (home)
williamr@4
   161
 * field type resource id: r_vpbk_field_type_addrstreethome
williamr@4
   162
 * associated versit properties:
williamr@4
   163
 *     versit property name: EVPbkVersitNameADR
williamr@4
   164
 *     versit property subfield: EVPbkVersitSubFieldStreet
williamr@4
   165
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
   166
 * 
williamr@4
   167
 * field type description: Address Locality (home)
williamr@4
   168
 * field type resource id: r_vpbk_field_type_addrlocalhome
williamr@4
   169
 * associated versit properties:
williamr@4
   170
 *     versit property name: EVPbkVersitNameADR
williamr@4
   171
 *     versit property subfield: EVPbkVersitSubFieldLocality
williamr@4
   172
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
   173
 * 
williamr@4
   174
 * field type description: Address Region (home)
williamr@4
   175
 * field type resource id: r_vpbk_field_type_addrregionhome
williamr@4
   176
 * associated versit properties:
williamr@4
   177
 *     versit property name: EVPbkVersitNameADR
williamr@4
   178
 *     versit property subfield: EVPbkVersitSubFieldRegion
williamr@4
   179
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
   180
 * 
williamr@4
   181
 * field type description: Address Postal Code (home)
williamr@4
   182
 * field type resource id: r_vpbk_field_type_addrpostcodehome
williamr@4
   183
 * associated versit properties:
williamr@4
   184
 *     versit property name: EVPbkVersitNameADR
williamr@4
   185
 *     versit property subfield: EVPbkVersitSubFieldPostalCode
williamr@4
   186
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
   187
 * 
williamr@4
   188
 * field type description: Address Country (home)
williamr@4
   189
 * field type resource id: r_vpbk_field_type_addrcountryhome
williamr@4
   190
 * associated versit properties:
williamr@4
   191
 *     versit property name: EVPbkVersitNameADR
williamr@4
   192
 *     versit property subfield: EVPbkVersitSubFieldCountry
williamr@4
   193
 *     versit parameter: EVPbkVersitParamHOME 
williamr@4
   194
 * 
williamr@4
   195
 * field type description: Job title
williamr@4
   196
 * field type resource id: r_vpbk_field_type_jobtitle
williamr@4
   197
 * associated versit properties:
williamr@4
   198
 *     versit property name: EVPbkVersitNameTITLE
williamr@4
   199
 *     versit property name: EVPbkVersitNameROLE
williamr@4
   200
 * 
williamr@4
   201
 * field type description: Company name
williamr@4
   202
 * field type resource id: r_vpbk_field_type_companyname
williamr@4
   203
 * associated versit properties:
williamr@4
   204
 *     versit property name: EVPbkVersitNameORG
williamr@4
   205
 *     versit property subfield: EVPbkVersitSubFieldOrgName
williamr@4
   206
 * 
williamr@4
   207
 * field type description: Landline phone (work)
williamr@4
   208
 * field type resource id: r_vpbk_field_type_landphonework
williamr@4
   209
 * associated versit properties:
williamr@4
   210
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   211
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   212
 * associated exclude parameters: 
williamr@4
   213
 *     exclude parameter: EVPbkVersitParamFAX
williamr@4
   214
 *     exclude parameter: EVPbkVersitParamPAGER
williamr@4
   215
 *     exclude parameter: EVPbkVersitParamCELL
williamr@4
   216
 *     exclude parameter: EVPbkVersitParamVIDEO
williamr@4
   217
 *     exclude parameter: EVPbkVersitParamCAR 
williamr@4
   218
 * 
williamr@4
   219
 * field type description: Mobile phone (work)
williamr@4
   220
 * field type resource id: r_vpbk_field_type_mobilephonework
williamr@4
   221
 * associated versit properties:
williamr@4
   222
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   223
 *     versit parameter: EVPbkVersitParamCELL
williamr@4
   224
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   225
 * 
williamr@4
   226
 * field type description: Video number (work)
williamr@4
   227
 * field type resource id: r_vpbk_field_type_videonumberwork
williamr@4
   228
 * associated versit properties:
williamr@4
   229
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   230
 *     versit parameter: EVPbkVersitParamVIDEO
williamr@4
   231
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   232
 * 
williamr@4
   233
 * field type description: Fax number (work)
williamr@4
   234
 * field type resource id: r_vpbk_field_type_faxnumberwork
williamr@4
   235
 * associated versit properties:
williamr@4
   236
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   237
 *     versit parameter: EVPbkVersitParamFAX
williamr@4
   238
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   239
 * 
williamr@4
   240
 * field type description: VoIP (work)
williamr@4
   241
 * field type resource id: r_vpbk_field_type_voipwork
williamr@4
   242
 * associated versit properties:
williamr@4
   243
 *     versit property name: EVPbkVersitNameX
williamr@4
   244
 *     versit parameter: EVPbkVersitParamVOIP
williamr@4
   245
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   246
 *     versit property extension name: "X-SIP"
williamr@4
   247
 * 
williamr@4
   248
 * field type description: Email address (work)
williamr@4
   249
 * field type resource id: r_vpbk_field_type_emailwork
williamr@4
   250
 * associated versit properties:
williamr@4
   251
 *     versit property name: EVPbkVersitNameEMAIL
williamr@4
   252
 *     versit parameter: EVPbkVersitParamINTERNET
williamr@4
   253
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   254
 * 
williamr@4
   255
 * field type description: URL (work)
williamr@4
   256
 * field type resource id: r_vpbk_field_type_urlwork
williamr@4
   257
 * associated versit properties:
williamr@4
   258
 *     versit property name: EVPbkVersitNameURL
williamr@4
   259
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   260
 * 
williamr@4
   261
 * field type description: Address label (work)
williamr@4
   262
 * field type resource id: r_vpbk_field_type_addrlabelwork
williamr@4
   263
 * associated versit properties:
williamr@4
   264
 *     versit property name: EVPbkVersitNameLABEL
williamr@4
   265
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   266
 * 
williamr@4
   267
 * field type description: Address Postoffice (work)
williamr@4
   268
 * field type resource id: r_vpbk_field_type_addrpowork
williamr@4
   269
 * associated versit properties:
williamr@4
   270
 *     versit property name: EVPbkVersitNameADR
williamr@4
   271
 *     versit property subfield: EVPbkVersitSubFieldPostOfficeAddress
williamr@4
   272
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   273
 * 
williamr@4
   274
 * field type description: Address Extension (work)
williamr@4
   275
 * field type resource id: r_vpbk_field_type_addrextwork
williamr@4
   276
 * associated versit properties:
williamr@4
   277
 *     versit property name: EVPbkVersitNameADR
williamr@4
   278
 *     versit property subfield: EVPbkVersitSubFieldExtendedAddress
williamr@4
   279
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   280
 * 
williamr@4
   281
 * field type description: Address Street (work)
williamr@4
   282
 * field type resource id: r_vpbk_field_type_addrstreetwork
williamr@4
   283
 * associated versit properties:
williamr@4
   284
 *     versit property name: EVPbkVersitNameADR
williamr@4
   285
 *     versit property subfield: EVPbkVersitSubFieldStreet
williamr@4
   286
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   287
 * 
williamr@4
   288
 * field type description: Address Locality (work)
williamr@4
   289
 * field type resource id: r_vpbk_field_type_addrlocalwork
williamr@4
   290
 * associated versit properties:
williamr@4
   291
 *     versit property name: EVPbkVersitNameADR
williamr@4
   292
 *     versit property subfield: EVPbkVersitSubFieldLocality
williamr@4
   293
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   294
 * 
williamr@4
   295
 * field type description: Address Region (work)
williamr@4
   296
 * field type resource id: r_vpbk_field_type_addrregionwork
williamr@4
   297
 * associated versit properties:
williamr@4
   298
 *     versit property name: EVPbkVersitNameADR
williamr@4
   299
 *     versit property subfield: EVPbkVersitSubFieldRegion
williamr@4
   300
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   301
 * 
williamr@4
   302
 * field type description: Address Postal Code (work)
williamr@4
   303
 * field type resource id: r_vpbk_field_type_addrpostcodework
williamr@4
   304
 * associated versit properties:
williamr@4
   305
 *     versit property name: EVPbkVersitNameADR
williamr@4
   306
 *     versit property subfield: EVPbkVersitSubFieldPostalCode
williamr@4
   307
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   308
 * 
williamr@4
   309
 * field type description: Address Country (work)
williamr@4
   310
 * field type resource id: r_vpbk_field_type_addrcountrywork
williamr@4
   311
 * associated versit properties:
williamr@4
   312
 *     versit property name: EVPbkVersitNameADR
williamr@4
   313
 *     versit property subfield: EVPbkVersitSubFieldCountry
williamr@4
   314
 *     versit parameter: EVPbkVersitParamWORK 
williamr@4
   315
 * 
williamr@4
   316
 * field type description: Landline phone (general)
williamr@4
   317
 * field type resource id: r_vpbk_field_type_landphonegen
williamr@4
   318
 * associated versit properties:
williamr@4
   319
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   320
 * associated exclude parameters: 
williamr@4
   321
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   322
 *     exclude parameter: EVPbkVersitParamHOME
williamr@4
   323
 *     exclude parameter: EVPbkVersitParamFAX
williamr@4
   324
 *     exclude parameter: EVPbkVersitParamPAGER
williamr@4
   325
 *     exclude parameter: EVPbkVersitParamCELL
williamr@4
   326
 *     exclude parameter: EVPbkVersitParamVIDEO
williamr@4
   327
 *     exclude parameter: EVPbkVersitParamCAR 
williamr@4
   328
 * 
williamr@4
   329
 * field type description: Mobile phone (general)
williamr@4
   330
 * field type resource id: r_vpbk_field_type_mobilephonegen
williamr@4
   331
 * associated versit properties:
williamr@4
   332
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   333
 *     versit parameter: EVPbkVersitParamCELL 
williamr@4
   334
 * associated exclude parameters: 
williamr@4
   335
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   336
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   337
 * 
williamr@4
   338
 * field type description: Video number (general)
williamr@4
   339
 * field type resource id: r_vpbk_field_type_videonumbergen
williamr@4
   340
 * associated versit properties:
williamr@4
   341
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   342
 *     versit parameter: EVPbkVersitParamVIDEO 
williamr@4
   343
 * associated exclude parameters: 
williamr@4
   344
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   345
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   346
 * 
williamr@4
   347
 * field type description: Fax number (general)
williamr@4
   348
 * field type resource id: r_vpbk_field_type_faxnumbergen
williamr@4
   349
 * associated versit properties:
williamr@4
   350
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   351
 *     versit parameter: EVPbkVersitParamFAX 
williamr@4
   352
 * associated exclude parameters: 
williamr@4
   353
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   354
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   355
 * 
williamr@4
   356
 * field type description: VoIP (general)
williamr@4
   357
 * field type resource id: r_vpbk_field_type_voipgen
williamr@4
   358
 * associated versit properties:
williamr@4
   359
 *     versit property name: EVPbkVersitNameX
williamr@4
   360
 *     versit parameter: EVPbkVersitParamVOIP 
williamr@4
   361
 *     versit property extension name: "X-SIP"
williamr@4
   362
 * associated exclude parameters: 
williamr@4
   363
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   364
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   365
 * 
williamr@4
   366
 * field type description: PTT (POC)
williamr@4
   367
 * field type resource id: r_vpbk_field_type_poc
williamr@4
   368
 * associated versit properties:
williamr@4
   369
 *     versit property name: EVPbkVersitNameX
williamr@4
   370
 *     versit parameter: EVPbkVersitParamPOC 
williamr@4
   371
 *     versit property extension name: "X-SIP"
williamr@4
   372
 * 
williamr@4
   373
 * field type description: SWIS
williamr@4
   374
 * field type resource id: r_vpbk_field_type_swis
williamr@4
   375
 * associated versit properties:
williamr@4
   376
 *     versit property name: EVPbkVersitNameX
williamr@4
   377
 *     versit parameter: EVPbkVersitParamSWIS 
williamr@4
   378
 *     versit property extension name: "X-SIP"
williamr@4
   379
 *     
williamr@4
   380
 * field type description: SIP
williamr@4
   381
 * field type resource id: r_vpbk_field_type_sip
williamr@4
   382
 * associated versit properties:
williamr@4
   383
 *     versit property name: EVPbkVersitNameX
williamr@4
   384
 *     versit property extension name: "X-SIP"
williamr@4
   385
 * 
williamr@4
   386
 * field type description: Email address (general)
williamr@4
   387
 * field type resource id: r_vpbk_field_type_emailgen
williamr@4
   388
 * associated versit properties:
williamr@4
   389
 *     versit property name: EVPbkVersitNameEMAIL
williamr@4
   390
 *     versit parameter: EVPbkVersitParamINTERNET 
williamr@4
   391
 * associated exclude parameters: 
williamr@4
   392
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   393
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   394
 * 
williamr@4
   395
 * field type description: URL (general)
williamr@4
   396
 * field type resource id: r_vpbk_field_type_urlgen
williamr@4
   397
 * associated versit properties:
williamr@4
   398
 *     versit property name: EVPbkVersitNameURL
williamr@4
   399
 * associated exclude parameters: 
williamr@4
   400
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   401
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   402
 * 
williamr@4
   403
 * field type description: Address label (general)
williamr@4
   404
 * field type resource id: r_vpbk_field_type_addrlabelgen
williamr@4
   405
 * associated versit properties:
williamr@4
   406
 *     versit property name: EVPbkVersitNameLABEL
williamr@4
   407
 * associated exclude parameters: 
williamr@4
   408
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   409
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   410
 * 
williamr@4
   411
 * field type description: Address Postoffice (general)
williamr@4
   412
 * field type resource id: r_vpbk_field_type_addrpogen
williamr@4
   413
 * associated versit properties:
williamr@4
   414
 *     versit property name: EVPbkVersitNameADR
williamr@4
   415
 *     versit property subfield: EVPbkVersitSubFieldPostOfficeAddress
williamr@4
   416
 * associated exclude parameters: 
williamr@4
   417
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   418
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   419
 * 
williamr@4
   420
 * field type description: Address Extension (general)
williamr@4
   421
 * field type resource id: r_vpbk_field_type_addrextgen
williamr@4
   422
 * associated versit properties:
williamr@4
   423
 *     versit property name: EVPbkVersitNameADR
williamr@4
   424
 *     versit property subfield: EVPbkVersitSubFieldExtendedAddress
williamr@4
   425
 * associated exclude parameters: 
williamr@4
   426
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   427
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   428
 * 
williamr@4
   429
 * field type description: Address Street (general)
williamr@4
   430
 * field type resource id: r_vpbk_field_type_addrstreetgen
williamr@4
   431
 * associated versit properties:
williamr@4
   432
 *     versit property name: EVPbkVersitNameADR
williamr@4
   433
 *     versit property subfield: EVPbkVersitSubFieldStreet
williamr@4
   434
 * associated exclude parameters: 
williamr@4
   435
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   436
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   437
 * 
williamr@4
   438
 * field type description: Address Locality (general)
williamr@4
   439
 * field type resource id: r_vpbk_field_type_addrlocalgen
williamr@4
   440
 * associated versit properties:
williamr@4
   441
 *     versit property name: EVPbkVersitNameADR
williamr@4
   442
 *     versit property subfield: EVPbkVersitSubFieldLocality
williamr@4
   443
 * associated exclude parameters: 
williamr@4
   444
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   445
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   446
 * 
williamr@4
   447
 * field type description: Address Region (general)
williamr@4
   448
 * field type resource id: r_vpbk_field_type_addrregiongen
williamr@4
   449
 * associated versit properties:
williamr@4
   450
 *     versit property name: EVPbkVersitNameADR
williamr@4
   451
 *     versit property subfield: EVPbkVersitSubFieldRegion
williamr@4
   452
 * associated exclude parameters: 
williamr@4
   453
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   454
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   455
 * 
williamr@4
   456
 * field type description: Address Postal Code (general)
williamr@4
   457
 * field type resource id: r_vpbk_field_type_addrpostcodegen
williamr@4
   458
 * associated versit properties:
williamr@4
   459
 *     versit property name: EVPbkVersitNameADR
williamr@4
   460
 *     versit property subfield: EVPbkVersitSubFieldPostalCode
williamr@4
   461
 * associated exclude parameters: 
williamr@4
   462
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   463
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   464
 * 
williamr@4
   465
 * field type description: Address Country (general)
williamr@4
   466
 * field type resource id: r_vpbk_field_type_addrcountrygen
williamr@4
   467
 * associated versit properties:
williamr@4
   468
 *     versit property name: EVPbkVersitNameADR
williamr@4
   469
 *     versit property subfield: EVPbkVersitSubFieldCountry
williamr@4
   470
 * associated exclude parameters: 
williamr@4
   471
 *     exclude parameter: EVPbkVersitParamWORK
williamr@4
   472
 *     exclude parameter: EVPbkVersitParamHOME 
williamr@4
   473
 * 
williamr@4
   474
 * field type description: Pager number
williamr@4
   475
 * field type resource id: r_vpbk_field_type_pagernumber
williamr@4
   476
 * associated versit properties:
williamr@4
   477
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   478
 *     versit parameter: EVPbkVersitParamPAGER 
williamr@4
   479
 * 
williamr@4
   480
 * field type description: DTMF string
williamr@4
   481
 * field type resource id: r_vpbk_field_type_dtmfstring
williamr@4
   482
 * associated non-versit property: EVPbkNonVersitTypeDTMF
williamr@4
   483
 * 
williamr@4
   484
 * field type description: Wv(IM) address
williamr@4
   485
 * field type resource id: r_vpbk_field_type_wvaddress
williamr@4
   486
 * associated versit properties:
williamr@4
   487
 *     versit property name: EVPbkVersitNameX
williamr@4
   488
 *     versit property extension name: "X-WV-ID"
williamr@4
   489
 * 
williamr@4
   490
 * field type description: Date
williamr@4
   491
 * field type resource id: r_vpbk_field_type_date
williamr@4
   492
 * associated versit properties:
williamr@4
   493
 *     versit property name: EVPbkVersitNameBDAY
williamr@4
   494
 * 
williamr@4
   495
 * field type description: Note
williamr@4
   496
 * field type resource id: r_vpbk_field_type_note
williamr@4
   497
 * associated versit properties:
williamr@4
   498
 *     versit property name: EVPbkVersitNameNOTE
williamr@4
   499
 * 
williamr@4
   500
 * field type description: Thumbnail photo
williamr@4
   501
 * field type resource id: r_vpbk_field_type_thumbnailpic
williamr@4
   502
 * associated versit properties:
williamr@4
   503
 *     versit property name: EVPbkVersitNamePHOTO
williamr@4
   504
 *     versit property name: EVPbkVersitNameLOGO
williamr@4
   505
 * 
williamr@4
   506
 * field type description: Ring tone
williamr@4
   507
 * field type resource id: r_vpbk_field_type_ringtone
williamr@4
   508
 * associated non-versit property: EVPbkNonVersitTypeRingTone
williamr@4
   509
 * 
williamr@4
   510
 * field type description: Caller object image
williamr@4
   511
 * field type resource id: r_vpbk_field_type_callerobjimg
williamr@4
   512
 * associated non-versit property: EVPbkNonVersitTypeCodImage
williamr@4
   513
 * 
williamr@4
   514
 * field type description: Caller object text
williamr@4
   515
 * field type resource id: r_vpbk_field_type_callerobjtext
williamr@4
   516
 * associated non-versit property: EVPbkNonVersitTypeCodText
williamr@4
   517
 * 
williamr@4
   518
 * field type description: Middle name
williamr@4
   519
 * field type resource id: r_vpbk_field_type_middlename
williamr@4
   520
 * associated versit properties:
williamr@4
   521
 *     versit property name: EVPbkVersitNameN
williamr@4
   522
 *     versit property subfield: EVPbkVersitSubFieldAdditionalName
williamr@4
   523
 * 
williamr@4
   524
 * field type description: Department            
williamr@4
   525
 * field type resource id: r_vpbk_field_type_department
williamr@4
   526
 * associated versit properties:
williamr@4
   527
 *     versit property name: EVPbkVersitNameORG
williamr@4
   528
 *     versit property subfield: EVPbkVersitSubFieldOrgUnit
williamr@4
   529
 * 
williamr@4
   530
 * field type description: Assistant name
williamr@4
   531
 * field type resource id: r_vpbk_field_type_asstname
williamr@4
   532
 * associated versit properties:
williamr@4
   533
 *     versit property name: EVPbkVersitNameX
williamr@4
   534
 *     versit property extension name: "X-ASSISTANT"
williamr@4
   535
 * 
williamr@4
   536
 * field type description: Spouse
williamr@4
   537
 * field type resource id: r_vpbk_field_type_spouse
williamr@4
   538
 * associated versit properties:
williamr@4
   539
 *     versit property name: EVPbkVersitNameX
williamr@4
   540
 *     versit property extension name: "X-SPOUSE"
williamr@4
   541
 * 
williamr@4
   542
 * field type description: Children
williamr@4
   543
 * field type resource id: r_vpbk_field_type_children
williamr@4
   544
 * associated versit properties:
williamr@4
   545
 *     versit property name: EVPbkVersitNameX
williamr@4
   546
 *     versit property extension name: "X-CHILDREN"
williamr@4
   547
 * 
williamr@4
   548
 * field type description: Assistant phone
williamr@4
   549
 * field type resource id: r_vpbk_field_type_asstphone
williamr@4
   550
 * associated versit properties:
williamr@4
   551
 *     versit property name: EVPbkVersitNameX
williamr@4
   552
 *     versit property extension name: "X-ASSISTANT-TEL"
williamr@4
   553
 * 
williamr@4
   554
 * field type description: Car phone
williamr@4
   555
 * field type resource id: r_vpbk_field_type_carphone
williamr@4
   556
 * associated versit properties:
williamr@4
   557
 *     versit property name: EVPbkVersitNameTEL
williamr@4
   558
 *     versit parameter: EVPbkVersitParamCAR 
williamr@4
   559
 * 
williamr@4
   560
 * field type description: Anniversary
williamr@4
   561
 * field type resource id: r_vpbk_field_type_anniversary
williamr@4
   562
 * associated versit properties:
williamr@4
   563
 *     versit property name: EVPbkVersitNameX
williamr@4
   564
 *     versit property extension name: "X-ANNIVERSARY"
williamr@4
   565
 * 
williamr@4
   566
 * field type description: Class - Syncronization
williamr@4
   567
 * field type resource id: r_vpbk_field_type_syncclass
williamr@4
   568
 * associated versit properties:
williamr@4
   569
 *     versit property name: EVPbkVersitNameX
williamr@4
   570
 *     versit property extension name: "X-CLASS"
williamr@4
   571
 * 
williamr@4
   572
 * field type description: Location privacy indicator
williamr@4
   573
 * field type resource id: r_vpbk_field_type_locprivacy
williamr@4
   574
 * associated non-versit property: EVPbkNonVersitTypeLocationPrivacy
williamr@4
   575
 * 
williamr@4
   576
 * field type description: Generic label field type for folded view names and group labels
williamr@4
   577
 * field type resource id: r_vpbk_field_type_genlabel
williamr@4
   578
 * associated non-versit property: EVPbkNonVersitTypeGenericLabel
williamr@4
   579
 */
williamr@4
   580
williamr@4
   581
williamr@4
   582
/**
williamr@4
   583
 * A generic field type interface. 
williamr@4
   584
 *
williamr@4
   585
 * Field types are based on the Versit 2.1 standard.
williamr@4
   586
 */
williamr@4
   587
class MVPbkFieldType
williamr@4
   588
    {
williamr@4
   589
    public: // Interface
williamr@4
   590
williamr@4
   591
        /**
williamr@4
   592
         * Destructor. Clients must not destroy the field types they retrieve
williamr@4
   593
         * from the Virtual Phonebook interfaces.
williamr@4
   594
         */
williamr@4
   595
        virtual ~MVPbkFieldType() { }
williamr@4
   596
williamr@4
   597
        /**
williamr@4
   598
         * Returns the Versit properties mapped to this field type.
williamr@4
   599
         *
williamr@4
   600
         * @return Versit properties.
williamr@4
   601
         */
williamr@4
   602
        virtual TArray<TVPbkFieldVersitProperty> VersitProperties() const = 0;
williamr@4
   603
williamr@4
   604
        /**
williamr@4
   605
         * Returns the Versit parameters fields of this type should not have.
williamr@4
   606
         *
williamr@4
   607
         * @return Excluded parameters.
williamr@4
   608
         */
williamr@4
   609
        virtual const TVPbkFieldTypeParameters& ExcludedParameters() const = 0;
williamr@4
   610
williamr@4
   611
        /**
williamr@4
   612
         * Type name for field types not supported by the Versit 2.1 standard.
williamr@4
   613
         *
williamr@4
   614
         * @return A non-Versit type.
williamr@4
   615
         */
williamr@4
   616
        virtual TVPbkNonVersitFieldType NonVersitType() const = 0;
williamr@4
   617
williamr@4
   618
        /**
williamr@4
   619
         * Returns true if this field type is the same as aOtherType.
williamr@4
   620
         *
williamr@4
   621
         * @param aOtherType The type to compare.
williamr@4
   622
         * @return ETrue if the field types are the same.
williamr@4
   623
         */
williamr@4
   624
        virtual TBool IsSame(
williamr@4
   625
                const MVPbkFieldType& aOtherType ) const = 0;
williamr@4
   626
williamr@4
   627
        /**
williamr@4
   628
         * Returns true if this field type matches a Versit property.
williamr@4
   629
         *
williamr@4
   630
         * @param aMatchProperty A versit property to match against.
williamr@4
   631
         * @param aMatchPriority A matching priority. Priorities start
williamr@4
   632
         *                       from zero which is the highest priority.
williamr@4
   633
         *                       Priority is also a direct index to
williamr@4
   634
         *                       VersitProperties() array.
williamr@4
   635
         * @return ETrue if this field type matches aMatchProperty at
williamr@4
   636
         *         aMatchPriority. Returns always false if 
williamr@4
   637
         *         aMatchPriority >= VersitProperties().Count().
williamr@4
   638
         */
williamr@4
   639
        virtual TBool Matches(
williamr@4
   640
                const TVPbkFieldVersitProperty& aMatchProperty,
williamr@4
   641
                TInt aMatchPriority ) const = 0;
williamr@4
   642
williamr@4
   643
        /**
williamr@4
   644
         * Returns the field type resource id from VPbkEng.rsg
williamr@4
   645
         * that be used to identify a type.
williamr@4
   646
         *
williamr@4
   647
         * @return A field type resource id.
williamr@4
   648
         */
williamr@4
   649
        virtual TInt FieldTypeResId() const = 0;
williamr@4
   650
williamr@4
   651
        /**
williamr@4
   652
         * Returns an extension point for this interface or NULL.
williamr@4
   653
         *
williamr@4
   654
         * @param aExtensionUid no extensions defined currently.
williamr@4
   655
         * @return an extension point for this interface or NULL.
williamr@4
   656
         */
williamr@4
   657
        virtual TAny* FieldTypeExtension(TUid /*aExtensionUid*/) 
williamr@4
   658
                { return NULL; }
williamr@4
   659
    };
williamr@4
   660
williamr@4
   661
/**
williamr@4
   662
 * An interface for a list of field types.
williamr@4
   663
 *
williamr@4
   664
 */
williamr@4
   665
class MVPbkFieldTypeList
williamr@4
   666
    {
williamr@4
   667
    public: // Interface
williamr@4
   668
        /**
williamr@4
   669
         * Destructor.
williamr@4
   670
         */
williamr@4
   671
        virtual ~MVPbkFieldTypeList() { }
williamr@4
   672
williamr@4
   673
        /**
williamr@4
   674
         * Returns the number of field type objects in this list.
williamr@4
   675
         *
williamr@4
   676
         * @return A number of field types.
williamr@4
   677
         */
williamr@4
   678
        virtual TInt FieldTypeCount() const = 0;
williamr@4
   679
williamr@4
   680
        /**
williamr@4
   681
         * Returns the field type object at aIndex. 
williamr@4
   682
         *
williamr@4
   683
         * The objects are not in any specific order.
williamr@4
   684
         *
williamr@4
   685
         * @precond aIndex >= 0 && aIndex < FieldTypeCount()
williamr@4
   686
         * @param aIndex An index of a field type.
williamr@4
   687
         * @return A reference to Virtual Phonebook field type.
williamr@4
   688
         *         The reference is valid for the lifetime of this object.
williamr@4
   689
         */
williamr@4
   690
        virtual const MVPbkFieldType& FieldTypeAt(
williamr@4
   691
                TInt aIndex ) const = 0;
williamr@4
   692
williamr@4
   693
        /**
williamr@4
   694
         * Returns true if this list contains aFieldType.
williamr@4
   695
         *
williamr@4
   696
         * @param aFieldType The field type to look for.
williamr@4
   697
         * @return ETrue if the list contains the field type.
williamr@4
   698
         */
williamr@4
   699
        virtual TBool ContainsSame(
williamr@4
   700
                const MVPbkFieldType& aFieldType ) const = 0;
williamr@4
   701
williamr@4
   702
        /**
williamr@4
   703
         * Returns the maximum matching priority held by this field type list.
williamr@4
   704
         *
williamr@4
   705
         * @return A maximum match priority.
williamr@4
   706
         */
williamr@4
   707
        virtual TInt MaxMatchPriority() const = 0;
williamr@4
   708
williamr@4
   709
        /**
williamr@4
   710
         * Returns a matching field type in this list or NULL if no match is
williamr@4
   711
         * found.
williamr@4
   712
         *
williamr@4
   713
         * @param aMatchProperty A Versit property to match.
williamr@4
   714
         * @param aMatchPriority A match priority.
williamr@4
   715
         * @return A matching field type.
williamr@4
   716
         */
williamr@4
   717
        virtual const MVPbkFieldType* FindMatch(
williamr@4
   718
                const TVPbkFieldVersitProperty& aMatchProperty,
williamr@4
   719
                TInt aMatchPriority ) const = 0;
williamr@4
   720
williamr@4
   721
        /**
williamr@4
   722
         * Returns a matching field type in this list or NULL if no match is 
williamr@4
   723
         * found.
williamr@4
   724
         *
williamr@4
   725
         * @param aNonVersitType A non Versit field type to match.
williamr@4
   726
         * @return A matching field type.
williamr@4
   727
         */
williamr@4
   728
        virtual const MVPbkFieldType* FindMatch(
williamr@4
   729
                TVPbkNonVersitFieldType aNonVersitType ) const = 0;
williamr@4
   730
williamr@4
   731
        /**
williamr@4
   732
         * Returns the field type corresponding to field type resource id.
williamr@4
   733
         *
williamr@4
   734
         * If no match is found returns NULL. The resource id aFieldTypeResId
williamr@4
   735
         * corresponds to the VPBK_FIELD_TYPE types in VPbkEng.rsg.
williamr@4
   736
         *
williamr@4
   737
         * @param aFieldTypeResId The field type resource id.
williamr@4
   738
         * @return The corresponding field type.
williamr@4
   739
         */
williamr@4
   740
        virtual const MVPbkFieldType* Find( TInt /*aFieldTypeResId*/ ) const
williamr@4
   741
            { return NULL; }
williamr@4
   742
williamr@4
   743
        /**
williamr@4
   744
         * Returns an extension point for this interface or NULL.
williamr@4
   745
         *
williamr@4
   746
         * @param aExtensionUid no extensions defined currently.
williamr@4
   747
         * @return an extension point for this interface or NULL.
williamr@4
   748
         */
williamr@4
   749
        virtual TAny* FieldTypeListExtension(TUid /*aExtensionUid*/) 
williamr@4
   750
                { return NULL; }
williamr@4
   751
    };
williamr@4
   752
williamr@4
   753
/**
williamr@4
   754
 * An interface for composites of MVPbkFieldTypeList objects.
williamr@4
   755
 */
williamr@4
   756
class MVPbkMultiFieldTypeList : public MVPbkFieldTypeList
williamr@4
   757
    {
williamr@4
   758
    public: // Interface
williamr@4
   759
williamr@4
   760
        /**
williamr@4
   761
         * Destructor.
williamr@4
   762
         */
williamr@4
   763
        virtual ~MVPbkMultiFieldTypeList() { }
williamr@4
   764
williamr@4
   765
        /**
williamr@4
   766
         * Adds aTypeList to this composite by reference. New lists are 
williamr@4
   767
         * appended to the end of current lists, starting from index
williamr@4
   768
         * FieldTypeCount().
williamr@4
   769
         *
williamr@4
   770
         * @param aTypelist A field type list to append.
williamr@4
   771
         */
williamr@4
   772
        virtual void AppendL( const MVPbkFieldTypeList& aTypeList ) = 0;
williamr@4
   773
williamr@4
   774
        /**
williamr@4
   775
         * Removes aTypeList from this composite.
williamr@4
   776
         *
williamr@4
   777
         * @param aTypelist A field type list to remove.
williamr@4
   778
         */
williamr@4
   779
        virtual void Remove( const MVPbkFieldTypeList& aTypeList ) = 0;
williamr@4
   780
williamr@4
   781
        /**
williamr@4
   782
         * Returns an extension point for this interface or NULL.
williamr@4
   783
         *
williamr@4
   784
         * @param aExtensionUid no extensions defined currently.
williamr@4
   785
         * @return an extension point for this interface or NULL.
williamr@4
   786
         */
williamr@4
   787
        virtual TAny* MultiFieldTypeListExtension(TUid /*aExtensionUid*/) 
williamr@4
   788
                { return NULL; }
williamr@4
   789
    };
williamr@4
   790
williamr@4
   791
williamr@4
   792
namespace VPbkFieldTypeList {
williamr@4
   793
williamr@4
   794
// --------------------------------------------------------------------------
williamr@4
   795
// IsSame
williamr@4
   796
// Compares two field type lists. Fieldtypes must be from same 
williamr@4
   797
// contact manager. Uses MVPbkFieldType::IsSame. 
williamr@4
   798
// --------------------------------------------------------------------------
williamr@4
   799
//
williamr@4
   800
IMPORT_C TBool IsSame( const MVPbkFieldTypeList& aLeft, 
williamr@4
   801
        const MVPbkFieldTypeList& aRight );
williamr@4
   802
williamr@4
   803
}
williamr@4
   804
#endif // MVPBKFIELDTYPE_H
williamr@4
   805
williamr@4
   806
//End of file