Mouvement de balayage
Windows Vista inclut un ensemble de huit mouvements de de base. Les flèches sont des mouvements rapides et linéaires de stylet associés aux actions et commandes de défilement.
Flick Details
La fonctionnalité de balayage fournit à l’utilisateur une nouvelle façon d’interagir avec le PC tablette en permettant aux actions courantes d’être effectuées en effectuant des mouvements rapides avec le stylet. Les glissements coexistent avec, et ne perturbent pas, les actions utilisateur normales telles que les appuis gauche et droit, le défilement et l’entrée manuscrite.
Un est un mouvement de stylet unidirectionnel qui oblige l’utilisateur à contacter le numériseur dans un mouvement de balayage rapide. Un glissement est caractérisé par une vitesse élevée et un degré élevé de droite. Un glissement est identifié par sa direction. Les glissements peuvent être effectués dans huit directions correspondant aux directions cardinales et secondaires de boussole.
Une action ou action de glisser correspond à l’action ou au raccourci effectué en réponse à un glissement. Les glissements sont mappés aux actions. L’illustration suivante montre un diagramme de huit mouvements de stylet qui correspondent à leurs actions de glissement.
illustration
Lorsque l’utilisateur déplace le stylet sur le numériseur d’un PC Tablette, le matériel génère des paquets de stylet qui sont routés vers le sous-système d’entrée de stylet de la plateforme Tablet PC. Normalement, si le stylet est utilisé comme substitut de la souris, le sous-système d’entrée de stylet prend ces paquets de stylet et les envoie, éventuellement avec des modifications, à User32, le composant Windows responsable du traitement de l’entrée de la souris. Si le stylet est utilisé sur une surface d’entrée manuscrite, l’entrée manuscrite est rendue au lieu des paquets de souris générés.
La routine de détection de glissement est implémentée dans le sous-système d’entrée du stylet. La détection de glissement commence au stylet et se poursuit jusqu’à ce que :
la séquence de paquets reçus n’est pas un glissement ou
le stylet se produit.
Lors de la détection de glissement de page, les paquets de stylet sont conservés et ne sont pas envoyés au système. Cette opération doit être effectuée, car l’envoi de paquets peut interférer avec l’action de glissement effectuée. Par exemple, l’envoi de paquets lors d’un glissement qui mappe à une action de copie ignorerait ce qui a été sélectionné, ce qui signifie qu’il n’y aurait rien à copier au moment où l’action a été envoyée.
À mesure que les paquets circulent dans le sous-système d’entrée du stylet, la routine de détection de l’action calcule les métriques sur la longueur, la vitesse, le temps et la courbure du mouvement en cours d’exécution. Avec chaque paquet arrivant, la routine de détection met à jour chacune de ces métriques. Dès que l’une des métriques se trouve à l’extérieur de ce qui constituerait un coup de feu, la détection de glissement se termine et les paquets sont envoyés.
Où les glissements sont détectés
Les mouvements de balayage sont rendus possibles par le fait que les glissements sont généralement effectués assez lentement. L’utilisateur doit d’abord cibler le point de départ du glisser, effectuer le glissement, puis cibler le point de terminaison. Normalement, cela prendra trop de temps pour se qualifier comme un coup de feu. Toutefois, sur les surfaces manuscrites les traits rapides qui seraient qualifiés de glissements se produisent fréquemment ; la traversée d’un « t » est un exemple courant. Par défaut, la détection de glissement de page est désactivée sur les surfaces d’entrée manuscrite et activée à l’échelle du système.
Problèmes de focus
Une fois qu’une séquence d’événements a été détectée, une séquence d’événements commence, ce qui conduit finalement le système à effectuer une certaine action en réponse au glissement qui s’est produit. Tout d’abord, la routine de détection au sein du sous-système d’entrée de stylet détermine la fenêtre à laquelle le glissement doit être envoyé. Il s’agit généralement de la fenêtre qui a le focus, mais il existe des exceptions. Pour les glissements de défilement, le mouvement de défilement est envoyé à la fenêtre sur laquelle le mouvement s’est produit. Notez que ce n’est pas nécessairement la fenêtre avec focus. Lorsqu’un glissement de page est envoyé à une fenêtre qui n’a pas le focus, le focus ne passe pas à cette fenêtre.
Actions de glissement
Une fois la fenêtre cible déterminée, cette fenêtre peut gérer le glissement lui-même en fonction du comportement d’événement par défaut ou programmé. Les applications peuvent répondre à l’action la plus appropriée en fonction de l’application et de la direction et de la position du glissement. Par exemple, dans une application de mappage, les flèches haut et bas peuvent effectuer un zoom avant ou arrière au lieu de faire défiler verticalement, comme prévu à partir du comportement par défaut.
Pour alerter une application qu’un glissement de page s’est produit, un message de fenêtre lui est envoyé. Ce message de fenêtre contient à la fois le point de départ du glissement et la direction du glissement. Si l’application gère ce message de fenêtre, aucune autre action n’est effectuée par le sous-système d’entrée de stylet.
Une fois qu’un glissement est détecté, les commentaires visuels représentant l’action de glisser s’affichent à l’écran. Ces commentaires servent à deux fins. Tout d’abord, il confirme pour l’utilisateur que le glissement a réussi. Deuxièmement, il rappelle à l’utilisateur quelle action a été effectuée, aidant l’utilisateur à connecter la direction de glissement avec son action associée.
Le retour de glissement se compose de deux parties ; icône représentant l’action et une étiquette contenant le nom de l’action. L’étiquette est affichée sous l’icône. Les commentaires s’affichent immédiatement après la détection du glissement. Bien que les applications puissent personnaliser leur comportement en réponse à des sauts de page en gérant le message de fenêtre de glissement, l’application ne peut pas désactiver ou modifier les commentaires de glissement.
On s’attend à ce que la plupart des applications ne soient pas conscientes et ne gèrent donc pas le message de fenêtre décrit ci-dessus. Si le message n’est pas géré, le sous-système d’entrée de stylet prend d’autres mesures. Tout d’abord, il recherche l’action associée à la direction du glissement détecté. Ensuite, il faudra des étapes (décrites dans le tableau ci-dessous) pour que la fenêtre cible effectue cette action. Pour la plupart des actions de glissement, cela implique l’envoi d’une commande d’application, mais certaines actions implémentées ne le font pas.
Traitement des commandes d’application
Votre application doit répondre à l’une des commandes d’application susceptibles d’être affectées à un mouvement de balayage. Si une application ne répond pas aumessageWM_TABLET_FLICK, Windows Vista suit en envoyant la notification WM_APPCOMMAND applicable, suivie d’une notification WM_KEYDOWN.
Voici une liste des commandes d’application qui peuvent être affectées à des mouvements de glissement, avec le message de séquence de touches de sauvegarde qui peut être envoyé.
Commander | Séquence de touches de sauvegarde |
---|---|
APPCOMMAND_BROWSER_BACKWARD |
Aucun |
APPCOMMAND_BROWSER_FORWARD |
Aucun |
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 |
Les commandes d’édition telles que Copier, Coller, Couper et Supprimer peuvent être dirigées vers une sélection ou sur l’objet situé à la base du mouvement de balayage. S’il n’existe aucune sélection, vous pouvez utiliser les données dans la FLICK_POINT Structure pour déterminer ce que, le cas échéant, l’objet a peut-être été la cible de la commande d’édition.