TKeyResponse CMediaScreenListBox::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType) { if (EEventKeyDown == aType) { switch (aKeyEvent.iScanCode) { // Down arrow in UIQ case EStdQuartzKeyTwoWayDown: case EStdQuartzKeyFourWayDown: { if (CurrentItemIndex() < Model()->NumberOfItems() - 1) { SetCurrentItemIndex(CurrentItemIndex() + 1); DrawNow(); } return EKeyWasConsumed; } // Up arrow in UIQ case EStdQuartzKeyTwoWayUp: case EStdQuartzKeyFourWayUp: { if (CurrentItemIndex() > 0) { SetCurrentItemIndex(CurrentItemIndex() - 1); DrawNow(); } return EKeyWasConsumed; } default: return CEikTextListBox::OfferKeyEventL(aKeyEvent, aType); } } return EKeyWasNotConsumed; }
// --------------------------------------------------------- // From CCoeControl // CBTUiDeviceContainer::OfferKeyEventL // --------------------------------------------------------- TKeyResponse CBTUiDeviceContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType) { TRACE_FUNC_ENTRY // Inform model where we are now TInt bItemIndex = CurrentItemIndex(); // Shortcut for deleting a device if ((aKeyEvent.iCode == EKeyBackspace) && (bItemIndex >= 0)) { iView->HandleCommandL( EBTUICmdDelete ); return EKeyWasConsumed; } if ((aKeyEvent.iCode != EKeyLeftArrow) && (aKeyEvent.iCode != EKeyRightArrow)) { TRACE_FUNC_EXIT return iDeviceList->OfferKeyEventL(aKeyEvent, aType); }
/** * Handle key events. */ TKeyResponse CNPRListBox::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType) { if ( aKeyEvent.iCode == EKeyLeftArrow || aKeyEvent.iCode == EKeyRightArrow ) { return EKeyWasNotConsumed; } if ( aKeyEvent.iCode == EKeyDevice3) { TInt index = CurrentItemIndex(); switch(index) { case ENews: { SendNewsQueryL(); break; } case EStations: { static_cast<CNPRAppUi*>(CEikonEnv::Static()->EikAppUi())->ActivateLocalViewL(TUid::Uid(ENPRSearchStationListBoxViewId)); break; } case EPrograms: case EPlaylist: case ESettings: break; default: break; } } if ( iFocusControl != NULL && iFocusControl->OfferKeyEventL( aKeyEvent, aType ) == EKeyWasConsumed ) { return EKeyWasConsumed; } return CCoeControl::OfferKeyEventL( aKeyEvent, aType ); }
// --------------------------------------------------------- // CBTUiDeviceContainer::RefreshDeviceListL // This function will refresh only the changed parts of the // screen, if any. // --------------------------------------------------------- void CBTUiDeviceContainer::RefreshDeviceListL(const RDeviceArray* aDeviceArray,TInt selectedItem) { TRACE_FUNC_ENTRY MDesCArray* itemTextArray = iDeviceList->Model()->ItemTextArray(); CDesCArray* itemArray = (CDesCArray*) itemTextArray; TBool removal=EFalse; TBool addition=EFalse; TInt previouslySelected=CurrentItemIndex(); TBTDeviceName listItem; TInt deviceCount = aDeviceArray->Count(); TInt i = 0; for( ; i < deviceCount; i++) { TBTDevice device = *(*aDeviceArray)[i]; CreateListItemL(device, listItem); if(itemArray->Count()<=i) { itemArray->AppendL(listItem); addition=ETrue; } else if(listItem != (*itemArray)[i] ) { itemArray->Delete(i); itemArray->InsertL(i,listItem); removal=ETrue; addition=ETrue; } } if(itemArray->Count()-i>=0) { itemArray->Delete(i,itemArray->Count()-i); removal=ETrue; } if(removal) iDeviceList->HandleItemRemovalL(); if(addition) iDeviceList->HandleItemAdditionL(); if(deviceCount >0 ) iDeviceList->SetCurrentItemIndex( Max(selectedItem,0 )) ; else { HBufC* devEmptyText = NULL; if(iGroup ==EGroupPaired) { devEmptyText=iCoeEnv->AllocReadResourceLC( R_BT_NO_PAIRED_DEVICES); } else { devEmptyText=iCoeEnv->AllocReadResourceLC( R_BT_NO_BLOCKED_DEVICES); } iDeviceList->View()->SetListEmptyTextL(*devEmptyText ); CleanupStack::PopAndDestroy(devEmptyText); } if(addition | removal | previouslySelected!=selectedItem) iDeviceList->DrawDeferred(); TRACE_FUNC_EXIT }
TKeyResponse CSymellaSearchContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType) { if (aType == EEventKey) { switch (aKeyEvent.iCode) { case EKeyUpArrow: case EKeyDownArrow: return iListBox->OfferKeyEventL(aKeyEvent, aType); case EKeyDevice3: //EKeyOk { if (CurrentItemIndex() >= 0) { HBufC* info = CTR->DlManager()->CreateHitInfoL(CurrentItemIndex()); CleanupStack::PushL(info); /*CAknNoteDialog* note = new (ELeave) CAknNoteDialog; CleanupStack::PushL(note); note->SetTextL(*info); CleanupStack::Pop(); note->PrepareLC(R_HIT_INFO_NOTE); note->RunLD();*/ CAknMessageQueryDialog* dlg = new (ELeave)CAknMessageQueryDialog(); dlg->PrepareLC( R_MESSAGE_QUERY ); dlg->SetMessageTextL(info->Des()); dlg->QueryHeading()->SetTextL(_L("Hit info")); dlg->RunLD(); CleanupStack::PopAndDestroy(); } } break; case EKeyLeftArrow: case EKeyRightArrow: { // Empty FindBox Search Text _LIT(KBlank, ""); FindBox()->SetSearchTextL(KBlank); // Press Backspace on Empty FindBox to Close it TBool refresh = false; TKeyEvent key; key.iCode = 8; key.iScanCode = 1; key.iRepeats = 1; key.iModifiers = 0; AknFind::HandleFindOfferKeyEventL(key, EEventKey, this, ListBox(), FindBox(), ETrue, refresh); } break; default: { if (iFindBox) { TBool needRefresh( EFalse ); TBool flagsOfPopup( EFalse ); if ( AknFind::HandleFindOfferKeyEventL( aKeyEvent, aType, this, iListBox, iFindBox, ETrue, needRefresh ) == EKeyWasConsumed ) { if ( needRefresh ) { SizeChanged(); DrawNow(); } return EKeyWasConsumed; } } } break; } } return EKeyWasNotConsumed; }