⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smbmusicapmainplayerfilterlistview.h

📁 symbian
💻 H
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 2006-2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPMainPlayerFilterListView.h
//
// Description: 
//  CSmbMusicAPMainPlayerFilterListView class header.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     	|撪梕
//--------------+---------------+----------------------------------------------
//2006/06/12    |SDNA 彫椦  	| 怴婯嶌惉
//2006/06/26    |SDNA 嶳壀  	| 愝寁廋惓(FilterViewManager)
//2006/07/13    |SDNA 嶳壀  	| 僒儉僱僀儖昞帵丄暋悢慖戰儌乕僪側偳SkonListBox偺懏惈曄峏張棟傪嫟捠壔
//2006/07/13    |SDNA 嶳壀  	| 奺夋柺偛偲偵攈惗僋儔僗嶌惉
//2006/07/13    |SDNA 嶳壀  	| 僒僽儊僯儏乕丄僉乕僈僀僟儞僗偺張棟傪FilterViewManager偐傜堏摦
//2006/07/15	|SDNA 嶳壀		| 僞僀僩儖僶乕張棟
//2006/08/12	|SDNA 嶳壀		|FilterView娭楢僋儔僗偺refactoring
//2006/08/14	|SDNA 嶳壀		|夋柺掕媊偺奼挘
//2006/08/23	|SDNA 嶳壀		|傾僋僥傿僽僼僅乕僇僗梡偺儊僜僢僪傪捛壛
//2006/08/28	|SDNA 嶳壀		|僉乕僈僀僟儞僗昞帵偺廋惓
//2006/09/03	|SDNA 嶳壀		|搊榐丒嶍彍偺儌僨儖曄峏捠抦張棟傪捛壛
//2006/09/04	|SDNA 壀嶳		|FilterProcess偺僉儍儞僙儖儊僜僢僪傪捛壛
//2006/09/12	|SDNA 壀嶳		|TRK6892懳墳
//2006/09/14	|SDNA彫椦仌壀嶳 |TRK9092懳墳
//2007/07/12	|SEMCJ 暯壀		|FinishProgress()(堷悢偁傝)傪捛壛
//2007/09/04	|SEMCJ暯壀		|D_82400012386懳墳
//2007/09/11	|SEMCJ暯壀		|D_82400013891懳墳
//2007/09/17	|SEMCJ暯壀		|D_82400014801懳墳

#ifndef __SMBMUSICAPMAINPLAYERFILTERLISTVIEW_H__
#define __SMBMUSICAPMAINPLAYERFILTERLISTVIEW_H__

#include <coedef.h>
#include <FjWcdmaMpDef.h>
#include <FjAfView.h>
#include <GulIcon.h>
#include <SkonControl.h>
#include <SkonTextLabel.h>
#include <SkonSubMenu.h>
#include <SkonVirtualSpaceScreen.h>
#include <SkonMusicTitleBar.h>
#include <SkonMusicListBox.h>
#include <SkonMusicListBoxObserver.h>

#include <SkonMusicListBoxObserver.h>
#include <SkonControlObserver.h>

#include <SmbCommonDef.h>
#include <SmbPGMusic.h>
#include <SmbPGMusic.hrh>
#include <SmbAfCommandBase.h>
#include <SmbLayout.hrh>

#include <SmbMusicAPSyncEngineDef.h>
#include "SmbMusicAPMainPlayerCommonDef.h"
#include "SmbMusicAPMainPlayerFilterListModel.h"
#include "SmbMusicAPMainPlayerFilterProcess.h"
#include "SmbMusicAPMainPlayerFilterSyncServerController.h"
#include "SmbMusicAPMainPlayerDialogObserver.h"
#include "SmbMusicAPMainPlayerPlayHandler.h"

USING_NAMESPACE_DCM

SEMCJ_NAMESPACE_BEGIN

//奺夋柺偵懳墳偡傞ID偺掕媊
#define KSmbMusicAPMainPlayerInvalidUidValue		0x80000000
#define KSmbMusicAPMainPlayerMusicMenuUidValue		0x80000001
#define KSmbMusicAPMainPlayerGenreListUidValue		0x80000002
#define KSmbMusicAPMainPlayerArtistListUidValue		0x80000003
#define KSmbMusicAPMainPlayerAlbumListUidValue		0x80000004
#define KSmbMusicAPMainPlayerSongListUidValue		0x80000005
#define KSmbMusicAPMainPlayerPLTypeListUidValue		0x80000006
#define KSmbMusicAPMainPlayerPLListUidValue			0x80000007
#define KSmbMusicAPMainPlayerPLSongListUidValue		0x80000008
#define KSmbMusicAPMainPlayerMemTypeListUidValue	0x80000009
//2006.08,14 夋柺掕媊偺奼挘
#define KSmbMusicAPMainPlayerOriginalPLListUidValue	0x8000000A
#define KSmbMusicAPMainPlayerImportPLListUidValue	0x8000000B
#define KSmbMusicAPMainPlayerPLSelectUidValue		0x8000000C
#define KSmbMusicAPMainPlayerSongSelectUidValue		0x8000000D
#define KSmbMusicAPMainPlayerPLSongOrderUidValue	0x8000000E
//Add-S PTX-824懳墳
#define KSmbMusicAPMainPlayerWMAPLListUidValue		0x8000000F
//Add-E PTX-824懳墳

const TUid KSmbMusicAPMainPlayerInvalidUid			=	{KSmbMusicAPMainPlayerInvalidUidValue};		///< 晄惓ID
const TUid KSmbMusicAPMainPlayerMusicMenuViewUid	=	{KSmbMusicAPMainPlayerMusicMenuUidValue};	///< 儈儏乕僕僢僋儊僯儏乕
const TUid KSmbMusicAPMainPlayerGenreListViewUid	=	{KSmbMusicAPMainPlayerGenreListUidValue};	///< 僕儍儞儖堦棗夋柺
const TUid KSmbMusicAPMainPlayerArtistListViewUid	=	{KSmbMusicAPMainPlayerArtistListUidValue};	///< 傾乕僥傿僗僩堦棗夋柺
const TUid KSmbMusicAPMainPlayerAlbumListViewUid	=	{KSmbMusicAPMainPlayerAlbumListUidValue};	///< 傾儖僶儉堦棗夋柺
const TUid KSmbMusicAPMainPlayerSongListViewUid		=	{KSmbMusicAPMainPlayerSongListUidValue};	///< 嬋堦棗夋柺
const TUid KSmbMusicAPMainPlayerPLTypeListViewUid	=	{KSmbMusicAPMainPlayerPLTypeListUidValue};	///< 僾儗僀儕僗僩僞僀僾慖戰夋柺
const TUid KSmbMusicAPMainPlayerPLListViewUid		=	{KSmbMusicAPMainPlayerPLListUidValue};		///< 僾儗僀儕僗僩堦棗夋柺
const TUid KSmbMusicAPMainPlayerPLSongListViewUid	=	{KSmbMusicAPMainPlayerPLSongListUidValue};	///< 僾儗僀儕僗僩嬋堦棗夋柺
const TUid KSmbMusicAPMainPlayerMemTypeListViewUid	=	{KSmbMusicAPMainPlayerMemTypeListUidValue};	///< 曐懚愭慖戰夋柺
//2006.08,14 夋柺掕媊偺奼挘
const TUid KSmbMusicAPMainPlayerOriginalPLListViewUid	=	{KSmbMusicAPMainPlayerOriginalPLListUidValue};	///< 僆儕僕僫儖僾儗僀儕僗僩堦棗夋柺
const TUid KSmbMusicAPMainPlayerImportPLListViewUid		=	{KSmbMusicAPMainPlayerImportPLListUidValue};	///< 僀儞億乕僩僾儗僀儕僗僩堦棗夋柺
const TUid KSmbMusicAPMainPlayerPLSelectViewUid		=	{KSmbMusicAPMainPlayerPLSelectUidValue};		///< 僾儗僀儕僗僩慖戰夋柺
const TUid KSmbMusicAPMainPlayerSongSelectViewUid	=	{KSmbMusicAPMainPlayerSongSelectUidValue};		///< 嬋慖戰夋柺
const TUid KSmbMusicAPMainPlayerPLSongOrderViewUid	=	{KSmbMusicAPMainPlayerPLSongOrderUidValue};		///< 僾儗僀儕僗僩嬋暲傋懼偊戰夋柺
//Add-S PTX-824懳墳
const TUid KSmbMusicAPMainPlayerWMAPLListViewUid		=	{KSmbMusicAPMainPlayerWMAPLListUidValue};	///< WMA僾儗僀儕僗僩堦棗夋柺
//Add-E PTX-824懳墳

