Gestos de movimentos
O Windows Vista inclui um conjunto de oito gestos básicos de movimento. Os movimentos de caneta linear são rápidos associados a ações de rolagem e comandos.
Detalhes do movimento
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 e não interrompem ações normais do usuário, como toques à esquerda e à direita, rolagem e escrita à tinta.
Um movimento é um gesto de caneta unidirecional que exige que o usuário entre em contato com o digitalizador em um movimento rápido de movimento de movimento. Um movimento é caracterizado por alta velocidade e um alto grau de reto. Um movimento é identificado por sua direção. Movimentos podem ser feitos em oito direções correspondentes às direções cardeais e secundárias da bússola.
Uma ação ou ação de movimento é a ação ou o 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 ações de movimento.
ilustração
À medida que o usuário move a caneta sobre o digitalizador de um Tablet PC, o hardware gera pacotes de caneta que são roteado 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 de caneta usará esses pacotes de caneta e os enviará, 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 escrita à tinta, a tinta será renderizada em vez de os pacotes do mouse serem gerados.
A rotina de detecção de movimento é implementada no subsistema de entrada de caneta. A detecção de movimentos começa na caneta para baixo e continua até:
a sequência de pacotes recebidos é determinada como não ser um movimento ou
ocorre uma pen-up.
Enquanto a detecção de movimentos 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 na ação de movimento executada. Por exemplo, enviar pacotes durante um movimento que mapeia para uma ação de cópia ignoraria o que foi selecionado, o que significa que não haveria nada para copiar quando a ação fosse enviada.
À medida que os pacotes fluem para o subsistema de entrada de caneta, a rotina de detecção de movimento calcula as métricas no comprimento, velocidade, tempo e curvatura do movimento que está sendo executado. Com cada pacote que chega, a rotina de detecção atualiza cada uma dessas métricas. Assim que qualquer uma das métricas ficar fora do que constituiria um movimento, a detecção de movimentos termina e os pacotes são enviados.
Onde os movimentos são detectados
Gestos de movimento são possibilitados pelo fato de que os arrastes normalmente são executados lentamente. O usuário deve primeiro direcionar o ponto inicial do arrastar, executar o arrastar e, em seguida, direcionar o ponto final. Normalmente, isso levará muito tempo para se qualificar como um filme. No entanto, em superfícies de escrita à tinta traços rápidos que se qualificam como movimentos acontecem com frequência; cruzar um 't' é um exemplo comum. Assim, por padrão, a detecção de movimento é desativada sobre superfícies de escrita à tinta e ativada em todo o sistema.
Problemas de foco
Depois que um movimento é detectado, uma sequência de eventos começa que, em última análise, leva o sistema a executar uma determinada ação em resposta ao movimento que ocorreu. Primeiro, a rotina de detecção dentro do subsistema de entrada de caneta determina para qual janela o movimento deve ser enviado. Essa 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. Observe que essa não é necessariamente a janela com foco. Quando um movimento é enviado para uma janela que não tem foco, o foco não é alterado para essa janela.
Ações de Movimento
Depois que a janela de destino for determinada, essa janela poderá manipular 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 ampliar ou reduzir em vez de rolar verticalmente, como seria esperado do comportamento padrão.
Para alertar um aplicativo de que ocorreu um movimento, 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 manipular essa mensagem de janela, nenhuma ação adicional será tomada pelo subsistema de entrada de caneta.
Depois que um movimento é detectado, os comentários visuais que representam a ação de movimento são exibidos na tela. Esses comentários servem a duas finalidades. Primeiro, ele confirma para o usuário que o filme 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.
Os comentários do filme consistem em duas partes; um ícone que representa a ação e um rótulo que contém o nome da ação. O rótulo é exibido abaixo do ícone. Os comentários são exibidos imediatamente após a detecçã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 desabilitar ou modificar os comentários do movimento.
Espera-se que a maioria dos aplicativos não esteja ciente do movimento e, portanto, não manipulará a mensagem de janela descrita acima. Se a mensagem não for tratada, o subsistema de entrada de caneta tomará mais medidas. Primeiro, ele pesquisa a ação associada à direção do movimento detectado. Em seguida, ele executará as etapas (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.
Comandos de aplicativo de processamento
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 ao WM_TABLET_FLICK Message, o Windows Vista acompanhará enviando a notificação de WM_APPCOMMAND aplicável, seguida por uma notificação WM_KEYDOWN.
A seguir está uma lista de comandos de aplicativo que podem ser atribuídos a movimentos, com a mensagem de pressionamento de tecla de backup que pode ser enviada.
Comando | Pressionamento de teclas 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 |
A edição de comandos como Copiar, Colar, Recortar e Excluir pode ser direcionada 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 no FLICK_POINT Structure para determinar qual, se houver, o objeto pode ter sido o destino do comando de edição.
Tópicos relacionados
-
Referência da API do Flicks