Categories: S60 | Symbian C++ | UI | How To | Code Examples
Here is the code snippet to create a simple listbox:
In mmp file:
LIBRARY avkon.lib LIBRARY eikcoctl.lib LIBRARY eikctl.lib LIBRARY bafl.lib
In the header file:
// FORWARD DECLARATION class CEikColumnListBox; // ... class CMyAppContainer : public CCoeControl { // ... public: // New functions /** * Create the listbox. */ void CreateListBoxL(); /** * Initialize the listbox. */ void InitListBoxL(); private: // Data members /** * The listbox object * Owned by CMyAppContainer. */ CEikColumnListBox* iListBox; };
In the cpp file:
#include <eikclb.h> // for CEikColumnListBox #include <aknlists.h> // for CAknSingleStyleListBox // ---------------------------------------------------------------------------- // CMyAppContainer::CreateListBoxL() // Create the listbox. // ---------------------------------------------------------------------------- // void CMyAppContainer::CreateListBoxL() { //Delete the list box if already exists. if ( iListBox ) { delete iListBox; iListBox = NULL; } // listbox instance iListBox = new (ELeave) CAknSingleStyleListBox(); iListBox->ConstructL(this); iListBox->SetContainerWindowL(*this); // add scrollbars to listbox iListBox->CreateScrollBarFrameL(ETrue); iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOn, CEikScrollBarFrame::EAuto ); const TPoint aPoint(0,0); const TSize aSize(180,150); //most important line , else the list box simply disappears iListBox->SetExtent(aPoint,aSize); //Fill list box with the data InitListBoxL(); iListBox->ActivateL(); iListBox->DrawNow(); } // ---------------------------------------------------------------------------- // CMyAppContainer::InitListBoxL() // Initialize the listbox. // ---------------------------------------------------------------------------- // void CMyAppContainer::InitListBoxL() { // construct listbox item array CDesCArray *itemList = new (ELeave) CDesCArrayFlat(KGranularityOfArray); itemList->AppendL(_L("\tFirst item\t\t")); itemList->AppendL(_L("\tSecond item\t\t")); // set items and ownership iListBox->Model()->SetItemTextArray(itemList); iListBox->Model()->SetOwnershipType(ELbmOwnsItemArray); iListBox->SetCurrentItemIndex(0); iListBox->SetFocus(ETrue); iListBox->HandleItemAdditionL(); }