This page was last modified 21:36, 26 October 2007.
Eventos do teclado
From Forum Nokia Wiki
Aplicações que desejam receber eventos do teclado precisam ter seus controles adicionados a Pilha de controles (Control Stack), uma vez na pilha os eventos do teclado serão entregues aos controles de acordo com a ordem da pilha (último que entra é o primeiro que sai - last in first out), eles terão a gerência destes eventos até que sejam consumidos (isto é, tenha sido utilizado por um controle).
Quando um evento no teclado ocorre, são gerados três tipos de eventos (EEventKeyDown, EEventKey e EEventKeyUp). A função CCoeControl::OfferKeyEventL será utilizada para gerênciar estes eventos.
AddToStackL() e RemoveFromStack()
Para adicionar um controle na pilha de controles é feita uma chamada a função AddToStackL, protótipo:
IMPORT_C void AddToStackL(const MCoeView &aView, CCoeControl *aControl, TInt aPriority=ECoeStackPriorityDefault, TInt aStackingFlags=ECoeStackFlagStandard);
Pode-se passar como referência apenas o view que contem o controle. Ou o controle como sendo o view. Como uma visão superficial pode-se ignorar os parâmetros aPriority e aStackingFlags iremos utilizar seus valores defaults.
O Controle deve ser removido da pilha através da função:
RemoveFromStack(CCoeControl *aControl);
NOTA: Para controles compostos, apenas o controle "pai" deve ser adicionado a pilha de controles. No controle composto é que então deve ser implementado o uso de controles pelos seus "filhos".
OfferKeyEventL
A função OfferKeyEventL deve ser implementada na classe do controle que deseja realizar eventos do teclado.
Protótipo:
virtual IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
Os parâmetros dessa função indicam qual tecla foi pressionada (TKeyEvent &aKeyEvent) e qual o seu evento (TEventCode aType). Esses códigos são enumerações que indicam qual tecla foi pressionada, (EKeyUpArrow, EKeyDownArrow, etc), a lista com todas as enumerações pode ser encontrada no cabeçalho e32keys.h. Caso o controle não tenha utilizado o teclado ele deve retornar EKeyWasNotConsumed, caso contrário retornar EKeyWasConsumed.
Quando um evento do teclado ocorre, essa função é chamada para cada controle que esteja na pilha de controles (control stack), até que cada um realize o evento e retorne EKeyWasConsumed ou EKeyWasNotConsumed.
Exemplo
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Error: ncnlist KERN-EXEC 3 | Estrella | Foro en Español (Spanish Forum) | 5 | 2007-05-30 21:08 |
| Recoger eventos de datos del log | Estrella | Foro en Español (Spanish Forum) | 1 | 2007-08-31 11:21 |
| interceptar emails | haydn | Foro en Español (Spanish Forum) | 4 | 2007-07-19 08:09 |
| Get rid of virtual mouse in FL3 browser plugin | cspelsor | Flash Lite on Nokia Devices | 7 | 2008-06-18 11:21 |
