Table des Matières du Clavier      Index du Clavier

Le voyage d'une Frappe de Clavier

Quand l'utilisateur appuie sur une touche, une série d'évènements est générée pour obtenir cette action. Suivons les bits à travers le système après que l'utilisateur ait pressé une touche sur le clavier.


Etape 1: L'ajout du Serveur d' Entrée

Quand l'utilisateur appuie sur une touche, l'entité responsable pour reconnaītre cette action est l'ajout du serveur en entrée pour le périphérique de clavier sur lequel la touche a été préssée. L'ajout utilise la table de touches courante (qu'il a obtenue en appelant get_key_map()) pour transformer le code de touche vers le caractère.

L'ajout construit alors un BMessage B_KEY_DOWN ou B_UNMAPPED_KEY_DOWN, contenant à la fois le code de touche grossière et les caractères actuels générés par la touche, et envoie le message au Serveur de l'Application en appelant la fonction BInputServerDevice::EnqueueMessage().


Etape 2: Le Serveur d'Application

Le Serveur d'Application reçoit le message de l'ajout du Serveur en Entrée et décide ce qu'il doit faire avec cela. Si la touche préssée est quelque chose que le serveur d'application attrape, comme une frappe de touche de changement d'espace de travail, il reste suspendu en interne.

Autrement, le Serveur d'Application situe la fenêtre active et passe BMessage ainsi que sa fonction BWindow::DispatchMessage().


Etape 3: La Fenêtre Active

La fonction BWindow::DispatchMessage() reçoit BMessage du Serveur d'Application, et intercepte des touches (comme des raccourcis de menus et la séquence de fermeture fenêtre Commande-W). Si ce n'est pas une touche que la classe BWindow (ou une classe dérivée) veut intercepter, DispatchMessage passe le message ainsi que la fonction de vue BView::MessageReceived() actuellement sélectionnée.


Etape 4: La Vue Sélectionnée

Le message arrive finalement à la vue qui est actuellement sélectionnée dans la fenêtre active. Cette fonction de vue MessageReceived() calcule la touche appuyée de la manière qu'il veut.

Pareillement, quand la touche est relāchée, un évènement B_KEY_UP ou B_UNMAPPED_KEY_UP est envoyé par le même chemin.


Table des Matières du Clavier     Index du Clavier


The Be Book,
...in lovely HTML...
for BeOS Release 5.

Copyright © 2000 Be, Inc. All rights reserved..