?? listview2.cpp
字號:
case 1:
case 5:
icon=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Largeicon1,EMbmListview2Largeicon1mask);
break;
case 2:
case 6:
icon=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Largeicon2,EMbmListview2Largeicon2mask);
break;
case 3:
icon=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Largeicon3,EMbmListview2Largeicon3mask);
break;
default: // remaining items dont have images...
break;
}
if (icon)
{
CleanupStack::PushL(icon);
lbData->AddIconL(icon,EQikListBoxSlotLeftMediumIcon1);
CleanupStack::Pop(icon); // since lbData now taken ownership
}
CleanupStack::PopAndDestroy(lbData);
}
model.ModelEndUpdateL();
}
void CAppSpecificListView::AddItemsToList4L()
//
// The highlighted entry is displayed as a two line list box entry.
// standard_normal_layout = EQikListBoxIconLineIcon;
// standard_highlight_layout = EQikListBoxIconIconLine;
//
{
CQikListBox* listbox=LocateControlByUniqueHandle<CQikListBox>(EAppSpecificListViewListId4);
MQikListBoxModel& model(listbox->Model());
model.ModelBeginUpdateLC();
TBuf<KMaxListItemText>bb;
for (TInt i=0;i<KListView2Items;i++)
{
MQikListBoxData* lbData=model.NewDataL(MQikListBoxModel::EDataNormal);
CleanupClosePushL(*lbData);
iEikonEnv->ReadResourceL(bb,R_STR_LIST_CONTENT_1+i);
lbData->AddTextL(bb,EQikListBoxSlotText1);
// List 4 has 3 diffent icon slots leftSlot1, leftSlot2 and rightSlot1
CQikContent* icon1=NULL;
CQikContent* icon2=NULL;
CQikContent* icon3=NULL;
switch (i)
{
case 0:
icon1=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon0,EMbmListview2Icon0mask);
CleanupStack::PushL(icon1);
icon2=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon1,EMbmListview2Icon1mask);
CleanupStack::PushL(icon2);
icon3=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon2,EMbmListview2Icon2mask);
CleanupStack::PushL(icon3);
break;
case 1:
case 5:
icon1=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon1,EMbmListview2Icon1mask);
CleanupStack::PushL(icon1);
icon3=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon2,EMbmListview2Icon2mask);
CleanupStack::PushL(icon3);
break;
case 2:
case 6:
// these only have a 2nd icon defined, showing first icon can be NULL
icon3=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon3,EMbmListview2Icon3mask);
CleanupStack::PushL(icon3);
break;
case 3:
// this only has 1st icon defined, showing second icon can be NULL
icon1=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon3,EMbmListview2Icon3mask);
CleanupStack::PushL(icon1);
break;
// the remaining items (case 4) dont have images... so show its entirely feasible
// to have rows with no image.
default:
break;
}
if (icon3)
{
lbData->AddIconL(icon3,EQikListBoxSlotRightSmallIcon1);
CleanupStack::Pop(icon3); // since lbData now taken ownership
}
if (icon2)
{
lbData->AddIconL(icon2,EQikListBoxSlotLeftSmallIcon2);
CleanupStack::Pop(icon2); // since lbData now taken ownership
}
if (icon1)
{
lbData->AddIconL(icon1,EQikListBoxSlotLeftSmallIcon1);
CleanupStack::Pop(icon1); // since lbData now taken ownership
}
CleanupStack::PopAndDestroy(lbData);
}
model.ModelEndUpdateL();
}
void CAppSpecificListView::AddItemsToList5L()
//
// Lines are displayed with varying numbers of icons
// standard_normal_layout = EQikListBoxLineIconIcon;
// standard_highlight_layout = EQikListBoxIconLineIconIcon;
//
{
CQikListBox* listbox=LocateControlByUniqueHandle<CQikListBox>(EAppSpecificListViewListId5);
MQikListBoxModel& model(listbox->Model());
model.ModelBeginUpdateLC();
TBuf<KMaxListItemText>bb;
for (TInt i=0;i<KListView2Items;i++)
{
MQikListBoxData* lbData=model.NewDataL(MQikListBoxModel::EDataNormal);
CleanupClosePushL(*lbData);
iEikonEnv->ReadResourceL(bb,R_STR_LIST_CONTENT_1+i);
lbData->AddTextL(bb,EQikListBoxSlotText1);
CQikContent* icon1=NULL;
CQikContent* icon2=NULL;
CQikContent* icon3=NULL;
switch (i)
{
case 0:
icon1=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon0,EMbmListview2Icon0mask);
CleanupStack::PushL(icon1);
// List 5 has upto 3 icons per line - load the 2nd icon for this line
icon2=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon1,EMbmListview2Icon1mask);
CleanupStack::PushL(icon2);
// List 5 has upto 3 icons per line - load the 3rd icon for this line
icon3=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon2,EMbmListview2Icon2mask);
CleanupStack::PushL(icon3);
break;
case 1:
case 5:
icon1=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon1,EMbmListview2Icon1mask);
CleanupStack::PushL(icon1);
// List 5 has upto 3 icons per line - load the 2nd icon for this line
icon2=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon2,EMbmListview2Icon2mask);
CleanupStack::PushL(icon2);
break;
case 2:
case 6:
// List 5 has upto 3 icons per line - load the 2nd icon for this line
icon2=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon3,EMbmListview2Icon3mask);
CleanupStack::PushL(icon2);
break;
case 3:
// this only has 3rd icon defined, showing 1st + 2nd icon can be NULL
icon3=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon3,EMbmListview2Icon3mask);
CleanupStack::PushL(icon3);
break;
// the remaining items (case 4) dont have images... so show its entirely feasible
// to have rows with no image.
default:
break;
}
if (icon3)
{
lbData->AddIconL(icon3,EQikListBoxSlotRightSmallIcon2);
CleanupStack::Pop(icon3);
}
if (icon2)
{
lbData->AddIconL(icon2,EQikListBoxSlotRightSmallIcon1);
CleanupStack::Pop(icon2);
}
if (icon1)
{
lbData->AddIconL(icon1,EQikListBoxSlotLeftSmallIcon1);
CleanupStack::Pop(icon1);
}
CleanupStack::PopAndDestroy(lbData);
}
model.ModelEndUpdateL();
}
void CAppSpecificListView::AddItemsToList6L()
//
// Icon to left, half lines of text.
// standard_normal_layout = EQikListBoxIconHalfLineHalfLine;
// standard_highlight_layout = EQikListBoxIconHalfLineHalfLineLine;
//
{
CQikListBox* listbox=LocateControlByUniqueHandle<CQikListBox>(EAppSpecificListViewListId6);
MQikListBoxModel& model(listbox->Model());
model.ModelBeginUpdateLC();
TBuf<KMaxListItemText>bb;
for (TInt i=0;i<KListView2Items;i++)
{
MQikListBoxData* lbData=model.NewDataL(MQikListBoxModel::EDataNormal);
CleanupClosePushL(*lbData);
// slots 1 and 2 are the half lines
iEikonEnv->ReadResourceL(bb,R_STR_LIST_CONTENT_1+i);
lbData->AddTextL(bb,EQikListBoxSlotText1);
iEikonEnv->ReadResourceL(bb,R_STR_LIST_ALT_TEXT_1+i);
lbData->AddTextL(bb,EQikListBoxSlotText2);
// slot 3 is the full line when an item is highlighted
iEikonEnv->ReadResourceL(bb,R_STR_LIST_DETAILS_1+i);
lbData->AddTextL(bb,EQikListBoxSlotText3);
CQikContent* icon=NULL;
switch (i)
{
case 0:
icon=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon0,EMbmListview2Icon0mask);
break;
case 1:
case 5:
icon=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon1,EMbmListview2Icon1mask);
break;
case 2:
case 6:
icon=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon2,EMbmListview2Icon2mask);
break;
case 3:
icon=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon3,EMbmListview2Icon3mask);
break;
// the remaining items (case 4) dont have images... so show its entirely feasible
// to have rows with no image.
default:
break;
}
if (icon)
{
CleanupStack::PushL(icon);
lbData->AddIconL(icon,EQikListBoxSlotLeftSmallIcon1);
CleanupStack::Pop(icon); // since lbData now taken ownership
}
CleanupStack::PopAndDestroy(lbData);
}
model.ModelEndUpdateL();
}
void CAppSpecificListView::AddItemsToList7L()
//
// Icon to left, half lines of text.
// standard_normal_layout = EQikListBoxIconTwoLines;
// standard_highlight_layout = EQikListBoxIconIconTwoLines;
//
{
CQikListBox* listbox=LocateControlByUniqueHandle<CQikListBox>(EAppSpecificListViewListId7);
MQikListBoxModel& model(listbox->Model());
model.ModelBeginUpdateLC();
TBuf<KMaxListItemText>bb;
for (TInt i=0;i<KListView2Items;i++)
{
MQikListBoxData* lbData=model.NewDataL(MQikListBoxModel::EDataNormal);
CleanupClosePushL(*lbData);
iEikonEnv->ReadResourceL(bb,R_STR_LIST_CONTENT_1+i);
lbData->AddTextL(bb,EQikListBoxSlotText1);
iEikonEnv->ReadResourceL(bb,R_STR_LIST_DETAILS_1+i);
lbData->AddTextL(bb,EQikListBoxSlotText2);
CQikContent* icon1=NULL;
CQikContent* icon2=NULL;
switch (i)
{
case 0:
icon1=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon0,EMbmListview2Icon0mask);
CleanupStack::PushL(icon1);
icon2=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon1,EMbmListview2Icon1mask);
CleanupStack::PushL(icon2);
break;
case 1:
case 5:
icon1=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon2,EMbmListview2Icon2mask);
CleanupStack::PushL(icon1);
icon2=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon3,EMbmListview2Icon3mask);
CleanupStack::PushL(icon2);
break;
case 2:
case 6:
icon1=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon3,EMbmListview2Icon3mask);
CleanupStack::PushL(icon1);
break;
case 3:
icon2=CQikContent::NewL(NULL,KMbmFile,EMbmListview2Icon0,EMbmListview2Icon0mask);
CleanupStack::PushL(icon2);
break;
// the remaining items (case 4) dont have images... so show its entirely feasible
// to have rows with no image.
default:
break;
}
if (icon2)
{
lbData->AddIconL(icon2,EQikListBoxSlotLeftSmallIcon2);
CleanupStack::Pop(icon2);
}
if (icon1)
{
lbData->AddIconL(icon1,EQikListBoxSlotLeftSmallIcon1);
CleanupStack::Pop(icon1);
}
CleanupStack::PopAndDestroy(lbData);
}
model.ModelEndUpdateL();
}
void CAppSpecificListView::AddItemsToList8L()
//
// Thumbnail images within a listbox.
// standard_highlight_layout = EQikListBoxMediumThumbTwoLines;
//
{
CQikListBox* listbox=LocateControlByUniqueHandle<CQikListBox>(EAppSpecificListViewListId8);
MQikListBoxModel& model(listbox->Model());
model.ModelBeginUpdateLC();
TBuf<KMaxListItemText>bb;
TBool reportedMissing=EFalse;
for (TInt i=0;i<KListView2Items;i++)
{
MQikListBoxData* lbData=model.NewDataL(MQikListBoxModel::EDataNormal);
CleanupClosePushL(*lbData);
// This listbox has 2 lines of data
iEikonEnv->ReadResourceL(bb,R_STR_LIST_CONTENT_1+i);
lbData->AddTextL(bb,EQikListBoxSlotText1);
iEikonEnv->ReadResourceL(bb,R_STR_LIST_DETAILS_1+i);
lbData->AddTextL(bb,EQikListBoxSlotText2);
// Now the medium icon
// Note that combining the two switch statements requires us to change our current
// object ownership/error handling strategy so we dont cause alloc heaven should
// loading one icon fail.Whilst entirely feasible, we have chosen not to do that here.
// For whatever reason it appears that thumbnails have to be loaded from file.
// There are no methods to support simply using in memory CFbsBitMaps etc
TRAPD(err,
_LIT(KPicture1jpg,"c:\\Picture1.jpg");
lbData->AddThumbnailImageL(KPicture1jpg,EQikListBoxSlotLeftMediumThumbnail1);
);
// This app expects to be able to locate the picture file c:\\Picture1.jpg. You
// will need to copy from the ListView2 project to ....\epoc32\winscw\c
// (emulators drive C:\) to be able to see this in practice
if ((err!=KErrNone) && (!reportedMissing))
{
_LIT(KMissingFile,"Missing file");
_LIT(KPleaseCopyPicture1,"Please copy Picture1.jpg from the ListView2 example to c:\\ of your emulator");
iEikonEnv->InfoWinL(KMissingFile,KPleaseCopyPicture1);
reportedMissing=ETrue; // dont keep repeating the msg.
}
CleanupStack::PopAndDestroy(lbData);
}
model.ModelEndUpdateL();
}
void CAppSpecificListView::AddItemsToList9L()
//
// standard_highlight_layout = EQikListBoxCheckLineSwappingLine;
//
{
CQikListBox* listbox=LocateControlByUniqueHandle<CQikListBox>(EAppSpecificListViewListId9);
MQikListBoxModel& model(listbox->Model());
model.ModelBeginUpdateLC();
TBuf<KMaxListItemText>bb;
for (TInt i=0;i<KListView2Items;i++)
{
MQikListBoxData* lbData=model.NewDataL(MQikListBoxModel::EDataNormal);
CleanupClosePushL(*lbData);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -