2 * Copyright (c) 2004-2007 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: Data types for the view definition
19 #ifndef VPBKCONTACTVIEW_HRH
20 #define VPBKCONTACTVIEW_HRH
23 * Default view id value for view definition.
25 #define KVPbkDefaultViewId -1
28 * Sort policy types for the contact view definition.
30 enum TVPbkContactViewSortPolicy
32 /// Use this together with EVPbkCompositeView if the subviews must
33 /// be showed in order i.e. show all contacts from subView1 and after
34 /// that all contacts from subView2
35 EVPbkOrderedContactView = 0,
36 /// Leaf views are usually always sorted. If this is used together
37 /// with EVPbkCompositeView then the composite merges contacts from
39 EVPbkSortedContactView,
40 /// Used to create an unsorted view which means that contacts are
41 /// showed in the order they have been saved in the store. Not all stores
42 /// support this type. You can never use this in EVPbkCompositeView type
43 /// of view. You can not use this in a subview of the composite view whose
44 /// policy is EVPbkSortedContactView.
45 EVPbkUnsortedContactView
49 * Contact view types for the contact view definition.
51 enum TVPbkContactViewType
53 /// Type for the contact leaf view. There is zero subviews.
55 /// Type for the group leaf view. There is zero subviews.
57 /// Type for the folding view. Folding view definition
58 /// should usually have one subview definition that is used
59 /// to create a view when folding view is expanded.
61 /// Use this type if the view can have several subviews. If
62 /// there is no subviews then it's interpreted as a placeholder.
67 * Defines the sharing of the contact view.
69 * A store can have a server that shares the same view for multiple clients
70 * for saving resources. On the other hand the view can be created only
71 * for one client's purpose e.g using a special sort order and in this case
72 * the view is a local view.
74 enum TVPbkContactViewSharing
76 /// Default value for VPBK_CONTACT_VIEW definition viewSharing.
77 /// Don't set this for CVPbkContactViewDefinition.
78 EVPbkViewSharingUndefined,
79 /// Inform store that is should create a handle to shared view
80 /// that can be used by multiple clients.
82 /// Inform store that it should create a local view that
83 /// is only used by single client.
88 * Contact view flags for the contact view definition.
90 enum TVPbkContactViewFlag
93 EVPbkContactViewFlagsNone = 0x00000000,
94 EVPbkExcludeEmptyGroups = 0x00000001
98 * In the following filter list the supported contact view filters
101 * Some stores support native and fast filtering for certain filters but
102 * part of the filters can cause performance problems with large contact
104 * E.g. Contacts Model store has optimized filters for:
105 * -EVPbkContactViewFilterEmail
106 * -EVPbkContactViewFilterPhoneNumber
107 * -EVPbkContactViewFilterMobileNumber
108 * -EVPbkContactViewFilterFaxNumber
109 * -EVPbkContactViewFilterRingingTone
111 * The filters can be combined by using the VPbkContactViewFilterBuilder
112 * services. The combined filter ORs the filters; the returned contacts
113 * match to at least one of the filters.
115 * @see VPbkContactViewFilterBuilder
117 enum TVPbkContactViewFilter
119 /// The view is unfiltered; it includes all the contacts
120 EVPbkContactViewFilterNone = 0,
121 /// The filter includes items that have an email address
122 EVPbkContactViewFilterEmail = 1,
123 /// The filter includes items that have a phone number
124 /// (the definition of phone number includes general/mobile/etc. number)
125 EVPbkContactViewFilterPhoneNumber,
126 /// The filter includes items that have a mobile phone number
127 EVPbkContactViewFilterMobileNumber,
128 /// The filter includes items that have a fax number
129 EVPbkContactViewFilterFaxNumber,
130 /// The filter includes items that have a ringing tone defined
131 EVPbkContactViewFilterRingingTone,
132 /// The filter includes items that have a video number
133 EVPbkContactViewFilterVideoNumber = 1000,
134 /// The filter includes items that have a pager number
135 EVPbkContactViewFilterPagerNumber,
136 /// The filter includes items that have a DTMF field
137 EVPbkContactViewFilterDTMF,
138 /// The filter includes items that have a VoIP number
139 EVPbkContactViewFilterVoIP,
140 /// The filter includes items that are TopContact
141 EVPbkContactViewFilterTopContact
145 * The version of the contact view definition version structure
147 enum TVPbkContactViewVersion
149 EVPbkContactViewV1 = 1,
154 #endif // VPBKCONTACTVIEW_HRH