williamr@4: /* williamr@4: * Copyright (c) 2004-2007 Nokia Corporation and/or its subsidiary(-ies). williamr@4: * All rights reserved. williamr@4: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@4: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@4: * williamr@4: * Initial Contributors: williamr@4: * Nokia Corporation - initial contribution. williamr@4: * williamr@4: * Contributors: williamr@4: * williamr@4: * Description: A generic field type interface. williamr@4: * williamr@4: */ williamr@4: williamr@4: williamr@4: #ifndef MVPBKFIELDTYPE_H williamr@4: #define MVPBKFIELDTYPE_H williamr@4: williamr@4: williamr@4: // INCLUDES williamr@4: #include williamr@4: #include williamr@4: williamr@4: // FORWARD DECLARATIONS williamr@4: class TVPbkFieldVersitProperty; williamr@4: class TVPbkFieldTypeParameters; williamr@4: williamr@4: // CLASS DECLARATIONS williamr@4: williamr@4: /** williamr@4: * Virtual Phonebook field types. williamr@4: * williamr@4: * The following structure documents the field types the Virtual Phonebook williamr@4: * supports. The structure describes each field type and the type information williamr@4: * which is associated to the field type. More information on the field type williamr@4: * model can be acquired from the vCard specification. For the field type williamr@4: * definitions @see VPbkFieldType.hrh. williamr@4: * williamr@4: * williamr@4: * field type description: Last name williamr@4: * field type resource id: r_vpbk_field_type_lastname williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameN williamr@4: * versit property subfield: EVPbkVersitSubFieldFamilyName williamr@4: * versit property name: EVPbkVersitNameFN williamr@4: * williamr@4: * field type description: Last name reading williamr@4: * field type resource id: r_vpbk_field_type_lastnamereading williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameSOUND williamr@4: * versit property subfield: EVPbkVersitSubFieldFamilyNamePronunciation williamr@4: * williamr@4: * field type description: First name williamr@4: * field type resource id: r_vpbk_field_type_firstname williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameN williamr@4: * versit property subfield: EVPbkVersitSubFieldGivenName williamr@4: * williamr@4: * field type description: First name reading williamr@4: * field type resource id: r_vpbk_field_type_firstnamereading williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameSOUND williamr@4: * versit property subfield: EVPbkVersitSubFieldGivenNamePronunciation williamr@4: * williamr@4: * field type description: Prefix williamr@4: * field type resource id: r_vpbk_field_type_prefix williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameN williamr@4: * versit property subfield: EVPbkVersitSubFieldNamePrefix williamr@4: * williamr@4: * field type description: Suffix williamr@4: * field type resource id: r_vpbk_field_type_suffix williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameN williamr@4: * versit property subfield: EVPbkVersitSubFieldNameSuffix williamr@4: * williamr@4: * field type description: Nick name williamr@4: * field type resource id: r_vpbk_field_type_secondname williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit property extension name: "X-NICKNAME" williamr@4: * williamr@4: * field type description: Landline phone (home) williamr@4: * field type resource id: r_vpbk_field_type_landphonehome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamFAX williamr@4: * exclude parameter: EVPbkVersitParamPAGER williamr@4: * exclude parameter: EVPbkVersitParamCELL williamr@4: * exclude parameter: EVPbkVersitParamVIDEO williamr@4: * exclude parameter: EVPbkVersitParamCAR williamr@4: * williamr@4: * field type description: Mobile phone (home) williamr@4: * field type resource id: r_vpbk_field_type_mobilephonehome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamCELL williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Video number (home) williamr@4: * field type resource id: r_vpbk_field_type_videonumberhome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamVIDEO williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Fax number (home) williamr@4: * field type resource id: r_vpbk_field_type_faxnumberhome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamFAX williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: VoIP (home) williamr@4: * field type resource id: r_vpbk_field_type_voiphome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit parameter: EVPbkVersitParamVOIP williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * versit property extension name: "X-SIP" williamr@4: * williamr@4: * field type description: Email address (home) williamr@4: * field type resource id: r_vpbk_field_type_emailhome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameEMAIL williamr@4: * versit parameter: EVPbkVersitParamINTERNET williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: URL (home) williamr@4: * field type resource id: r_vpbk_field_type_urlhome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameURL williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address label (home) williamr@4: * field type resource id: r_vpbk_field_type_addrlabelhome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameLABEL williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Postoffice (home) williamr@4: * field type resource id: r_vpbk_field_type_addrpohome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldPostOfficeAddress williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Extension (home) williamr@4: * field type resource id: r_vpbk_field_type_addrexthome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldExtendedAddress williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Street (home) williamr@4: * field type resource id: r_vpbk_field_type_addrstreethome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldStreet williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Locality (home) williamr@4: * field type resource id: r_vpbk_field_type_addrlocalhome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldLocality williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Region (home) williamr@4: * field type resource id: r_vpbk_field_type_addrregionhome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldRegion williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Postal Code (home) williamr@4: * field type resource id: r_vpbk_field_type_addrpostcodehome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldPostalCode williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Country (home) williamr@4: * field type resource id: r_vpbk_field_type_addrcountryhome williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldCountry williamr@4: * versit parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Job title williamr@4: * field type resource id: r_vpbk_field_type_jobtitle williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTITLE williamr@4: * versit property name: EVPbkVersitNameROLE williamr@4: * williamr@4: * field type description: Company name williamr@4: * field type resource id: r_vpbk_field_type_companyname williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameORG williamr@4: * versit property subfield: EVPbkVersitSubFieldOrgName williamr@4: * williamr@4: * field type description: Landline phone (work) williamr@4: * field type resource id: r_vpbk_field_type_landphonework williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamFAX williamr@4: * exclude parameter: EVPbkVersitParamPAGER williamr@4: * exclude parameter: EVPbkVersitParamCELL williamr@4: * exclude parameter: EVPbkVersitParamVIDEO williamr@4: * exclude parameter: EVPbkVersitParamCAR williamr@4: * williamr@4: * field type description: Mobile phone (work) williamr@4: * field type resource id: r_vpbk_field_type_mobilephonework williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamCELL williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: Video number (work) williamr@4: * field type resource id: r_vpbk_field_type_videonumberwork williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamVIDEO williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: Fax number (work) williamr@4: * field type resource id: r_vpbk_field_type_faxnumberwork williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamFAX williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: VoIP (work) williamr@4: * field type resource id: r_vpbk_field_type_voipwork williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit parameter: EVPbkVersitParamVOIP williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * versit property extension name: "X-SIP" williamr@4: * williamr@4: * field type description: Email address (work) williamr@4: * field type resource id: r_vpbk_field_type_emailwork williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameEMAIL williamr@4: * versit parameter: EVPbkVersitParamINTERNET williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: URL (work) williamr@4: * field type resource id: r_vpbk_field_type_urlwork williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameURL williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: Address label (work) williamr@4: * field type resource id: r_vpbk_field_type_addrlabelwork williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameLABEL williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: Address Postoffice (work) williamr@4: * field type resource id: r_vpbk_field_type_addrpowork williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldPostOfficeAddress williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: Address Extension (work) williamr@4: * field type resource id: r_vpbk_field_type_addrextwork williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldExtendedAddress williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: Address Street (work) williamr@4: * field type resource id: r_vpbk_field_type_addrstreetwork williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldStreet williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: Address Locality (work) williamr@4: * field type resource id: r_vpbk_field_type_addrlocalwork williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldLocality williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: Address Region (work) williamr@4: * field type resource id: r_vpbk_field_type_addrregionwork williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldRegion williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: Address Postal Code (work) williamr@4: * field type resource id: r_vpbk_field_type_addrpostcodework williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldPostalCode williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: Address Country (work) williamr@4: * field type resource id: r_vpbk_field_type_addrcountrywork williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldCountry williamr@4: * versit parameter: EVPbkVersitParamWORK williamr@4: * williamr@4: * field type description: Landline phone (general) williamr@4: * field type resource id: r_vpbk_field_type_landphonegen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * exclude parameter: EVPbkVersitParamFAX williamr@4: * exclude parameter: EVPbkVersitParamPAGER williamr@4: * exclude parameter: EVPbkVersitParamCELL williamr@4: * exclude parameter: EVPbkVersitParamVIDEO williamr@4: * exclude parameter: EVPbkVersitParamCAR williamr@4: * williamr@4: * field type description: Mobile phone (general) williamr@4: * field type resource id: r_vpbk_field_type_mobilephonegen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamCELL williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Video number (general) williamr@4: * field type resource id: r_vpbk_field_type_videonumbergen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamVIDEO williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Fax number (general) williamr@4: * field type resource id: r_vpbk_field_type_faxnumbergen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamFAX williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: VoIP (general) williamr@4: * field type resource id: r_vpbk_field_type_voipgen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit parameter: EVPbkVersitParamVOIP williamr@4: * versit property extension name: "X-SIP" williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: PTT (POC) williamr@4: * field type resource id: r_vpbk_field_type_poc williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit parameter: EVPbkVersitParamPOC williamr@4: * versit property extension name: "X-SIP" williamr@4: * williamr@4: * field type description: SWIS williamr@4: * field type resource id: r_vpbk_field_type_swis williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit parameter: EVPbkVersitParamSWIS williamr@4: * versit property extension name: "X-SIP" williamr@4: * williamr@4: * field type description: SIP williamr@4: * field type resource id: r_vpbk_field_type_sip williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit property extension name: "X-SIP" williamr@4: * williamr@4: * field type description: Email address (general) williamr@4: * field type resource id: r_vpbk_field_type_emailgen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameEMAIL williamr@4: * versit parameter: EVPbkVersitParamINTERNET williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: URL (general) williamr@4: * field type resource id: r_vpbk_field_type_urlgen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameURL williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address label (general) williamr@4: * field type resource id: r_vpbk_field_type_addrlabelgen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameLABEL williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Postoffice (general) williamr@4: * field type resource id: r_vpbk_field_type_addrpogen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldPostOfficeAddress williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Extension (general) williamr@4: * field type resource id: r_vpbk_field_type_addrextgen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldExtendedAddress williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Street (general) williamr@4: * field type resource id: r_vpbk_field_type_addrstreetgen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldStreet williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Locality (general) williamr@4: * field type resource id: r_vpbk_field_type_addrlocalgen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldLocality williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Region (general) williamr@4: * field type resource id: r_vpbk_field_type_addrregiongen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldRegion williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Postal Code (general) williamr@4: * field type resource id: r_vpbk_field_type_addrpostcodegen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldPostalCode williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Address Country (general) williamr@4: * field type resource id: r_vpbk_field_type_addrcountrygen williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameADR williamr@4: * versit property subfield: EVPbkVersitSubFieldCountry williamr@4: * associated exclude parameters: williamr@4: * exclude parameter: EVPbkVersitParamWORK williamr@4: * exclude parameter: EVPbkVersitParamHOME williamr@4: * williamr@4: * field type description: Pager number williamr@4: * field type resource id: r_vpbk_field_type_pagernumber williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamPAGER williamr@4: * williamr@4: * field type description: DTMF string williamr@4: * field type resource id: r_vpbk_field_type_dtmfstring williamr@4: * associated non-versit property: EVPbkNonVersitTypeDTMF williamr@4: * williamr@4: * field type description: Wv(IM) address williamr@4: * field type resource id: r_vpbk_field_type_wvaddress williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit property extension name: "X-WV-ID" williamr@4: * williamr@4: * field type description: Date williamr@4: * field type resource id: r_vpbk_field_type_date williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameBDAY williamr@4: * williamr@4: * field type description: Note williamr@4: * field type resource id: r_vpbk_field_type_note williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameNOTE williamr@4: * williamr@4: * field type description: Thumbnail photo williamr@4: * field type resource id: r_vpbk_field_type_thumbnailpic williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNamePHOTO williamr@4: * versit property name: EVPbkVersitNameLOGO williamr@4: * williamr@4: * field type description: Ring tone williamr@4: * field type resource id: r_vpbk_field_type_ringtone williamr@4: * associated non-versit property: EVPbkNonVersitTypeRingTone williamr@4: * williamr@4: * field type description: Caller object image williamr@4: * field type resource id: r_vpbk_field_type_callerobjimg williamr@4: * associated non-versit property: EVPbkNonVersitTypeCodImage williamr@4: * williamr@4: * field type description: Caller object text williamr@4: * field type resource id: r_vpbk_field_type_callerobjtext williamr@4: * associated non-versit property: EVPbkNonVersitTypeCodText williamr@4: * williamr@4: * field type description: Middle name williamr@4: * field type resource id: r_vpbk_field_type_middlename williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameN williamr@4: * versit property subfield: EVPbkVersitSubFieldAdditionalName williamr@4: * williamr@4: * field type description: Department williamr@4: * field type resource id: r_vpbk_field_type_department williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameORG williamr@4: * versit property subfield: EVPbkVersitSubFieldOrgUnit williamr@4: * williamr@4: * field type description: Assistant name williamr@4: * field type resource id: r_vpbk_field_type_asstname williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit property extension name: "X-ASSISTANT" williamr@4: * williamr@4: * field type description: Spouse williamr@4: * field type resource id: r_vpbk_field_type_spouse williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit property extension name: "X-SPOUSE" williamr@4: * williamr@4: * field type description: Children williamr@4: * field type resource id: r_vpbk_field_type_children williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit property extension name: "X-CHILDREN" williamr@4: * williamr@4: * field type description: Assistant phone williamr@4: * field type resource id: r_vpbk_field_type_asstphone williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit property extension name: "X-ASSISTANT-TEL" williamr@4: * williamr@4: * field type description: Car phone williamr@4: * field type resource id: r_vpbk_field_type_carphone williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameTEL williamr@4: * versit parameter: EVPbkVersitParamCAR williamr@4: * williamr@4: * field type description: Anniversary williamr@4: * field type resource id: r_vpbk_field_type_anniversary williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit property extension name: "X-ANNIVERSARY" williamr@4: * williamr@4: * field type description: Class - Syncronization williamr@4: * field type resource id: r_vpbk_field_type_syncclass williamr@4: * associated versit properties: williamr@4: * versit property name: EVPbkVersitNameX williamr@4: * versit property extension name: "X-CLASS" williamr@4: * williamr@4: * field type description: Location privacy indicator williamr@4: * field type resource id: r_vpbk_field_type_locprivacy williamr@4: * associated non-versit property: EVPbkNonVersitTypeLocationPrivacy williamr@4: * williamr@4: * field type description: Generic label field type for folded view names and group labels williamr@4: * field type resource id: r_vpbk_field_type_genlabel williamr@4: * associated non-versit property: EVPbkNonVersitTypeGenericLabel williamr@4: */ williamr@4: williamr@4: williamr@4: /** williamr@4: * A generic field type interface. williamr@4: * williamr@4: * Field types are based on the Versit 2.1 standard. williamr@4: */ williamr@4: class MVPbkFieldType williamr@4: { williamr@4: public: // Interface williamr@4: williamr@4: /** williamr@4: * Destructor. Clients must not destroy the field types they retrieve williamr@4: * from the Virtual Phonebook interfaces. williamr@4: */ williamr@4: virtual ~MVPbkFieldType() { } williamr@4: williamr@4: /** williamr@4: * Returns the Versit properties mapped to this field type. williamr@4: * williamr@4: * @return Versit properties. williamr@4: */ williamr@4: virtual TArray VersitProperties() const = 0; williamr@4: williamr@4: /** williamr@4: * Returns the Versit parameters fields of this type should not have. williamr@4: * williamr@4: * @return Excluded parameters. williamr@4: */ williamr@4: virtual const TVPbkFieldTypeParameters& ExcludedParameters() const = 0; williamr@4: williamr@4: /** williamr@4: * Type name for field types not supported by the Versit 2.1 standard. williamr@4: * williamr@4: * @return A non-Versit type. williamr@4: */ williamr@4: virtual TVPbkNonVersitFieldType NonVersitType() const = 0; williamr@4: williamr@4: /** williamr@4: * Returns true if this field type is the same as aOtherType. williamr@4: * williamr@4: * @param aOtherType The type to compare. williamr@4: * @return ETrue if the field types are the same. williamr@4: */ williamr@4: virtual TBool IsSame( williamr@4: const MVPbkFieldType& aOtherType ) const = 0; williamr@4: williamr@4: /** williamr@4: * Returns true if this field type matches a Versit property. williamr@4: * williamr@4: * @param aMatchProperty A versit property to match against. williamr@4: * @param aMatchPriority A matching priority. Priorities start williamr@4: * from zero which is the highest priority. williamr@4: * Priority is also a direct index to williamr@4: * VersitProperties() array. williamr@4: * @return ETrue if this field type matches aMatchProperty at williamr@4: * aMatchPriority. Returns always false if williamr@4: * aMatchPriority >= VersitProperties().Count(). williamr@4: */ williamr@4: virtual TBool Matches( williamr@4: const TVPbkFieldVersitProperty& aMatchProperty, williamr@4: TInt aMatchPriority ) const = 0; williamr@4: williamr@4: /** williamr@4: * Returns the field type resource id from VPbkEng.rsg williamr@4: * that be used to identify a type. williamr@4: * williamr@4: * @return A field type resource id. williamr@4: */ williamr@4: virtual TInt FieldTypeResId() const = 0; williamr@4: williamr@4: /** williamr@4: * Returns an extension point for this interface or NULL. williamr@4: * williamr@4: * @param aExtensionUid no extensions defined currently. williamr@4: * @return an extension point for this interface or NULL. williamr@4: */ williamr@4: virtual TAny* FieldTypeExtension(TUid /*aExtensionUid*/) williamr@4: { return NULL; } williamr@4: }; williamr@4: williamr@4: /** williamr@4: * An interface for a list of field types. williamr@4: * williamr@4: */ williamr@4: class MVPbkFieldTypeList williamr@4: { williamr@4: public: // Interface williamr@4: /** williamr@4: * Destructor. williamr@4: */ williamr@4: virtual ~MVPbkFieldTypeList() { } williamr@4: williamr@4: /** williamr@4: * Returns the number of field type objects in this list. williamr@4: * williamr@4: * @return A number of field types. williamr@4: */ williamr@4: virtual TInt FieldTypeCount() const = 0; williamr@4: williamr@4: /** williamr@4: * Returns the field type object at aIndex. williamr@4: * williamr@4: * The objects are not in any specific order. williamr@4: * williamr@4: * @precond aIndex >= 0 && aIndex < FieldTypeCount() williamr@4: * @param aIndex An index of a field type. williamr@4: * @return A reference to Virtual Phonebook field type. williamr@4: * The reference is valid for the lifetime of this object. williamr@4: */ williamr@4: virtual const MVPbkFieldType& FieldTypeAt( williamr@4: TInt aIndex ) const = 0; williamr@4: williamr@4: /** williamr@4: * Returns true if this list contains aFieldType. williamr@4: * williamr@4: * @param aFieldType The field type to look for. williamr@4: * @return ETrue if the list contains the field type. williamr@4: */ williamr@4: virtual TBool ContainsSame( williamr@4: const MVPbkFieldType& aFieldType ) const = 0; williamr@4: williamr@4: /** williamr@4: * Returns the maximum matching priority held by this field type list. williamr@4: * williamr@4: * @return A maximum match priority. williamr@4: */ williamr@4: virtual TInt MaxMatchPriority() const = 0; williamr@4: williamr@4: /** williamr@4: * Returns a matching field type in this list or NULL if no match is williamr@4: * found. williamr@4: * williamr@4: * @param aMatchProperty A Versit property to match. williamr@4: * @param aMatchPriority A match priority. williamr@4: * @return A matching field type. williamr@4: */ williamr@4: virtual const MVPbkFieldType* FindMatch( williamr@4: const TVPbkFieldVersitProperty& aMatchProperty, williamr@4: TInt aMatchPriority ) const = 0; williamr@4: williamr@4: /** williamr@4: * Returns a matching field type in this list or NULL if no match is williamr@4: * found. williamr@4: * williamr@4: * @param aNonVersitType A non Versit field type to match. williamr@4: * @return A matching field type. williamr@4: */ williamr@4: virtual const MVPbkFieldType* FindMatch( williamr@4: TVPbkNonVersitFieldType aNonVersitType ) const = 0; williamr@4: williamr@4: /** williamr@4: * Returns the field type corresponding to field type resource id. williamr@4: * williamr@4: * If no match is found returns NULL. The resource id aFieldTypeResId williamr@4: * corresponds to the VPBK_FIELD_TYPE types in VPbkEng.rsg. williamr@4: * williamr@4: * @param aFieldTypeResId The field type resource id. williamr@4: * @return The corresponding field type. williamr@4: */ williamr@4: virtual const MVPbkFieldType* Find( TInt /*aFieldTypeResId*/ ) const williamr@4: { return NULL; } williamr@4: williamr@4: /** williamr@4: * Returns an extension point for this interface or NULL. williamr@4: * williamr@4: * @param aExtensionUid no extensions defined currently. williamr@4: * @return an extension point for this interface or NULL. williamr@4: */ williamr@4: virtual TAny* FieldTypeListExtension(TUid /*aExtensionUid*/) williamr@4: { return NULL; } williamr@4: }; williamr@4: williamr@4: /** williamr@4: * An interface for composites of MVPbkFieldTypeList objects. williamr@4: */ williamr@4: class MVPbkMultiFieldTypeList : public MVPbkFieldTypeList williamr@4: { williamr@4: public: // Interface williamr@4: williamr@4: /** williamr@4: * Destructor. williamr@4: */ williamr@4: virtual ~MVPbkMultiFieldTypeList() { } williamr@4: williamr@4: /** williamr@4: * Adds aTypeList to this composite by reference. New lists are williamr@4: * appended to the end of current lists, starting from index williamr@4: * FieldTypeCount(). williamr@4: * williamr@4: * @param aTypelist A field type list to append. williamr@4: */ williamr@4: virtual void AppendL( const MVPbkFieldTypeList& aTypeList ) = 0; williamr@4: williamr@4: /** williamr@4: * Removes aTypeList from this composite. williamr@4: * williamr@4: * @param aTypelist A field type list to remove. williamr@4: */ williamr@4: virtual void Remove( const MVPbkFieldTypeList& aTypeList ) = 0; williamr@4: williamr@4: /** williamr@4: * Returns an extension point for this interface or NULL. williamr@4: * williamr@4: * @param aExtensionUid no extensions defined currently. williamr@4: * @return an extension point for this interface or NULL. williamr@4: */ williamr@4: virtual TAny* MultiFieldTypeListExtension(TUid /*aExtensionUid*/) williamr@4: { return NULL; } williamr@4: }; williamr@4: williamr@4: williamr@4: namespace VPbkFieldTypeList { williamr@4: williamr@4: // -------------------------------------------------------------------------- williamr@4: // IsSame williamr@4: // Compares two field type lists. Fieldtypes must be from same williamr@4: // contact manager. Uses MVPbkFieldType::IsSame. williamr@4: // -------------------------------------------------------------------------- williamr@4: // williamr@4: IMPORT_C TBool IsSame( const MVPbkFieldTypeList& aLeft, williamr@4: const MVPbkFieldTypeList& aRight ); williamr@4: williamr@4: } williamr@4: #endif // MVPBKFIELDTYPE_H williamr@4: williamr@4: //End of file