/*
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: 
*     This file is partial copy of PbkFields.hrh version 3.0.
      Identifiers are renamed having trailing _30 
*     This file is used as a reference data for compatibility test  
*
*/


////////////////////////////////////////////////////////////
// Common section for C++ and resource compilation


// Type of Phonebook field IDs.
typedef TInt TPbkFieldId_30;

// Type of Phonebook group IDs.
typedef TInt TPbkFieldGroupId_30;

/// Phonebook field type ordering group
typedef TInt TPbkOrderingGroup_30;

/// Phonebook field type ordering item
typedef TInt TPbkOrderingItem_30;

/// Phonebook additional field type ordering item
typedef TInt TPbkAdditionalOrderingItem_30;

/// Phonebook add new field ordering
typedef TInt TPbkAddItemOrdering_30;


//  CONSTANTS  

// Unique Phonebook field type ids
#define EPbkFieldIdNone_30                             0x00
#define EPbkFieldIdLastName_30                         0x01
#define EPbkFieldIdFirstName_30                        0x02
#define EPbkFieldIdPhoneNumberGeneral_30               0x03
#define EPbkFieldIdPhoneNumberStandard_30              EPbkFieldIdPhoneNumberGeneral_30
#define EPbkFieldIdPhoneNumberHome_30                  0x04
#define EPbkFieldIdPhoneNumberWork_30                  0x05
#define EPbkFieldIdPhoneNumberMobile_30                0x06
#define EPbkFieldIdFaxNumber_30                        0x07
#define EPbkFieldIdPagerNumber_30                      0x08
#define EPbkFieldIdEmailAddress_30                     0x09
#define EPbkFieldIdPostalAddress_30                    0x0a
#define EPbkFieldIdURL_30                              0x0b
#define EPbkFieldIdJobTitle_30                         0x0c
#define EPbkFieldIdCompanyName_30                      0x0d
#define EPbkFieldIdCompanyAddress_30                   EPbkFieldIdPostalAddress_30
#define EPbkFieldIdDTMFString_30                       0x0f
#define EPbkFieldIdDate_30                             0x10
#define EPbkFieldIdNote_30                             0x11
#define EPbkFieldIdPicture_30                          0x12
#define EPbkFieldIdThumbnailImage_30                   0x13
#define EPbkFieldIdVoiceTagIndication_30               0x14
#define EPbkFieldIdSpeedDialIndication_30              0x15
#define EPbkFieldIdPersonalRingingToneIndication_30    0x16
#define EPbkFieldIdPOBox_30                            0x17
#define EPbkFieldIdExtendedAddress_30                  0x18
#define EPbkFieldIdStreetAddress_30                    0x19
#define EPbkFieldIdPostalCode_30                       0x1a
#define EPbkFieldIdCity_30                             0x1b
#define EPbkFieldIdState_30                            0x1c
#define EPbkFieldIdCountry_30                          0x1d
#define EPbkFieldIdWVID_30                             0x1e
#define EPbkFieldIdSecondName_30                       0x1f
#define EPbkFieldIdPhoneNumberVideo_30                 0x20
#define EPbkFieldIdLastNameReading_30                  0x21
#define EPbkFieldIdFirstNameReading_30                 0x22
#define EPbkFieldIdLocationIdIndication_30             0x23
#define EPbkFieldIdVOIP_30                             0x24
#define EPbkFieldIdPushToTalk_30                       0x25
#define EPbkFieldIdShareView_30                        0x26
#define EPbkFieldIdSIPID_30                            0x27
#define EPbkFieldIdCodTextID_30                        0x28
#define EPbkFieldIdCodImageID_30                       0x29
#define EPbkFieldIdPrefix_30                           0x30
#define EPbkFieldIdSuffix_30                           0x31

#define KPbkFieldIdMask_30                             0xff

// Unique Phonebook field type group ids
#define EPbkFieldGroupIdNone_30                        0x00
#define EPbkFieldGroupIdPostalAddress_30               0x01
#define EPbkFieldGroupIdHomeAddress_30                 0x02
#define EPbkFieldGroupIdCompanyAddress_30              0x03
#define EPbkFieldGroupIdFirstName_30                   0x04
#define EPbkFieldGroupIdLastName_30                    0x05

