📄 smbmusicapmainplayerfilterlistview.cpp
字号:
TSize sizeTitleBar(View()->Width(), aTitlebar->MinimumSize().iHeight);
return sizeTitleBar;
}
/**
* 儕僗僩儃僢僋僗偺僒僀僘傪庢摼偡傞
*
* @return 儕僗僩儃僢僋僗偺僒僀僘
*/
TSize CSmbMusicAPMainPlayerFilterListView::ListBoxSize(CSkonMusicListBox* aListbox)
{
TSize sizeListBox(View()->Width(), aListbox->MinimumSize().iHeight);
return sizeListBox;
}
////////////////////////////////////////////////////////////////////////////
// 僼傿儖僞價儏乕I/F
////////////////////////////////////////////////////////////////////////////
/**
* 儕僗僩價儏乕傪傾僋僥傿僽偵偡傞
*丂丒僼傿儖僞價儏乕偺DoViewActivatedImplL
* 丒夋柺慗堏偟偨偲偒
* 丒抂枛僆乕僾儞偟偨偲偒
*/
void CSmbMusicAPMainPlayerFilterListView::DoViewActivatedL()
{
// 傾僋僥傿僽愝掕
SetActivated();
// 嵟慜柺偺夋柺偱側偄応崌偼丄僼僅乕僇僗傪愝掕偟側偄
// 僼僅乕僇僗傪愝掕偡傞偲SkonMusicListBox偺僉乕僈僀僟儞僗偑昞帵偝傟傞
if(EFalse==View()->IsViewActivated())
{
// 儕僗僩儃僢僋僗偺僼僅乕僇僗傪奜偡
FocusChanged(EDrawNow);
//2006.10.09
DoProcessDeactivatedL();
}
else
{
// 嵞惗忣曬昞帵僷僱儖傪昞帵偡傞昁梫偑側偄応崌乮儈儏乕僕僢僋儊僯儏乕乯
if(EFalse==CanShowPanel())
{
// 僀儀儞僩娔帇傪夝彍偡傞
View()->ResetTimerEvent(ETrue);
}
// 嵞惗忣曬昞帵僷僱儖偺僀儀儞僩娔帇傪偡傞
else
{
// 僀儀儞僩娔帇僞僀儅乕傪愝掕偡傞
View()->SetEventOccured();
}
// 儕僗僩僞僀僾傪愝掕偡傞
AdjustListType();
// 僞僀僩儖僶乕傪愝掕偡傞
AdjustTitleL();
AdjustListBoxL(EFalse);
HandleControlStatusUpdatedL();
FocusChanged(EDrawNow);
//2006.10.09
DoProcessActivatedL();
}
}
/**
* 儕僗僩價儏乕傪旕傾僋僥傿僽偵偡傞
*丂丒僼傿儖僞價儏乕偺ViewDeactivated
* 丒夋柺慗堏偟偨偲偒
* 丒抂枛僋儘乕僘偟偨偲偒
*/
void CSmbMusicAPMainPlayerFilterListView::DoViewDeactivated()
{
SetDeactivated();
// 尰嵼偺僼僅乕僇僗埵抲傪曐帩偟偰偍偔
SetActiveIndex(ListBox()->CurrentItemIndex());
// 儕僗僩儃僢僋僗偺僼僅乕僇僗傪奜偡
FocusChanged(EDrawNow);
// 旕摨婜僾儘僙僗傪拞巭偡傞
KillProcess();
// 張棟拞傾僀僐儞傪徚嫀偡傞
//2006.10.09
DoProcessDeactivatedL();
}
/**
* 儕僗僩價儏乕偺張棟傪奐巒偡傞
*/
void CSmbMusicAPMainPlayerFilterListView::DoProcessActivatedL()
{
// 嵒帪寁傾僀僐儞傪徚嫀
ShowProcessingIconL(EFalse);
//摨婜僒乕僶強桳尃偑偁傟偽傾僀僥儉庢摼偡傞
if(EFalse!=View()->IsAccessSyncEngine())
{
//@@@@@>
//2006.10.21 傾僀僥儉悢偑儕僙僢僩偝傟偰偄傞壜擻惈偑偁傞偺偱嵞愝掕
//if(EFalse!=CanResetCache())
// {
// TInt listHandle = ListHandle();
// TInt itemCount = View()->SyncModel().GetItemCount(listHandle);
// if(0<=itemCount)
// {
// SetItemCount(itemCount);
// }
// }
//@@@@@<
// 傾僀僥儉偑枹庢摼偱偁傟偽庢摼偡傞
switch(IsListItemsChanged())
{
case EAllReload:
ProcessLoadListItemsAtListTop(ECmdFilterViewGetListItems);
ListItemsChanged(ENoReload);
break;
case EReloadItemsOnly:
ProcessLoadListItems(ECmdFilterViewGetListItems);
ListItemsChanged(ENoReload);
break;
}
// 夋柺峏怴(僒儉僱僀儖昞帵)傪捠抦偡傞
if(0<=IsThumbnailRequired())
{
//僒儉僱僀儖庢摼傪嵞僗僞乕僩偝偣傞
PostRequestThumbnail(0);
}
}
//ADD-S> 2006.10.31 TRK#12267
SetEditStatus(EEditInit);
//ADD-E>
}
/**
* 儕僗僩價儏乕偺張棟傪掆巭偡傞
*/
void CSmbMusicAPMainPlayerFilterListView::DoProcessDeactivatedL()
{
// 嵒帪寁傾僀僐儞傪徚嫀
ShowProcessingIconL(EFalse);
//ADD-S> 2006.10.31 TRK#12267
SetEditStatus(EEditInit);
//ADD-E>
}
/**
* 僉乕僀儀儞僩傪張棟偡傞
*
* @param aKeyEvent [in] 僉乕僀儀儞僩
* @param aType [in] 僀儀儞僩僞僀僾
* @return 僉乕僀儀儞僩徚旓僼儔僌
*/
TKeyResponse CSmbMusicAPMainPlayerFilterListView::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)
{
if(EEventKey!=aType)
{
return EKeyWasConsumed;
}
//ADD-S [D_82400001770]
if (EFalse != iImageRequested && NULL != iThumbnailProcessObj)
{
switch(aKeyEvent.iCode)
{
case EWcdmaMpKeyUp: // 忋栴報僉乕
case EWcdmaMpKeyDown: // 壓栴報僉乕
case EWcdmaMpKeyManner: // 儅僫乕僉乕乮儁乕僕栠傝乯
case EWcdmaMpKeyMemo: // 儊儌僉乕乮儁乕僕憲傝乯
// 僒儉僱僀儖庢摼張棟傪掆巭偡傞
iThumbnailProcessObj->Reset();
// 僒儉僱僀儖庢摼傪抶墑偝偣傞
iDelayThumbnail = ETrue;
// 抶墑枮椆傑偱偺僞僀儅傪愝掕
iTimer->Cancel();
iTimer->After(KDelayTime, TCallBack(TimerFinished, this));
break;
default:
break;
}
}
//ADD-E [D_82400001770]
TKeyResponse keyResponse = EKeyWasNotConsumed;
MSmbAfCommandBase::TSmbAfCmdIdResponse cmdResponse = MSmbAfCommandBase::ESmbAfCmdIdWasNotConsumed;
// 儕僗僩儃僢僋僗偑暋悢慖戰儌乕僪傗暲傋懼偊儌乕僪偺応崌丄
// 嵍塃僉乕埲奜偺僉乕僀儀儞僩傪儕僗僩儃僢僋僗偱張棟偡傞
if(CSkonRichListBoxBase::EOperationNormal != ListBox()->OperationMode())
{
switch(aKeyEvent.iCode)
{
case EWcdmaMpKeySelect: // 寛掕僉乕
{
if(EFalse!=CheckMultiSelection())
{
return ListBox()->OfferKeyEventL(aKeyEvent, aType);
}
}
return EKeyWasConsumed;
case EWcdmaMpKeyUp: // 忋栴報僉乕
case EWcdmaMpKeyDown: // 壓栴報僉乕
case EWcdmaMpKeyManner: // 儅僫乕僉乕乮儁乕僕栠傝乯
case EWcdmaMpKeyMemo: // 儊儌僉乕乮儁乕僕憲傝乯
// 2006.09.02 TRK#8193
//case EWcdmaMpKeyClear: // 僋儕傾僉乕
//case EWcdmaMpKeyMail: // 僜僼僩1僉乕
//case EWcdmaMpKeyIMode: // 僜僼僩2僉乕
return ListBox()->OfferKeyEventL(aKeyEvent, aType);
}
}
// 儕僗僩儃僢僋僗偑僲乕儅儖儌乕僪偺応崌丄
// 忋壓丒儁乕僕栠傝丒儁乕僕憲傝偺僉乕僀儀儞僩傪儕僗僩儃僢僋僗偱張棟偡傞
else
{
#ifdef __DEBUG_LOG_MAINPLAYER__
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterListView::OfferKeyEventL()[aKeyEvent = %d, aType = %d]");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, 101401, ELogLevelNormal, KLogFmt, aKeyEvent.iCode, aType);
#endif
switch(aKeyEvent.iCode)
{
case EWcdmaMpKeyUp: // 忋栴報僉乕
case EWcdmaMpKeyDown: // 壓栴報僉乕
case EWcdmaMpKeyManner: // 儅僫乕僉乕乮儁乕僕栠傝乯
case EWcdmaMpKeyMemo: // 儊儌僉乕乮儁乕僕憲傝乯
return ListBox()->OfferKeyEventL(aKeyEvent, aType);
}
}
// 儕僗僩儃僢僋僗偱僉乕僀儀儞僩張棟偝傟側偐偭偨応崌
// 僉乕僀儀儞僩傪僐儅儞僪偵曄姺偟偰僐儅儞僪張棟偡傞
switch(aKeyEvent.iCode)
{
case EWcdmaMpKeySelect: // 寛掕僉乕
{
if(0!=(aKeyEvent.iModifiers & EWcdmaMpModifierLongPress))
{
//挿墴偟偺応崌
cmdResponse = HandleCommandL(EMainPlayerFilterViewKGCmdLongSelect);
}
else if(0!=(aKeyEvent.iModifiers & EWcdmaMpModifierShortPress))
{
//抁墴偟偺応崌
cmdResponse = HandleCommandL(EMainPlayerFilterViewKGCmdSelect);
}
else
{
//挿墴偟/抁墴偟僀儀儞僩梫媮傪敪峴
CSakAppUi* appUi = static_cast<CSakAppUi*>(CEikonEnv::Static()->EikAppUi());
// CSakAppUi* appUi = STATIC_CAST(CSakAppUi*, CEikonEnv::Static()->EikAppUi());
appUi->GenerateExtraKeyEvent(CSakAppUi::EExtraKeyEventLongShort);
}
}
break;
case EWcdmaMpKeyClear: // 僋儕傾僉乕
{
// 捠忢偼恊奒憌偺夋柺偵栠傞
// 偙偙偱僐儅儞僪張棟偟側偗傟偽FilterView偱廔椆張棟偑屇偽傟傞
cmdResponse = HandleCommandL(EMainPlayerFilterViewKGCmdClear);
}
break;
case EWcdmaMpKeyMail: // 僜僼僩侾僉乕
{
// 僉乕偵僐儅儞僪ID傪妱傝摉偰傞偺偱偙偙偵偼棃側偄偼偢丒丒丒
TBool visible;
TInt resID;
TBool commandID;
if(EFalse!=KeyGuidanceInfo(ESkonKeyGuidanceSoftKeyLeft, visible, resID, commandID))
{
HandleCommandL(commandID);
}
}
break;
case EWcdmaMpKeyIMode: // 僜僼僩俀僉乕
{
// 僉乕偵僐儅儞僪ID傪妱傝摉偰傞偺偱偙偙偵偼棃側偄偼偢
TBool visible;
TInt resID;
TBool commandID;
if(EFalse!=KeyGuidanceInfo(ESkonKeyGuidanceSoftKeyRight, visible, resID, commandID))
{
HandleCommandL(commandID);
}
}
break;
case EWcdmaMpKeyLeft: // 嵍栴報僉乕
{
if(EFalse!=HasParentList())
{
// 恊奒憌偺夋柺偵栠傞
cmdResponse = HandleCommandL(EMainPlayerFilterViewKGCmdParentView);
}
}
break;
case EWcdmaMpKeyRight: // 塃栴報僉乕
{
if(EFalse!=HasChildList())
{
// 巕奒憌偺夋柺偵恑傓
cmdResponse = HandleCommandL(EMainPlayerFilterViewKGCmdChildView);
}
}
break;
}
if(keyResponse!=EKeyWasNotConsumed || cmdResponse!=MSmbAfCommandBase::ESmbAfCmdIdWasNotConsumed)
{
return EKeyWasConsumed;
}
return EKeyWasNotConsumed;
}
////////////////////////////////////////////////////////////////////////////
// 價儏乕婎杮憖嶌
////////////////////////////////////////////////////////////////////////////
/**
* 價儏乕庬暿傪庢摼偡傞
*
* @return 價儏乕庬暿
*/
TUid CSmbMusicAPMainPlayerFilterListView::ViewUid() const
{
return iViewUid;
}
/**
* 僼僅乕僇僗偺曄壔傪僴儞僪儖偡傞丅
*
* @param aDrawNow [in] Draw偡傞偐偳偆偐偺僼儔僌丅
*/
void CSmbMusicAPMainPlayerFilterListView::FocusChanged(TDrawNow aDrawNow)
{
if(EDrawNow==aDrawNow
&& EFalse!=View()->IsViewActivated())
{
// 儕僗僩儃僢僋僗偺僉乕僈僀僟儞僗傪愝掕偡傞
CSakKeyGuidance* keyGuidance = static_cast<CSkonKeyGuidance*>(View()->KeyGuidance());
// CSakKeyGuidance* keyGuidance = STATIC_CAST(CSkonKeyGuidance*, View()->KeyGuidance());
if(NULL!=keyGuidance)
{
// 偦傟偧傟偺夋柺偵墳偠偨僉乕僈僀僟儞僗傪愝掕偡傞
SetupKeyGuidanceL(keyGuidance);
}
// 僉乕僈僀僟儞僗傪昞帵偡傞
//2006.10.05 TRK#10979
if(EFalse!=View()->IsFocused())
{
SetFocus(IsActivated());
}
else
{
SetFocus(EFalse);
}
}
// Add-S PTX-824(TRK-754)懳墳丂暯壀
else if (EFalse == View()->IsFocused())
{
SetFocus(EFalse);
}
// Add-E PTX-824(TRK-754)懳墳丂暯壀
}
/**
* 僉乕僈僀僟儞僗偺栴報忣曬偺栤偄崌傢偣(CSkonKeyGuidance::MArrowStateProvider)
* @param 側偟
* @return 栴報忣曬
*/
TInt CSmbMusicAPMainPlayerFilterListView::CurrentArrowState()
{
TInt arrowState = 0;
// 儕僗僩儃僢僋僗偺栴報忣曬傪庢摼偡傞
if(EFalse!=HasParentList())
{
// 恊奒憌夋柺偑偁傟偽嵍僉乕傪桳岠偵偡傞
arrowState |= ESkonKeyGuidanceArrowLeft;
}
if(EFalse!=HasChildList())
{
// 巕奒憌夋柺偑偁傟偽塃僉乕傪桳岠偵偡傞
arrowState |= ESkonKeyGuidanceArrowRight;
}
return arrowState;
}
/**
* 償傽乕僠儍儖僗儁乕僗僗僋儕乕儞忋偺埵抲傪愝掕偡傞
*
* @param aIndex 僀儞僨僢僋僗
*/
void CSmbMusicAPMainPlayerFilterListView::SetPosition(TInt aIndex)
{
TPoint pointTitle = DefaultPoint();
TPoint pointListbox = DefaultPoint();
if(0<=aIndex)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -