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

📄 smbmusicapsonginfoeditresource.h

📁 索爱手机代码
💻 H
字号:
/* Copyright (C) 2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSongInfoEditResource.h
//
// Description:
//	儈儏乕僕僢僋梡徻嵶忣曬昞帵-徻嵶忣曬曇廤夋柺梡儕僜乕僗採嫙僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅				|曄峏幰			|撪梕
//---------------------------------------------------------------------------
//2007/03/27		|SEMCJ汭弐		|怴婯嶌惉

#ifndef __SMBMUSICAPSONGINFOEDITRESOURCE_H__
#define __SMBMUSICAPSONGINFOEDITRESOURCE_H__

#include <SmbMusicAPSongInfo.rsg>
#include "SmbMusicAPSongInfoModel.h"
#include "SmbMusicAPSongInfoInternalInterface.h"
#include "SmbMusicAPSongInfoExternalInterface.h"
#include "SmbMusicAPSongInfoInterfaceParam.h"

SEMCJ_NAMESPACE_BEGIN

/**
 * 曇廤崁栚ID
 */
enum TSmbMusicAPSongInfoEditResourceItemId
	{
	EEditMgrTitle,    	//娗棟梡僞僀僩儖
	EEditMusicTitle,	//僞僀僩儖
	EEditArtist,   		//傾乕僥傿僗僩
	EEditAlbum,    	//傾儖僶儉
	EEditYear,   		//擭
	EEditGenre,    	//僕儍儞儖
	EEditComment,   	//僐儊儞僩
	EEditTrackNumber,	//僩儔僢僋斣崋
	EEditTotalNumber		//憤僩儔僢僋悢
	};

/**
 * 曇廤崁栚庬暿
 */
enum TSmbMusicAPSongInfoEditItemType
	{
	EEditTextItem,    	//暥帤楍
	EEditNumItem		//悢帤
	};

/**
 * 悢帤崁栚庬暿
 */
enum TSmbMusicAPSongInfoEditNumType
	{
	EEditSignedNum,		//桳晞崋
	EEditUnsignedNum	//柍晞崋
	};

/**
 * 儈儏乕僕僢僋梡徻嵶忣曬昞帵-徻嵶忣曬曇廤夋柺梡儕僜乕僗採嫙僋儔僗
 */
