📄 smbmusicapsonginfoeditview.h
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPSongInfoEditView.h
//
// Description:
// 儈儏乕僕僢僋梡徻嵶忣曬昞帵-忣曬曇廤夋柺價儏乕僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//---------------------------------------------------------------------------
//2007/03/22 |SEMCJ汭弐 |怴婯嶌惉
#ifndef __SMBMUSICAPSONGINFOEDITVIEW_H__
#define __SMBMUSICAPSONGINFOEDITVIEW_H__
#include <SmbAfView.h>
#include <SkonDialogBase.h>
#include <SkonSelectionDialog.h>
#include <SkonConfirmDialog.h>
#include <SkonWarningDialog.h>
#include <SkonNumBox.h>
#include <SkonTextBox.h>
#include <SkonVerticalContainer.h>
#include <SkonKeyGuidance.h>
#include "SmbMusicAPSongInfoAppUi.h"
#include "SmbMusicAPSongInfoModel.h"
#include "SmbMusicAPSongInfoEditResource.h"
#include "SmbMusicAPSongInfoInterfaceParam.h"
SEMCJ_NAMESPACE_BEGIN
/**
* 儈儏乕僕僢僋梡徻嵶忣曬昞帵-徻嵶忣曬曇廤夋柺價儏乕僋儔僗
*/
class CSmbMusicAPSongInfoEditView : public CSmbAfView, public MSmbMusicAPSongInfoModelObserver,
public MEikCommandObserver, public MSkonTextBoxObserver, public MCoeControlObserver
{
public:
typedef CSkonKeyGuidance::MArrowStateProvider MSkonArrowStateProvider;
/**
* 儈儏乕僕僢僋梡徻嵶忣曬昞帵-僉乕僈僀僟儞僗偺栴報忣曬傪帩偮僋儔僗
*/
class CSmbMusicAPSongInfoArrowStateProvider : public CBase, public MSkonArrowStateProvider
{
public:
/**
* 栴報偺桳岠惈傪僙僢僩
*
* @param[in] aValid 桳岠惈偺僼儔僢僌
*/
void SetArrowValid(TBool aValid);
/**
* 栴報忣曬偺採嫙幰傪僙僢僩丟
* 桳岠偺応崌丄乽aArrowStateProvider乿偐傜栴報忣曬傪庢摼偡傞
*
* @param[in] aArrowStateProvider 栴報忣曬偺採嫙幰
*/
void SetArrowStateProvider(MSkonArrowStateProvider* aArrowStateProvider);
// from CSkonKeyGuidance::MArrowStateProvider
/**
* 栴報忣曬傪庢摼偡傞
*
* return 栴報忣曬
*/
virtual TInt CurrentArrowState() const;
private:
/** 栴報偺桳岠惈偺僼儔僢僌 */
TBool iValid;
/** 栴報忣曬偺採嫙幰 */
MSkonArrowStateProvider* iArrowStateProvider;
};
private:
/**
* 曇廤僉乕偺僞僀僾
*/
enum TSmbMusicAPSongInfoEditKey
{
EEditKeyInEdit, // 曇廤拞
EEditKeyInStart, // 奐巒拞
EEditKeyInFinish // 姰椆拞
};
/**
* 慖戰僟僀傾儘僌偵偰廔椆偑乽偼偄/偄偄偊乿偙偲傪慖戰偟偨応崌偺掕媊抣
*/
enum TSmbSongInfoExitYesNo
{
ESmbSongInfoExitYes, // 僉儍儞僙儖偟偰廔椆
ESmbSongInfoExitNo // 曇廤傪宲懕
};
/**
* 奺崁栚偺曇廤忬懺偺僞僀僾
*/
enum TSmbSongInfoItemStatus
{
EItemStatusOrigin, // 壗傕憖嶌乮曇廤丄儕僙僢僩乯偟側偄
EItemStatusEdit, // 曇廤偟偨
EItemStatusReset // 儕僙僢僩偟偨
};
/**
* 僷僯僢僋僐乕僪
*/
enum TPanicCode
{
EInvalidArgument = 0, // 堷悢堎忢 (NULL 側偳)
EInvlalidControlItemStatus, // 僐儞僩儘乕儖傾僀僥儉偺忬懺堎忢
EInvalidMemberArgument // 儊儞僶乕曄悢堎忢
};
public:
/**
* 僐儞僗僩儔僋僞
*
* @param[in] aModel 儌僨儖僋儔僗
* @param[in] aLog 儘僌僒乕僶偺僙僢僔儑儞
* @param[in] aAppUi 傾僾儕働乕僔儑儞UI僋儔僗
*/
CSmbMusicAPSongInfoEditView(CSmbMusicAPSongInfoModel& aModel,
RLog& aLog, CSmbMusicAPSongInfoAppUi& aAppUi);
/**
* 僨僗僩儔僋僞
*/
~CSmbMusicAPSongInfoEditView();
/**
* 僼僅乕僇僗偺崁栚傪傟僙僢僩偡傞
*/
void EditInfoResetL();
/**
* 曇廤姰椆偺張棟
*/
void EditInfoFinishL();
/**
* 曇廤拞巭偡傞
*/
void EditInfoCancelL();
/**
* 傾僾儕傪廔椆壜斲傪僠僃僢僋偡傞
*
* return 廔椆壜擻偺応崌丄ETrue傪曉媝偡傞
*/
TBool CanFinishApplicationL();
public: //From CAfView
/**
* 價儏乕僐儞僥僫弶婜壔帪張棟
* @leave KErrArgument 崁栚偺庬暿偑憐掕奜偺抣偺応崌
*/
void DoConstructContainerL();
/**
* 價儏乕傾僋僥傿僽姰椆帪偺僐乕儖僶僢僋娭悢撪張棟
*
* @param[in] aPrevViewId 屇傃弌偟尦價儏乕ID
* @param[in] aCustomMessageId 儊僢僙乕僕ID
* @param[in] aCustomMessage 儊僢僙乕僕僶僢僼傽
*/
void DoViewActivatedL(const TVwsViewId& /*aPrevViewId*/, TUid aCustomMessageId, const TDesC8& /*aCustomMessage*/);
public: //From MSmbMusicAPSongInfoModelObserver
/**
* 儌僨儖曄峏捠抦張棟
*
* @param[in] aReason 儌僨儖曄峏棟桼
*/
void HandleChangeModelL(TSmbMusicAPSongInfoChangeModelReason aReason);
public: //From MEikCommandObserver
/**
* FEP偺弌傞偨傔偵丄僐儞僩儘乕儖僐儅儞僪偺張棟
*
* @param[in] aCommandId 僐儅儞僪ID
*/
void ProcessCommandL(TInt aCommandId);
public: //From MSkonTextBoxObserver
/**
* (僐乕儖僶僢僋)TextBox 偺僀儀儞僩傪庴偗庢傞
*
* @param[in] aSakTextBox 僥僉僗僩儃僢僋僗偺億僀儞僞
* @param[in] aEventType 僀儀儞僩庬暿
*/
void HandleTextBoxEventL(CSkonTextBox* aSakTextBox, TSkonTextBoxEvent aEventType);
/**
* 擖椡壜擻側巆傝暥帤悢偑曄壔偟偨偲偒偺僀儀儞僩傪庴偗庢傞丅
*
* @param[in] aSkonTextBox 僥僉僗僩儃僢僋僗偺億僀儞僞丅
* @param[in] aLastByteLength 擖椡壜擻側巆傝暥帤悢丅
*/
void HandleLastByteChangeEventL(CSkonTextBox* /*aSakTextBox*/, TInt /*aLastByteLength*/);
public: //From MCoeControlObserver
/**
* (僐乕儖僶僢僋)NumBox 偺僀儀儞僩傪庴偗庢傞
*
* @param[in] aControl 僐儞僩儘乕儖偺億僀儞僞
* @param[in] aEventType 僀儀儞僩庬暿
*/
void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
private:
/**
* 1. 徻嵶忣曬偺撪梕傪僐儞僥僫忋偵奿擺偟偰偄偔
* 2. 崁栚偺曇廤忬懺傪儕僙僢僩
*
* @param[in] aIndex 僙僢僩崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
* @leave KErrArgument 崁栚偺庬暿偑憐掕奜偺抣偺応崌
*/
void SetControlDetailValueL(TInt aIndex);
/**
* 巜掕偝傟偨僐儞僩儘乕儖偺抣偲DB偺抣傪斾妑偡傞
*
* @param[in] aIndex 斾妑崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
* @return 摨條偺応崌丄ETrue傪曉媝偡傞
* @panic KPanicCategory EInvlalidControlItemStatus NumBox偺昞帵偑桳岠偺憐掕偱偡偑丄柍岠偺昞帵偺応崌
* @leave KErrNotSupported 崁栚偺曇廤忬懺偑憐掕奜偺抣偺応崌
* @leave KErrArgument 崁栚偺庬暿偑憐掕奜偺抣偺応崌
*/
TBool IsEqualDetailValueL(TInt aIndex);
/**
* 1. 弶婜忣曬偺撪梕傪僐儞僥僫忋偵奿擺偟偰偄偔
* 2. 崁栚偺曇廤忬懺傪僙僢僩
*
* @param[in] aIndex 僙僢僩崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
* @leave KErrArgument 崁栚偺庬暿偑憐掕奜偺抣偺応崌
*/
void SetControlResetValueL(TInt aIndex);
/**
* 僐儞僩儘乕儖偺撪梕傪曇廤椞堟偵奿擺偟偰偄偔
*
* @param[in] aIndex 曐懚崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
* @panic KPanicCategory EInvlalidControlItemStatus NumBox偺昞帵偑桳岠偺憐掕偱偡偑丄柍岠偺昞帵偺応崌
* @leave KErrNotSupported 崁栚偺曇廤忬懺偑憐掕奜偺抣偺応崌
* @leave KErrArgument 崁栚偺庬暿偑憐掕奜偺抣偺応崌
*/
void SetEditValueL(TInt aIndex);
/**
* 桳晞崋悢帤崁栚偺撪梕傪曇廤椞堟偵奿擺偟偰偄偔
*
* @param[in] aIndex 曐懚崁栚乮桳晞崋悢帤崁栚乯偺僐儞僩儘乕儖偺僀儞僨僢僋僗
* @panic KPanicCategory EInvlalidControlItemStatus NumBox偺昞帵偑桳岠偺憐掕偱偡偑丄柍岠偺昞帵偺応崌
* @leave KErrArgument 崁栚偺庬暿偑憐掕奜偺抣偺応崌
*/
void SetSignedNumEditValueL(TInt aIndex);
/**
* 柍晞崋悢帤崁栚偺撪梕傪曇廤椞堟偵奿擺偟偰偄偔
*
* @param[in] aIndex 曐懚崁栚乮柍晞崋悢帤崁栚乯偺僐儞僩儘乕儖偺僀儞僨僢僋僗
* @panic KPanicCategory EInvlalidControlItemStatus NumBox偺昞帵偑桳岠偺憐掕偱偡偑丄柍岠偺昞帵偺応崌
* @leave KErrArgument 崁栚偺庬暿偑憐掕奜偺抣偺応崌
*/
void SetUnsignedNumEditValueL(TInt aIndex);
/**
* 僉乕傪懄帪嵞昤夋偡傞
*/
void DrawNow();
/**
* 曇廤夋柺偺僉乕傪僙僢僩偡傞
*
* @param[in] aKeyType 曇廤僉乕偺僞僀僾
* @leave KErrArgument 僉乕偺庬暿偑憐掕奜偺抣偺応崌
*/
void EditReplaceKeyGuidanceL(const TSmbMusicAPSongInfoEditKey aKeyType);
/**
* 僥僉僗僩Box偺僐儞僩儘乕儖傪庢摼偡傞
*
* @param[in] aIndex 庢摼偡傞崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
* @return 巜掕偟偨崁栚偺僥僉僗僩Box
* @panic KPanicCategory EInvalidArgument 堷悢僀儞僨僢僋僗偑惓忢偺斖埻奜偺応崌
*/
CSkonTextBox* TextBox(TInt aIndex);
/**
* NumBox偺僐儞僩儘乕儖傪庢摼偡傞
*
* @param[in] aIndex 庢摼偡傞崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
* @return 巜掕偟偨崁栚偺NumBox
* @panic KPanicCategory EInvalidArgument 堷悢僀儞僨僢僋僗偑惓忢偺斖埻奜偺応崌
*/
CSkonNumBox* NumBox(TInt aIndex);
/**
* 巜掕偟偨崁栚偺僥僉僗僩傪愝掕偡傞
*
* @param[in] aIndex 愝掕偡傞崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
* @param[in] aText 巜掕偟偨崁栚偵愝掕偡傞僥僉僗僩
*/
void SetTextBoxValueL(TInt aIndex, const TDesC& aText);
/**
* 巜掕偟偨崁栚偺悢帤傪愝掕偡傞
* 抣偑柍岠偺応崌偼丄柍岠昞帵偵愝掕偡傞
*
* @param[in] aIndex 愝掕偡傞崁栚偺僐儞僩儘乕儖偺僀儞僨僢僋僗
* @param[in] aValue 巜掕偟偨崁栚偵愝掕偡傞悢帤
*/
void SetNumBoxValue(TInt aIndex, TInt aValue);
/**
* 僼僅乕僇僗偺僐儞僩儘乕儖偺僀儞僨僢僋僗
*
* @return 僐儞僩儘乕儖偺僀儞僨僢僋僗
*/
TInt CurrentFocusedIndex();
/**
* 慖戰僟僀傾儘僌僋儔僗傪惗惉偡傞
*
* @panic KPanicCategory EInvlalidControlItemStatus iConfirmSelect偑NULL偺憐掕偲堘斀偺応崌
* @param result 僟僀傾儘僌偺慖戰寢壥
*/
TInt ConfirmFinishL();
/**
* 寈崘僟僀傾儘僌僋儔僗傪惗惉偡傞
*
* @panic KPanicCategory EInvlalidControlItemStatus iWarningPopup偑NULL偺憐掕偲堘斀偺応崌
* @param result 僟僀傾儘僌偺昞帵寢壥
*/
TInt WarningShowL(TInt aResourceId);
/**
* 妋擣僟僀傾儘僌僋儔僗傪惗惉偡傞
*
* @panic KPanicCategory EInvlalidControlItemStatus iConfirmPopup偑NULL偺憐掕偲堘斀偺応崌
* @param result 僟僀傾儘僌偺昞帵寢壥
*/
TInt ConfirmShowL(TInt aResourceId);
/**
* 旕摨婜偺梫媮傪僉儍儞僙儖偡傞
*/
void CancelRequest();
/**
* 曇廤偟偨崁栚偑偁傞偐傪僠僃僢僋偡傞
*
* @return 曇廤偟偨崁栚偑偁偭偨応崌丄ETrue傪曉媝偡傞
*/
TBool HasEditItemL();
/**
* 曇廤偟偨崁栚敾掕梡價僢僩偺庢摼
*
* @return 曇廤偟偨崁栚敾掕梡價僢僩
*/
TUint EditPatternL();
/**
* 僉乕僀儀儞僩張棟
*
* @param[in] aKeyEvent 僉乕僀儀儞僩
* @param[in] aType 僀儀儞僩僞僀僾
* @return 僉乕儗僗億儞僗
* @leave error 曇廤拞巭偑幐攕偟偨応崌
* @leave error 恊僋儔僗偺張棟偑幐攕偟偨応崌
*/
TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
/**
* 僼僅乕僇僗偺NumBox偺僼僅乕僇僗懳徾傪堏摦
*
* @panic KPanicCategory EInvlalidControlItemStatus 塃懁偵僼僅乕僇僗偺忬懺偺憐掕偲堘斀偺応崌
*/
void MoveCurrentNumBoxFocusPos();
/**
* 奺旕摨婜偺梫媮傪僉儍儞僙儖偟偰丄徻嵶忣曬昞帵夋柺傊栠傞
*/
void BackToDetailViewL();
/**
* 曇廤姰椆拞偵娭偟偰僼儔僢僌傪僙僢僩偡傞
*
* @param[in] aIsFinish 曇廤姰椆拞偺僼儔僢僌
*/
void SetFinishState(TBool aIsFinish);
private:
/** 悅捈曽岦僐儞僥僫丂乮has-a娭學乯 */
CSkonVerticalContainer* iContainer;
/** 曇廤僐儞僩儘乕儖丂*/
RPointerArray<CCoeControl> iControlArray;
/** 崁栚偺曇廤忬懺(only for 悢帤崁栚) */
RArray<TSmbSongInfoItemStatus> iItemStatusArray;
/** 儕僜乕僗採嫙僋儔僗丂乮has-a娭學乯 */
CSmbMusicAPSongInfoEditResource* iEditResource;
/** 儌僨儖僋儔僗 */
CSmbMusicAPSongInfoModel& iModel;
/** 慖戰僟僀傾儘僌丂乮has-a娭學乯 */
CSkonSelectionDialog* iConfirmSelect;
/** 寈崘僟僀傾儘僌丂乮has-a娭學乯 */
CSkonWarningDialog* iWarningPopup;
/** 妋擣僟僀傾儘僌丂乮has-a娭學乯 */
CSkonConfirmDialog* iConfirmPopup;
/** 儘僌僒乕僶偺僙僢僔儑儞 */
RLog& iLog;
/** 傾僾儕働乕僔儑儞UI僋儔僗 */
CSmbMusicAPSongInfoAppUi& iAppUi;
/** fep廔榖僉乕僼儔僢僌 */
TBool iFepEndEvent;
/** 僉儍儞僙儖妋擣拞僼儔僢僌 */
TBool iCancelConfirmEvent;
/** 曇廤姰椆僀儀儞僩僼儔僢僌 */
TBool iEditInfoFinishEvent;
/** 曇廤姰椆拞妿偮僋儕傾僉乕僼儔僢僌 */
TBool iClearInFinishEvent;
/** 僆儁儗乕僔儑儞儌乕僪拞偺NumBox偺僐儞僩儘乕儖偺僀儞僨僢僋僗 */
TInt iOperationNumBoxIndex;
/** 曇廤偟偨崁栚敾掕梡價僢僩 */
TUint iEditPattern;
/** 栴報忣曬偺採嫙幰 */
CSmbMusicAPSongInfoArrowStateProvider* iContainerArrowStateProvider;
};
SEMCJ_NAMESPACE_END
#endif // __SMBMUSICAPSONGINFOEDITVIEW_H__
// end of SmbMusicAPSongInfoEditView.h
/* Copyright (C) 2007 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -