epoc32/include/mw/mclfpostfilter.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
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.
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@4
     5
* under the terms of "Eclipse Public License v1.0"
williamr@2
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description: 
williamr@2
    15
*
williamr@2
    16
*/
williamr@2
    17
williamr@2
    18
williamr@2
    19
#ifndef MCLFPOSTFILTER_H
williamr@2
    20
#define MCLFPOSTFILTER_H
williamr@2
    21
williamr@2
    22
//  INCLUDES
williamr@2
    23
#include <e32std.h>
williamr@2
    24
williamr@2
    25
// FORWARD DECLARATIONS
williamr@2
    26
class MCLFPostFilterExt;
williamr@2
    27
class MCLFItem;
williamr@2
    28
williamr@2
    29
// CLASS DECLARATION
williamr@2
    30
williamr@2
    31
/**
williamr@2
    32
*  Post filter interface for Content Listing Framework.
williamr@2
    33
*  With this interface client you can add own post filter to
williamr@2
    34
*  exclude items from list model.<br><br>
williamr@2
    35
*  Example:
williamr@2
    36
*  @code
williamr@2
    37
*  // This example filters items by drive letter:
williamr@2
    38
*  // Items that are in phone memory are included to the list model.
williamr@2
    39
*  // All other items will be filtered.
williamr@2
    40
*  void CMyFilter::FilterItemsL( const TArray<MCLFItem*>& aItemList,
williamr@2
    41
*                                RPointerArray<MCLFItem>& aFilteredItemList )
williamr@2
    42
*      {
williamr@2
    43
*      TCharF phoneMemory( PathInfo::PhoneMemoryRootPath()[0] );
williamr@2
    44
*      TInt count( aItemList.Count() );
williamr@2
    45
*      for( TInt i = 0 ; i < count ; ++i )
williamr@2
    46
*          {
williamr@2
    47
*          TPtrC ptr;
williamr@2
    48
*          MCLFItem* item = aItemList[i];
williamr@2
    49
*          TInt error( item->GetField( ECLFFieldIdDrive, ptr ) );
williamr@2
    50
*          if( error == KErrNone )
williamr@2
    51
*              {
williamr@2
    52
*              TCharF memory( ptr[0] );
williamr@2
    53
*              if( memory == phoneMemory )
williamr@2
    54
*                  {
williamr@2
    55
*                  aFilteredItemList.AppendL( item );
williamr@2
    56
*                  }
williamr@2
    57
*              }
williamr@2
    58
*          }
williamr@2
    59
*      }
williamr@2
    60
*  @endcode
williamr@2
    61
*  @lib ContentListingFramework.lib
williamr@2
    62
*  @since S60 3.1
williamr@2
    63
*/
williamr@2
    64
class MCLFPostFilter
williamr@2
    65
    {
williamr@2
    66
    public: // New functions
williamr@2
    67
williamr@2
    68
        /**
williamr@2
    69
        * Abstract method to filter source list. This method is called when
williamr@2
    70
        * the filtering process is executed by list model refresh.
williamr@2
    71
        * @since S60 3.1
williamr@2
    72
        * @param aItemList Source list, contains all items that are in
williamr@2
    73
        *        the list model
williamr@2
    74
        * @param aFilteredItemList Filtered/destination list, contains all items
williamr@2
    75
                 that will be in the list model after filtering.
williamr@2
    76
        */
williamr@2
    77
        virtual void FilterItemsL( const TArray<MCLFItem*>& aItemList,
williamr@2
    78
                                   RPointerArray<MCLFItem>& aFilteredItemList ) = 0;
williamr@2
    79
williamr@2
    80
    protected:
williamr@2
    81
williamr@2
    82
        /**
williamr@2
    83
        * Destructor.
williamr@2
    84
        */
williamr@2
    85
        virtual ~MCLFPostFilter() {}
williamr@2
    86
williamr@2
    87
    private: // Extension interface
williamr@2
    88
williamr@2
    89
        /**
williamr@2
    90
        * This member is internal and not intended for use.
williamr@2
    91
        */
williamr@2
    92
        virtual MCLFPostFilterExt* Extension() { return NULL; }
williamr@2
    93
williamr@2
    94
williamr@2
    95
    };
williamr@2
    96
williamr@2
    97
#endif      // MCLFPOSTFILTER_H
williamr@2
    98
williamr@2
    99
// End of File