class CSmbMusicAPSongInfoEditResource : public CBase, public MSmbMusicAPSongInfoModelObserver
	{
private:
	/**
	 * 僷僯僢僋僐乕僪
	 */
	enum TPanicCode 
		{ 
		EInvalidArgument = 0		// 堷悢堎忢 (NULL 側偳)
		};

public:
	/**
	 * 僐儞僗僩儔僋僞
	 *
	 * @param[in]	aModel		儌僨儖僆僽僕僃僋僩
	 * @param[in]	aLog		儘僌僒乕僶偺僙僢僔儑儞
	 */
	CSmbMusicAPSongInfoEditResource(CSmbMusicAPSongInfoModel& aModel, RLog& aLog);
	/**
	 * 僨僗僩儔僋僞
	 */
	~CSmbMusicAPSongInfoEditResource();
	/**
	 * 2僼僃乕僘僐儞僗僩儔僋僞
	 */
	void ConstructL();
	/**
	 *	曇廤椞堟偑側偐偭偨応崌偼丄曇廤椞堟偺庢摼梫媮傪敪峴
	 */
	void StartGetEditInfoL();
	/**
	 *	曇廤椞堟偺庢摼梫媮偑姰椆偟偨
	 *	
	 *  @leave			KErrBadHandle	曇廤椞堟偺庢摼偑幐攕偟偨応崌
	 */
	void CompleteGetEditInfoL();
	/**
	 *	曇廤崁栚悢傪庢摼偡傞
	 *
	 * @return	崁栚悢
	 */
	TInt EditItemCount() const;
	/**
	 *	曇廤椞堟偺桳柍傪僠僃僢僋
	 *
	 * @return	曇廤椞堟偑偁傝偺応崌偼丄ETrue傪曉媝
	 */
	TBool HasEditInfo() const;
	/**
	 * 巜掕偟偨崁栚庬暿偺僥僉僗僩傪庢摼偡傞
	 *
	 * @param[in]	aControlIndex 	庢摼偡傞崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
	 * @return 巜掕偟偨崁栚偵昞帵偡傞僥僉僗僩
	 * @leave KErrArgument	崁栚偺摑堦僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */
	TPtr DetailTextL(const TInt aControlIndex) const;
	/**
	 *	崁栚乽僩儔僢僋斣崋丄憤僩儔僢僋悢乿偺桳岠惈傪僠僃僢僋
	 *
	 *	@param[in] aValue 専嵏偝傟傞乽僩儔僢僋斣崋丄憤僩儔僢僋悢乿偺抣
	 *	@return 晄惓偺応崌偼丄EFalse傪曉媝
	 */
	TBool IsNumValueValid(TInt aValue) const;
	/**
	 * 巜掕偟偨崁栚庬暿偺悢帤乮signed type乯傪庢摼偡傞
	 *
	 * @param[in]	aControlIndex 	庢摼偡傞崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
	 * @return 巜掕偟偨崁栚偵昞帵偡傞悢帤
	 * @leave KErrArgument	崁栚偺摑堦僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */
	TInt SignedDetailNumL(const TInt aControlIndex) const;
	/**
	 * 巜掕偟偨崁栚庬暿偺悢帤乮unsigned type乯傪庢摼偡傞
	 *
	 * @param[in]	aControlIndex 	庢摼偡傞崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
	 * @return 巜掕偟偨崁栚偵昞帵偡傞悢帤
	 * @leave KErrArgument	崁栚偺摑堦僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */
	TUint UnsignedDetailNumL(const TInt aControlIndex) const;
	/**
	 * 巜掕偟偨崁栚庬暿偺斖埻撪偺抣傪庢摼偡傞
	 *
	 * @param[in]	aControlIndex 	庢摼偡傞崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
	 * @return 巜掕偟偨崁栚偵昞帵偡傞悢帤
	 * @leave KErrArgument	崁栚偺摑堦僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */
	TInt LimitDetailNumL(const TInt aControlIndex) const;
	/**
	 * 曇廤崁栚庬暿傪庢摼偡傞
	 *
	 * @param[in] aControlIndex 庢摼偡傞崁栚偺僀儞僨僢僋僗
	 * @return	崁栚庬暿
	 * @panic	KPanicCategory 		EInvalidArgument		崁栚偺摑堦僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */	
	TSmbMusicAPSongInfoEditItemType ItemType(const TInt aControlIndex) const;
	/**
	 * 悢帤崁栚庬暿傪庢摼偡傞
	 *
	 * @return	悢帤庬暿
	 * @panic	KPanicCategory 		EInvalidArgument		崁栚偺摑堦僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */	
	TSmbMusicAPSongInfoEditNumType NumType(const TInt aControlIndex) const;
	/**
	 * 巜掕偟偨崁栚庬暿偺弶婜僥僉僗僩傪庢摼偡傞
	 *
	 * @param[in]	aControlIndex 	庢摼偡傞崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
	 * @return 巜掕偟偨崁栚偵昞帵偡傞僥僉僗僩
	 * @leave KErrArgument	崁栚偺摑堦僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */
	TPtr ResetTextL(const TInt aControlIndex);
	/**
	 * 巜掕偟偨崁栚庬暿偺悢帤乮signed type乯傪庢摼偡傞
	 *
	 * @param[in]	aControlIndex 	庢摼偡傞崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
	 * @return 巜掕偟偨崁栚偵昞帵偡傞弶婜悢帤
	 * @leave	  error抣	曇廤椞堟偺弶婜壔偑幐攕偟偨応崌
	 */
	TInt SignedResetNumL(const TInt aControlIndex);
	/**
	 * 巜掕偟偨崁栚庬暿偺悢帤乮unsigned type乯傪庢摼偡傞
	 *
	 * @param[in]	aControlIndex 	庢摼偡傞崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
	 * @return 巜掕偟偨崁栚偵昞帵偡傞弶婜悢帤
	 * @leave	  error抣	曇廤椞堟偺弶婜壔偑幐攕偟偨応崌
	 */
	TUint UnsignedResetNumL(const TInt aControlIndex);
	/**
	 * 巜掕偟偨崁栚庬暿偺斖埻撪偺弶婜抣傪庢摼偡傞
	 *
	 * @param[in]	aControlIndex 	庢摼偡傞崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
	 * @return 巜掕偟偨崁栚偵昞帵偡傞弶婜悢帤
	 * @leave	  error抣	曇廤椞堟偺弶婜壔偑幐攕偟偨応崌
	 */
	TInt LimitResetNumL(const TInt aControlIndex);
	/**
	 * 巜掕偟偨崁栚庬暿偺僥僉僗僩傪僙僢僩偡傞
	 *
	 * @param[in]	aControlIndex 	僙僢僩崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
	 * @param[in] aText 巜掕偟偨崁栚偵僙僢僩偡傞僥僉僗僩
	 * @leave KErrArgument	崁栚偺摑堦僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */
	void SetEditTextL(const TInt aControlIndex, const TDesC& aText);
	/**
	 * 巜掕偟偨崁栚庬暿偺悢帤乮signed type乯傪僙僢僩偡傞
	 *
	 * @param[in]	aControlIndex 	僙僢僩崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
	 * @param[in] aNumValue 巜掕偟偨崁栚偵僙僢僩偡傞悢帤
	 * @leave KErrArgument	崁栚偺摑堦僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */
	void SetSignedEditNumL(const TInt aControlIndex, TInt aNumValue);
	/**
	 * 巜掕偟偨崁栚庬暿偺悢帤乮unsigned type乯傪僙僢僩偡傞
	 *
	 * @param[in]	aControlIndex 	僙僢僩崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
	 * @param[in] aNumValue 巜掕偟偨崁栚偵僙僢僩偡傞悢帤
	 * @leave KErrArgument	崁栚偺摑堦僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */
	void SetUnsignedEditNumL(const TInt aControlIndex, TUint aNumValue);
	/**
	 * 巜掕偟偨崁栚偺摑堦ID傪庢摼偡傞
	 *
	 * @param[in] aControlIndex 庢摼偡傞崁栚偺僀儞僨僢僋僗
	 * @return 崁栚偵懳墳偺摑堦ID
	 * @panic	KPanicCategory 		EInvalidArgument		僐儞僩儘乕儖偺僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */
	TInt ItemID(const TInt aControlIndex) const;
	/**
	 * 曇廤崁栚偺敾掕價僢僩梡掕悢傪庢摼偡傞
	 *
	 * @param[in] aControlIndex 庢摼偡傞崁栚偺僀儞僨僢僋僗
	 * @return	曇廤崁栚偺敾掕價僢僩梡掕悢
	 * @panic	KPanicCategory 		EInvalidArgument		崁栚偺摑堦僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */
	TSmbMusicAPSongInfoEditPattern EditItemPatternL(const TInt aControlIndex) const;

public:		//From MSmbMusicAPSongInfoModelObserver
	/**
	 * 儌僨儖曄峏捠抦張棟
	 *
	 * @param[in]		aReason			儌僨儖曄峏棟桼
	 */
	void HandleChangeModelL(TSmbMusicAPSongInfoChangeModelReason aReason);

private:
	/**
	 *	崁栚乽擭乿偺斖埻撪偺抣傪庢摼
	 *
	 *	@param[in] aValue 専嵏偝傟傞乽擭乿偺抣
	 *	@return 斖埻撪偺抣
	 */
	TInt LimitYearValue(TInt aValue) const;
	/**
	 *	崁栚乽僩儔僢僋斣崋丄憤僩儔僢僋悢乿偺斖埻撪偺抣傪庢摼
	 *
	 *	@param[in] aValue 専嵏偝傟傞乽僩儔僢僋斣崋丄憤僩儔僢僋悢乿偺抣
	 *	@return 斖埻撪偺抣
	 */
	TInt LimitTrackValue(TUint aValue) const;
	/**
	 * 1. DetailInfo偺庢摼
	 * 2. 昞帵崁栚偺攝楍偼傑偩僙僢僩偟側偄偺応崌丄僼僅乕儅僢僩偵傛偭偰僙僢僩
	 */
	void InitInGetDetailInfo();
	/**
	 * 巜掕偟偨崁栚偺曇廤梡椞堟傪弶婜壔
	 *
	 * @param[in] aControlIndex 庢摼偡傞崁栚偺僀儞僨僢僋僗
	 * @return 張棟寢壥
	 * @leave KErrArgument	僐儞僩儘乕儖偺僀儞僨僢僋僗偑憐掕奜偺抣偺応崌
	 */
	TInt ResetEditInfoL(const TInt aControlIndex);

private:
	/** DB偺妝嬋忣曬傪奿擺偡傞僋儔僗丂乮uses-a娭學乯 */
	const TSmbMusicMWLibDetailSongInfo* iDetailInfo;
	/** 嬋曇廤帪偺忣曬傪奿擺偡傞僋儔僗丂乮uses-a娭學乯 */
	TSmbMusicMWLibSongEditInfo* iEditInfo;
	/** 儌僨儖僋儔僗 */
	CSmbMusicAPSongInfoModel& iModel;
	/** 曇廤崁栚悢 */
	TInt iItemNum;
	/** 僼僅乕儅僢僩偵墳偠偨昞帵崁栚偺攝楍偺億僀儞僞丂乮uses-a娭學乯 */
	const TInt* iItemIdArray;
	/** 昞帵暥帤楍偺巄掕僶僢僼傽丂乮has-a娭學乯 */
	HBufC* iText;
	/** 儘僌僒乕僶偺僙僢僔儑儞 */
	RLog& iLog;
	};

SEMCJ_NAMESPACE_END
#endif	// __SMBMUSICAPSONGINFOEDITRESOURCE_H__
// end of SmbMusicAPSongInfoEditResource.h
/* Copyright (C) 2007 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

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