×
Namespaces

Variants
Actions

Eventos do teclado

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Artigo
Criado por cabezonxdg em Cabezonxdg
Última alteração feita por hamishwillee em 09 Dec 2011

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

Eventos do teclado - Exemplo

This page was last modified on 9 December 2011, at 07:21.
89 page views in the last 30 days.