It should work...
Creation:
Code:
CreateScrollBar()
{
iModel = TEikScrollBarModel();
iScrollBarFrame = new(ELeave) CEikScrollBarFrame(this, NULL, ETrue);
iScrollBarFrame->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff /*Auto*/, CEikScrollBarFrame::EAuto);
iModel.iThumbSpan = 0;
iModel.iThumbPosition = 0;
iModel.iScrollSpan = totalNrOfLines - maxNrOfVisLines + 1; //you calculate this
iScrollBarFrame->Tile(&iModel);
iScrollBarFrame->MoveVertThumbTo(iModel.iThumbPosition);
}
OfferKeyEvent:
Code:
OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)
{
if(aType == EEventKey)
{
if (aKeyEvent.iCode == EKeyDownArrow)
{
if((iModel.iThumbPosition + 1) < iModel.iScrollSpan )
{
iScrollBarFrame->MoveVertThumbTo(++iModel.iThumbPosition);
DrawNow();
}
return EKeyWasConsumed;
}
if (aKeyEvent.iCode == EKeyUpArrow)
{
if(iModel.iThumbPosition > 0)
{
iScrollBarFrame->MoveVertThumbTo(--iModel.iThumbPosition);
DrawNow();
}
return EKeyWasConsumed;
}
iScrollBarFrame->Tile(&iModel);
//iScrollBarFrame->DrawScrollBarsNow();
iScrollBarFrame->MoveVertThumbTo(iModel.iThumbPosition);
}
return EKeyWasNotConsumed;
}