enum TSmbMusicAPMainPlayerCommandMode
    {
    EFilteringMode = 0,
    ESelectItemMode,
    ESelectMultipleMode,
    ESelectAllMode,
    EOrderItemMode,
    };

enum TSmbMusicAPMainPlayerListType
    {
    EInvalidListType = 0,
    EMusicMenuListType,
    EPLTypeListType,
    EMemTypeListType,
    EGenreListType,
    EArtistListType,
    EAlbumListType,
    ESongListType,
    EPLOriginalPLListType,
    EPLImportPLListType,
    EPLWMAPLListType,			// Add PTX-824懳墳
    EPLSongListType
    };
    
enum TSmbMusicAPMainPlayerItemReloadType
    {
    ENoReload = 0,		// 儕儘乕僪側偟
	EReloadItemsOnly,	// 傾僀僥儉偺傒儕儘乕僪
	EAllReload,			// 僼僅乕僇僗側偳傕嵞愝掕
    };

class CSmbMusicAPMainPlayerFilterView;
class CSmbMusicAPMainPlayerFilterListView;
class CSmbMusicAPMainPlayerFilterListModel;
class MSmbMusicAPMainPlayerDialogObserver;
class MSmbMusicAPMainPlayerFilterListModelObserver;
class MSmbMusicAPMainPlayerFilterSyncServerProcessResponse;
class MSmbMusicAPMainPlayerFilterSyncServerProcessResponseObserver;
class CSmbMusicAPMainPlayerFilterProcessGetThumbnail;

/**
	儕僗僩拞偺傾僀僥儉傪巜掕偡傞峔憿懱
*/
struct TSmbMusicAPMainPlayerFilterListItems
	{
	TBool				iAllItem;			///<慡審/暋悢審乮ETrue:慡審偺応崌丄EFalse:偦傟埲奜乯
	TInt				iListHandle;		///<儕僗僩僴儞僪儖
	TInt				iCount;				///<傾僀僥儉悢
	RArray<TInt>* 		iIndexArray;		///<儕僗僩拞傾僀僥儉乮Index斣崋偺攝楍乯
	};

/**
 * 儊僀儞僾儗僀儎乕 儕僗僩儃僢僋僗僐儞僩儘乕儖僆僽僓乕僶僋儔僗
 */
class MSmbMusicAPMainPlayerFilterListViewObserver
	{
public:
	// 僒僽儊僯儏乕昞帵張棟
	virtual void HandleSubMenuL(CSmbMusicAPMainPlayerFilterListView* aListView, TInt aResID) = 0;
	};

/**
 * 僼傿儖僞儕僗僩價儏乕僋儔僗
 */
class CSmbMusicAPMainPlayerFilterListView
	: public CBase
	, public MSmbAfCommandBase
	, public MSkonMusicListBoxObserver
	, public MSmbMusicAPMainPlayerDialogObserver
	, public MSmbMusicAPMainPlayerFilterListModelObserver
	, public MSmbMusicAPMainPlayerFilterProcessObserver
	{
//ADD-S> 2006.10.31 TRK#12267
public:
	enum TEditState
		{
		EEditInit = 0,
		EEditPreparing,
		EEditProcessing,
		EEditCompleted
		};
//ADD-E<

	/**
	 * 僞僀僩儖僶乕僒僀僘
	 */
	enum TListViewDefaultCoodinates
		{
		EDefaultPosition = -65535,
		ETitleBarHeight = KSmbLayout_MPM_TBAR_H
		};
public:
	//////////////////////////////////////////////////////////////////////////////////////
	// 僋儔僗偺惗惉偲攋婞
	//////////////////////////////////////////////////////////////////////////////////////
	static CSmbMusicAPMainPlayerFilterListView* NewL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView);
	CSmbMusicAPMainPlayerFilterListView();
	virtual void ConstructL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView);
	virtual ~CSmbMusicAPMainPlayerFilterListView();

public:
	//////////////////////////////////////////////////////////////////////////////////////
	// 弶婜愝掕
	//////////////////////////////////////////////////////////////////////////////////////
	virtual void SetupModelL();
	virtual void SetupControlL();
	virtual void SetupKeyGuidanceL(CSakKeyGuidance* aKeyGuidance);
	virtual void ReadItemsFromResourceL(TInt aItemResID);
private:
	void SetKeyGuidanceInfoL(TSkonKeyGuidanceKeyIds aKey, CSakKeyGuidance* aKeyGuidance);
	
public:
	////////////////////////////////////////////////////////////////////////////
	// 僼傿儖僞價儏乕I/F
	////////////////////////////////////////////////////////////////////////////
	virtual void DoViewActivatedL();
	virtual void DoViewDeactivated();
	virtual void DoProcessActivatedL();
	virtual void DoProcessDeactivatedL();
	virtual TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
	
