Partilhar via


Gestos Flicks

O Windows Vista inclui um conjunto de oito gestos básicos de movimento . Flicks são movimentos rápidos e lineares da caneta associados a ações e comandos de rolagem.

Detalhes do Flick

O recurso de movimentos fornece ao usuário uma nova maneira de interagir com o Tablet PC, permitindo que ações comuns sejam executadas fazendo gestos rápidos com a caneta. Os movimentos coexistem com, e não interrompem, as ações normais do usuário, como toques esquerdo e direito, rolagem e tinta digital.

Um flick é um gesto de caneta unidirecional que requer que o usuário entre em contato com o digitalizador em um movimento rápido de cintilação. Um movimento é caracterizado por alta velocidade e um alto grau de retidão. Um movimento é identificado pela sua direção. Os movimentos podem ser feitos em oito direções correspondentes às direções cardinal e secundária da bússola.

Uma ação ou ação de movimento é a ação ou atalho executado em resposta a um movimento. Os movimentos são mapeados para ações. A ilustração a seguir mostra um diagrama de oito movimentos de caneta que correspondem às suas ações de movimento.

ilustração mostrando o mapa de gestos

À medida que o usuário move a caneta sobre o digitalizador de um Tablet PC, o hardware gera pacotes de caneta que são roteados para o subsistema de entrada de caneta da plataforma Tablet PC. Normalmente, se a caneta estiver sendo usada como um substituto para o mouse, o subsistema de entrada da caneta pega esses pacotes de caneta e os envia, possivelmente com modificações, para o User32, o componente do Windows responsável pelo processamento da entrada do mouse. Se a caneta estiver sendo usada em uma superfície de tinta, a tinta será renderizada em vez de pacotes de mouse serem gerados.

A rotina de deteção de movimento é implementada no subsistema de entrada por caneta. A deteção de movimento começa com a caneta para baixo e continua até que:

  1. a sequência de pacotes recebidos é determinada como não sendo um flick ou

  2. Pen-up ocorre.

Enquanto a deteção de movimento está ocorrendo, os pacotes de caneta são retidos e não enviados para o sistema. Isso deve ser feito porque o envio de pacotes pode interferir com a ação de movimento que é executada. Por exemplo, enviar pacotes durante um movimento que mapeia para uma ação de cópia descartaria o que foi selecionado, o que significa que não haveria nada para copiar no momento em que a ação fosse enviada.

À medida que os pacotes fluem para o subsistema de entrada da caneta, a rotina de deteção de movimento calcula métricas sobre o comprimento, velocidade, tempo e curvatura do movimento que está sendo executado. A cada pacote que chega, a rotina de deteção atualiza cada uma dessas métricas. Assim que qualquer uma das métricas fica fora do que constituiria um movimento, a deteção de movimento termina e os pacotes são enviados.

Onde os movimentos são detetados

Os gestos de movimento são possíveis pelo fato de que os arrastos são normalmente realizados de forma bastante lenta. O usuário deve primeiro direcionar o ponto inicial do arrasto, executar o arrasto e, em seguida, direcionar o ponto final. Normalmente, isso levará muito tempo para se qualificar como um movimento. No entanto, em superfícies de tinta rápida, traços rápidos que se qualificariam como movimentos acontecem com frequência; cruzar um 't' é um exemplo comum. Assim, por padrão, a deteção de movimento é desativada em superfícies de tinta digital e ativada em todo o sistema.

Questões em foco

Uma vez que um movimento tenha sido detetado, uma sequência de eventos começa que, finalmente, leva o sistema a executar uma determinada ação em resposta ao movimento que ocorreu. Primeiro, a rotina de deteção dentro do subsistema de entrada de caneta determina para qual janela o movimento deve ser enviado. Esta é geralmente a janela que tem foco, mas há exceções. Para movimentos de rolagem, o movimento é enviado para a janela sobre a qual o movimento ocorreu. Note que esta não é necessariamente a janela com foco. Quando um movimento é enviado para uma janela que não tem foco, o foco não muda para essa janela.

Ações Flick

Uma vez que a janela de destino é determinada, essa janela pode lidar com o movimento em si, dependendo do comportamento de evento padrão ou programado. Os aplicativos podem responder à ação mais apropriada com base no aplicativo e na direção e posição do movimento. Por exemplo, em um aplicativo de mapeamento, movimentos para cima e para baixo podem aumentar ou diminuir o zoom em vez de rolar verticalmente, como seria esperado do comportamento padrão.

Para alertar um aplicativo de que ocorreu um movimento rápido, uma mensagem de janela é enviada para ele. Esta mensagem de janela contém o ponto inicial do movimento e a direção do movimento. Se o aplicativo manipula essa mensagem de janela, nenhuma ação adicional é executada pelo subsistema de entrada de caneta.

Depois que um movimento é detetado, o feedback visual que representa a ação de movimento é exibido na tela. Este feedback serve dois propósitos. Primeiro, ele confirma para o usuário que o movimento foi bem-sucedido. Em segundo lugar, ele lembra ao usuário qual ação foi executada, ajudando o usuário a conectar a direção do movimento com sua ação associada.

O feedback flick consiste em duas partes; um ícone que representa a ação e um rótulo contendo o nome da ação. O rótulo é exibido abaixo do ícone. O feedback é exibido imediatamente após a deteção do movimento. Embora os aplicativos possam personalizar seu comportamento em resposta a movimentos manipulando a mensagem da janela de movimento, o aplicativo não pode desativar ou modificar o feedback de movimento.

Espera-se que a maioria dos aplicativos não esteja ciente de movimento e, portanto, não manipule a mensagem da janela descrita acima. Se a mensagem não for tratada, o subsistema de entrada por caneta tomará outras medidas. Primeiro, ele procura a ação associada à direção do movimento detetado. Em seguida, ele tomará medidas (descritas na tabela abaixo) para fazer com que a janela de destino execute essa ação. Para muitas das ações de movimento, isso envolve o envio de um comando de aplicativo, mas certas ações que são implementadas não.

Processando comandos do aplicativo

Seu aplicativo deve responder a qualquer um dos comandos do aplicativo que podem ser potencialmente atribuídos a um gesto de movimento. Se um aplicativo não responder aode mensagens deWM_TABLET_FLICK, o Windows Vista seguirá enviando a notificação de WM_APPCOMMAND aplicável e, em seguida, por uma notificação de WM_KEYDOWN.

A seguir está uma lista de comandos do aplicativo que podem ser atribuídos a movimentos, com a mensagem de pressionamento de tecla de backup que pode ser enviada.

Comando Pressionamento de tecla de backup
APPCOMMAND_BROWSER_BACKWARD
Nenhum
APPCOMMAND_BROWSER_FORWARD
Nenhum
APPCOMMAND_COPY
Ctrl+C
APPCOMMAND_PASTE
Ctrl+V
APPCOMMAND_UNDO
Ctrl+Z
APPCOMMAND_DELETE
Del
APPCOMMAND_CUT
Ctrl+X
APPCOMMAND_OPEN
Ctrl+O
APPCOMMAND_PRINT
Ctrl+P
APPCOMMAND_SAVE
Ctrl+S
APPCOMMAND_REDO
Ctrl+Y
APPCOMMAND_CLOSE

Comandos de edição como Copiar, Colar, Recortar e Excluir podem ser direcionados contra uma seleção ou contra o objeto localizado na base do gesto de movimento. Se não houver seleção, você poderá usar os dados noEstrutura doFLICK_POINT para determinar qual, se houver, objeto pode ter sido o destino do comando de edição.

de referência da API Flicks

Respondendo a gestos de movimento