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