public:
	////////////////////////////////////////////////////////////////////////////
	// 價儏乕婎杮憖嶌
	////////////////////////////////////////////////////////////////////////////
	virtual TUid ViewUid() const;
	virtual void FocusChanged(TDrawNow aDrawNow);
	virtual TInt CurrentArrowState();
	void SetPosition(TInt aIndex);
	void HandleControlStatusUpdatedL();
	
	////////////////////////////////////////////////////////////////////////////
	// SkonMusicListBox僀儀儞僩
	////////////////////////////////////////////////////////////////////////////
	// from MSkonMusicListBoxObserver
	virtual void HandleMusicListBoxEventL(CSkonMusicListBox* aMusicListBox, const TMusicListBoxEvent aEventType, const TInt aIntParam, const TInt aIntParam2);
	virtual void HandleMusicListBoxRedrawEvent(CSkonMusicListBox* aMusicListBox, const TRect &aRect);
	//儕僗僩僼僅乕僇僗僀儀儞僩
	virtual void HandleListFocusMoving(TInt aTopIndex, TInt aItemIndex, TInt aNumberOfVisibleItems);
	virtual void HandleListFocusMove(TInt aTopIndex, TInt aItemIndex, TInt aNumberOfVisibleItems);
	virtual void HandleListFocusMoved(TInt aTopIndex, TInt aItemIndex, TInt aNumberOfVisibleItems);
	virtual void MakeUpCache(TInt aTopIndex, TInt aItemIndex, TInt aNumberOfVisibleItems);

	////////////////////////////////////////////////////////////////////////////
	// 僼傿儖僞儕僗僩儌僨儖僀儀儞僩
	////////////////////////////////////////////////////////////////////////////
	virtual void HandlePlayerStateChangedL(TBool aState);
	virtual void HandlePlayerSongChangedL(TSmbMusicAPSyncEngineItemIndex aItem);
	// from MSmbMusicAPMainPlayerFilterListModelObserver
	virtual void NotifyModelChanged();
	virtual void NotifyItemChanged(TInt aIndex);
	virtual void NotifyItemRequest(TInt aIndex);
	virtual void NotifyImageRequest(TInt aIndex);
	virtual TBool HasParentList();
	virtual TBool HasChildList();
	// 儌僨儖曄峏捠抦
	virtual void HandleModelChangedL(TBool aDrawNow);

	////////////////////////////////////////////////////////////////////////////
	// 僐儅儞僪幚峴
	////////////////////////////////////////////////////////////////////////////
	// from MSmbAfCommandBase
	virtual MSmbAfCommandBase::TSmbAfCmdIdResponse HandleCommandL(TInt aCommandId);
	virtual MSmbAfCommandBase::TSmbAfCmdIdResponse ProcessCommandL(TInt aCommandId);

	//////////////////////////////////////////////////////////////////////////////////////
	// 僐儅儞僪儌乕僪
	//////////////////////////////////////////////////////////////////////////////////////
	// 僐儅儞僪儌乕僪傪愝掕偡傞
	virtual void SetCommandMode(TSmbMusicAPMainPlayerCommandMode aMode);
	// 僐儅儞僪儌乕僪傪庢摼偡傞
	virtual TSmbMusicAPMainPlayerCommandMode CommandMode();
	
	//////////////////////////////////////////////////////////////////////////////////////
	// 儕僗僩僞僀僾
	//////////////////////////////////////////////////////////////////////////////////////
	// 儕僗僩僞僀僾傪愝掕偡傞
	virtual void AdjustListType();
	// 儕僗僩僞僀僾傪愝掕偡傞
	virtual void SetListType(TSmbMusicAPMainPlayerListType aType);
	// 儕僗僩僞僀僾傪庢摼偡傞
	virtual TSmbMusicAPMainPlayerListType ListType();
	
	//////////////////////////////////////////////////////////////////////////////////////
	// 僞僀僩儖僶乕張棟
	//////////////////////////////////////////////////////////////////////////////////////
	// 僞僀僩儖僶乕傪愝掕偡傞
	virtual void AdjustTitleL();
	virtual void AdjustTitleIconL();
	virtual void SetTitleTextL(const TDesC& aText);
	virtual void SetTitleTextL(TInt aTitleResID);
	virtual void SetTitleIconL(TInt aLeftIconResID, TInt aRightIconResID);

	//////////////////////////////////////////////////////////////////////////////////////
	// 儕僗僩儃僢僋僗張棟
	//////////////////////////////////////////////////////////////////////////////////////
	// 儕僗僩儃僢僋僗偺僞僀僾傪愝掕偡傞
	virtual void SetListBoxFormat(CSkonMusicListBox::TMusicListBoxFormat aFormat);
	// 儕僗僩儃僢僋僗僆儁儗乕僔儑儞儌乕僪傪愝掕偡傞
	virtual void SetOperationMode(CSkonRichListBoxBase::TOperationMode aMode);
	// 儕僗僩儃僢僋僗偺僞僀僾傪庢摼偡傞
	virtual CSkonMusicListBox::TMusicListBoxFormat ListBoxFormat();
	// 儕僗僩憖嶌儌乕僪傪曉偡
	virtual CSkonRichListBoxBase::TOperationMode OperationMode();
	// 慖戰偝傟偰偄傞傾僀僥儉僀儞僨僢僋僗偺攝楍傪曉偡
	virtual const CArrayFix<TInt>* SelectionIndexes();
	// 傾僀僥儉偺慖戰/慖戰庢傝徚偟傪峴偆
	virtual void SelectItemL(TInt aItemIndex, TBool aSelected);
	// 慡偰偺傾僀僥儉偺慖戰傪庢傝徚偡
	virtual void ClearSelection();
	// 儕僗僩傾僀僥儉偺敿婸搙挷惍傪偡傞
	virtual void AdjustListBoxL(TBool aState);
	// 僼僅乕僇僗傪愝掕偡傞

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -