epoc32/include/app/VPbkContactView.hrh
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 /*
     2 * Copyright (c) 2004-2007 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     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".
     8 *
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    11 *
    12 * Contributors:
    13 *
    14 * Description:  Data types for the view definition
    15 *
    16 */
    17 
    18 
    19 #ifndef VPBKCONTACTVIEW_HRH
    20 #define VPBKCONTACTVIEW_HRH
    21 
    22 /**
    23  * Default view id value for view definition.
    24  */
    25 #define KVPbkDefaultViewId -1
    26 
    27 /**
    28  * Sort policy types for the contact view definition.
    29  */
    30 enum TVPbkContactViewSortPolicy
    31     {
    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
    38     /// sorted subviews.
    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
    46     };
    47 
    48 /**
    49  * Contact view types for the contact view definition.
    50  */
    51 enum TVPbkContactViewType
    52     {
    53     /// Type for the contact leaf view. There is zero subviews.
    54     EVPbkContactsView,
    55     /// Type for the group leaf view. There is zero subviews.
    56     EVPbkGroupsView,
    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.
    60     EVPbkFoldingView,
    61     /// Use this type if the view can have several subviews. If
    62     /// there is no subviews then it's interpreted as a placeholder.
    63     EVPbkCompositeView
    64     };
    65 
    66 /**
    67  * Defines the sharing of the contact view. 
    68  *
    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.
    73  */
    74 enum TVPbkContactViewSharing
    75     {
    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.
    81     EVPbkSharedView,
    82     /// Inform store that it should create a local view that
    83     /// is only used by single client.
    84     EVPbkLocalView
    85     };
    86     
    87 /**
    88  * Contact view flags for the contact view definition. 
    89  */
    90 enum TVPbkContactViewFlag
    91     {
    92     /// No flags
    93     EVPbkContactViewFlagsNone   = 0x00000000,
    94     EVPbkExcludeEmptyGroups     = 0x00000001
    95     };
    96 
    97 /**
    98  * In the following filter list the supported contact view filters
    99  * are defined.
   100  *
   101  * Some stores support native and fast filtering for certain filters but
   102  * part of the filters can cause performance problems with large contact
   103  * number.
   104  * E.g. Contacts Model store has optimized filters for:
   105  * -EVPbkContactViewFilterEmail
   106  * -EVPbkContactViewFilterPhoneNumber
   107  * -EVPbkContactViewFilterMobileNumber
   108  * -EVPbkContactViewFilterFaxNumber
   109  * -EVPbkContactViewFilterRingingTone
   110  *
   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.
   114  *
   115  * @see VPbkContactViewFilterBuilder
   116  */
   117 enum TVPbkContactViewFilter
   118     {
   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
   142     };
   143 
   144 /**
   145  * The version of the contact view definition version structure
   146  */
   147 enum TVPbkContactViewVersion
   148     {
   149     EVPbkContactViewV1 = 1,
   150     EVPbkContactViewV2,
   151     EVPbkContactViewV3
   152     };
   153     
   154 #endif // VPBKCONTACTVIEW_HRH
   155 
   156 // End of File