/// Maximum lengths for fields
#define KPbkNameMaxLength_30                           50
#define KPbkURLMaxLength_30                            1000
#define KPbkAddressMaxLength_30                        250
#define KPbkAddressSubFieldMaxLength_30                50
#define KPbkPostalCodeMaxLength_30                     20
#define KPbkVOIPMaxLength_30                           100
#define KPbkPOCMaxLength_30                            100
#define KPbkSIPMaxLength_30                            100
#define KPbkEMailAddressMaxLength_30                   150
#define KPbkDTMFMaxLength_30                           60
#define KPbkNoteMaxLength_30                           1000
#define KPbkCodTextMaxLength_30                        1000
#define KPbkMaxFileName_30                             256 // must match KMaxFileName in E32std.h
#define KPbkMDOMaxLength_30                            10

// KPbkPhoneNumberMaxLength is deprecated.
// Phonebook uses value from central repository
#define KPbkPhoneNumberMaxLength_30                    50  

// Definitions for minimum and maximum date values
#define KPbkDateMinDay_30                              0   // from 0 to 27/28/29/_30 inclusive
#define KPbkDateMinMonth_30                            0   // from 0 to 11 inclusive
#define KPbkDateMinYear_30                             0001
#define KPbkDateMaxDay_30                              30  // from 0 to 27/28/29/_30 inclusive
#define KPbkDateMaxMonth_30                            11  // from 0 to 11 inclusive
#define KPbkDateMaxYear_30                             2100


/**
 * Phonebook field type information: 
 * maximum number of fields per contact entry.
 */
enum TPbkFieldMultiplicity_30
    {
    EPbkFieldMultiplicityOne_30  = 1,
    EPbkFieldMultiplicityMany_30 = 2
    };

/**
 * Phonebook field type information: editing mode of field.
 */
enum TPbkFieldEditMode_30
    {
    EPbkFieldEditModeAlpha_30 = 1,
    EPbkFieldEditModeNumeric_30,
    EPbkFieldEditModeDate_30,
    EPbkFieldEditModeSelector_30,
    EPbkFieldEditModeTBD_30,
    EPbkFieldEditModeLatinOnly_30
    };


/**
 * Phonebook field type information: default editing character case.
 */
enum TPbkFieldDefaultCase_30
    {
    EPbkFieldDefaultCaseNone_30 = 0,
    EPbkFieldDefaultCaseLower_30,
    EPbkFieldDefaultCaseText_30 
    };

/**
 * Phonebook field type information: editor control type.
 */
enum TPbkFieldCtrlType_30
    {
    EPbkFieldCtrlTypeNone_30 = 0,
    EPbkFieldCtrlTypeTextEditor_30,
    EPbkFieldCtrlTypeDateEditor_30,
    EPbkFieldCtrlTypeNumberEditor_30
    };

/**
 * Phonebook field location information: work/home/none.
 */
enum TPbkFieldLocation_30
    {
    EPbkFieldLocationNone_30 = 0,
    EPbkFieldLocationHome_30,
    EPbkFieldLocationWork_30
    };

/**
 * The storage type of data in Versit.dll.
 * Note that corresponding Uids exist in 
 * vuid.h.
 */
enum TPbkVersitStorageType_30
    {
    EPbkVersitPropertyNULL_30 = 0,
    EPbkVersitPropertyHBufC_30,
    EPbkVersitPropertyBinary_30,
    EPbkVersitPropertyCDesCArray_30,
    EPbkVersitPropertyMultiDateTime_30,
    EPbkVersitPropertyDateTime_30,
    EPbkVersitPropertyInt_30
    };

////////////////////////////////////////////////////////////
// Phonebook field type information flags

/// No flags set
#define KPbkFieldFlagNull_30               0x00000000
/// Field is included in the default template
#define KPbkFieldFlagDefTemplate_30        0x00000001
/// Field can be added with "Add item" function
#define KPbkFieldFlagUserCanAddField_30    0x00000002
/// field is not visible in editors
#define KPbkFieldFlagDisableEdit_30        0x00000004

// End of File
