ui/uiengine/medialistwrapper/inc/glxtitlefetcher.h
author hgs
Mon, 17 May 2010 13:35:26 +0530
changeset 42 5e1df1b52eb3
permissions -rw-r--r--
201019_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
42
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
     1
/*
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
     2
* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
     3
* All rights reserved.
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
     8
*
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
     9
* Initial Contributors:
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    11
*
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    12
* Contributors:
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    13
*
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    14
* Description:    Title fetcher 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    15
*
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    16
*/
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    17
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    18
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    19
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    20
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    21
#ifndef GLXTITLEFETCHER_H
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    22
#define GLXTITLEFETCHER_H
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    23
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    24
#include <e32base.h>
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    25
#include <coedef.h>
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    26
#include <w32std.h>
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    27
#include <mglxmedialistobserver.h>
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    28
#include "mglxtitlefetcherobserver.h"
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    29
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    30
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    31
class CMPXCollectionPath;
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    32
class MGlxMediaList;                   
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    33
class CGlxDefaultAttributeContext;
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    34
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    35
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    36
class CGlxTitleFetcher : public CBase, public MGlxMediaListObserver
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    37
    {
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    38
public:
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    39
    /**
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    40
     * Constructs an instance of CGlxTitleFetcher and initiates obtaining
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    41
     * a title 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    42
     *
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    43
     * @param aObserver Observer of this list 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    44
     * @param aPath The current path by which to obtain the title 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    45
     */
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    46
    static CGlxTitleFetcher*  NewL(MGlxTitleFetcherObserver& aObserver,
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    47
                                    CMPXCollectionPath* aPath);
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    48
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    49
	IMPORT_C virtual ~CGlxTitleFetcher();
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    50
                        
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    51
    // From MGlxMediaListObserver                    
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    52
	virtual void HandleItemAddedL(TInt aStartIndex, TInt aEndIndex,
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    53
		MGlxMediaList* aList);
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    54
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    55
    /**
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    56
     * Notification that media object is now available for an item 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    57
     *
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    58
     * @param Index of the item 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    59
     */
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    60
	virtual void HandleMediaL(TInt /*aListIndex*/, MGlxMediaList* /*aList*/) {};
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    61
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    62
    /**
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    63
     * Notification that media item was removed from the list
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    64
     *
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    65
     * @param aStartIndex First item that was removed 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    66
     * @param aEndIndex Last item that was removed
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    67
     */
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    68
	virtual void HandleItemRemovedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/,
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    69
		MGlxMediaList* /*aList*/) {};
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    70
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    71
    /**
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    72
     * Notification that media item was changed
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    73
     *
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    74
     * @param aItemIndexes Indexes of items that were changed
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    75
     */
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    76
	virtual void HandleItemModifiedL(const RArray<TInt>& /*aItemIndexes*/, 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    77
		MGlxMediaList* /*aList*/) {};
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    78
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    79
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    80
    /**
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    81
     * Notification that an attribute is available
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    82
     *
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    83
     * @param aItemIndex Index of the for which the thumbnail is available
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    84
     * @param aAttributes Array of attributes that have become available
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    85
     * @param aList List that this callback relates to 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    86
     */
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    87
	virtual void HandleAttributesAvailableL(TInt aItemIndex, 	
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    88
		const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList);	
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    89
			
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    90
    /**
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    91
     * Notification that focus has moved
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    92
     *
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    93
     * @param aType the direction of the focus change
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    94
     * @param aNewIndex the new index after the focus change
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    95
     * @param aOldIndex the old index before the focus change
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    96
     * @param aList List that this callback relates to
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    97
     */
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    98
	virtual void HandleFocusChangedL(NGlxListDefs::TFocusChangeType /*aType*/, 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
    99
	    TInt /*aNewIndex*/, TInt /*aOldIndex*/, MGlxMediaList* /*aList*/) {};
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   100
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   101
	/**
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   102
	 * Notification that an item has been selected/deselected
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   103
	 *
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   104
	 * @param aIndex Index of the item that has been selected/deselected
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   105
	 * @param aSelected Boolean to indicate selection/deselection
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   106
	 * @param aList List that the selection relates to
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   107
	 */
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   108
	virtual void HandleItemSelectedL(TInt /*aIndex*/, TBool /*aSelected*/, 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   109
	              MGlxMediaList* /*aList*/) {};
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   110
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   111
	/**
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   112
	 * Notification from the collection.  E.g. Items added/modified/deleted and progress notifications
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   113
	 *
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   114
	 * @param aMessage Message notification from the collection
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   115
	 * @param aList List that the notification relates to
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   116
	 */
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   117
	virtual void HandleMessageL(const CMPXMessage& /*aMessage*/, 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   118
	                            MGlxMediaList* /*aList*/) {};
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   119
	
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   120
private:
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   121
                        
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   122
    CGlxTitleFetcher(MGlxTitleFetcherObserver& aObserver,
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   123
                     CMPXCollectionPath* aPath);
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   124
    
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   125
    void ConstructL();
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   126
    
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   127
private:
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   128
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   129
    MGlxTitleFetcherObserver& iObserver;
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   130
    CMPXCollectionPath* iPath;
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   131
    TMPXItemId iPathId;
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   132
    MGlxMediaList*  iBackMediaList; 
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   133
    CGlxDefaultAttributeContext* iContext;                  
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   134
    };
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   135
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   136
5e1df1b52eb3 201019_01
hgs
parents:
diff changeset
   137
#endif // GLXTITLEFETCHER_H