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: Data types for the view definition williamr@4: * williamr@4: */ williamr@4: williamr@4: williamr@4: #ifndef VPBKCONTACTVIEW_HRH williamr@4: #define VPBKCONTACTVIEW_HRH williamr@4: williamr@4: /** williamr@4: * Default view id value for view definition. williamr@4: */ williamr@4: #define KVPbkDefaultViewId -1 williamr@4: williamr@4: /** williamr@4: * Sort policy types for the contact view definition. williamr@4: */ williamr@4: enum TVPbkContactViewSortPolicy williamr@4: { williamr@4: /// Use this together with EVPbkCompositeView if the subviews must williamr@4: /// be showed in order i.e. show all contacts from subView1 and after williamr@4: /// that all contacts from subView2 williamr@4: EVPbkOrderedContactView = 0, williamr@4: /// Leaf views are usually always sorted. If this is used together williamr@4: /// with EVPbkCompositeView then the composite merges contacts from williamr@4: /// sorted subviews. williamr@4: EVPbkSortedContactView, williamr@4: /// Used to create an unsorted view which means that contacts are williamr@4: /// showed in the order they have been saved in the store. Not all stores williamr@4: /// support this type. You can never use this in EVPbkCompositeView type williamr@4: /// of view. You can not use this in a subview of the composite view whose williamr@4: /// policy is EVPbkSortedContactView. williamr@4: EVPbkUnsortedContactView williamr@4: }; williamr@4: williamr@4: /** williamr@4: * Contact view types for the contact view definition. williamr@4: */ williamr@4: enum TVPbkContactViewType williamr@4: { williamr@4: /// Type for the contact leaf view. There is zero subviews. williamr@4: EVPbkContactsView, williamr@4: /// Type for the group leaf view. There is zero subviews. williamr@4: EVPbkGroupsView, williamr@4: /// Type for the folding view. Folding view definition williamr@4: /// should usually have one subview definition that is used williamr@4: /// to create a view when folding view is expanded. williamr@4: EVPbkFoldingView, williamr@4: /// Use this type if the view can have several subviews. If williamr@4: /// there is no subviews then it's interpreted as a placeholder. williamr@4: EVPbkCompositeView williamr@4: }; williamr@4: williamr@4: /** williamr@4: * Defines the sharing of the contact view. williamr@4: * williamr@4: * A store can have a server that shares the same view for multiple clients williamr@4: * for saving resources. On the other hand the view can be created only williamr@4: * for one client's purpose e.g using a special sort order and in this case williamr@4: * the view is a local view. williamr@4: */ williamr@4: enum TVPbkContactViewSharing williamr@4: { williamr@4: /// Default value for VPBK_CONTACT_VIEW definition viewSharing. williamr@4: /// Don't set this for CVPbkContactViewDefinition. williamr@4: EVPbkViewSharingUndefined, williamr@4: /// Inform store that is should create a handle to shared view williamr@4: /// that can be used by multiple clients. williamr@4: EVPbkSharedView, williamr@4: /// Inform store that it should create a local view that williamr@4: /// is only used by single client. williamr@4: EVPbkLocalView williamr@4: }; williamr@4: williamr@4: /** williamr@4: * Contact view flags for the contact view definition. williamr@4: */ williamr@4: enum TVPbkContactViewFlag williamr@4: { williamr@4: /// No flags williamr@4: EVPbkContactViewFlagsNone = 0x00000000, williamr@4: EVPbkExcludeEmptyGroups = 0x00000001 williamr@4: }; williamr@4: williamr@4: /** williamr@4: * In the following filter list the supported contact view filters williamr@4: * are defined. williamr@4: * williamr@4: * Some stores support native and fast filtering for certain filters but williamr@4: * part of the filters can cause performance problems with large contact williamr@4: * number. williamr@4: * E.g. Contacts Model store has optimized filters for: williamr@4: * -EVPbkContactViewFilterEmail williamr@4: * -EVPbkContactViewFilterPhoneNumber williamr@4: * -EVPbkContactViewFilterMobileNumber williamr@4: * -EVPbkContactViewFilterFaxNumber williamr@4: * -EVPbkContactViewFilterRingingTone williamr@4: * williamr@4: * The filters can be combined by using the VPbkContactViewFilterBuilder williamr@4: * services. The combined filter ORs the filters; the returned contacts williamr@4: * match to at least one of the filters. williamr@4: * williamr@4: * @see VPbkContactViewFilterBuilder williamr@4: */ williamr@4: enum TVPbkContactViewFilter williamr@4: { williamr@4: /// The view is unfiltered; it includes all the contacts williamr@4: EVPbkContactViewFilterNone = 0, williamr@4: /// The filter includes items that have an email address williamr@4: EVPbkContactViewFilterEmail = 1, williamr@4: /// The filter includes items that have a phone number williamr@4: /// (the definition of phone number includes general/mobile/etc. number) williamr@4: EVPbkContactViewFilterPhoneNumber, williamr@4: /// The filter includes items that have a mobile phone number williamr@4: EVPbkContactViewFilterMobileNumber, williamr@4: /// The filter includes items that have a fax number williamr@4: EVPbkContactViewFilterFaxNumber, williamr@4: /// The filter includes items that have a ringing tone defined williamr@4: EVPbkContactViewFilterRingingTone, williamr@4: /// The filter includes items that have a video number williamr@4: EVPbkContactViewFilterVideoNumber = 1000, williamr@4: /// The filter includes items that have a pager number williamr@4: EVPbkContactViewFilterPagerNumber, williamr@4: /// The filter includes items that have a DTMF field williamr@4: EVPbkContactViewFilterDTMF, williamr@4: /// The filter includes items that have a VoIP number williamr@4: EVPbkContactViewFilterVoIP, williamr@4: /// The filter includes items that are TopContact williamr@4: EVPbkContactViewFilterTopContact williamr@4: }; williamr@4: williamr@4: /** williamr@4: * The version of the contact view definition version structure williamr@4: */ williamr@4: enum TVPbkContactViewVersion williamr@4: { williamr@4: EVPbkContactViewV1 = 1, williamr@4: EVPbkContactViewV2, williamr@4: EVPbkContactViewV3 williamr@4: }; williamr@4: williamr@4: #endif // VPBKCONTACTVIEW_HRH williamr@4: williamr@4: // End of File