TextInputPanel pour les utilisateurs de PenInputPanel
La version de Windows Vista inclut un nouvel objet de programmabilité pour le panneau d’entrée tablet PC qui offre une nouvelle gamme de possibilités pour la façon dont une application peut utiliser et interagir avec le panneau d’entrée. Pour la première fois, les développeurs d’applications peuvent positionner l’icône In-Place panneau d’entrée pour qu’elle s’aligne sur une zone de texte ou la placer dans le coin d’une surface d’entrée manuscrite pour offrir l’accès à un autre mode d’entrée. Les développeurs ont le même contrôle sur le positionnement une fois l’icône du panneau d’entrée développée dans le panneau d’entrée In-Place. Cela permet de s’assurer que le In-Place Panneau d’entrée ne chevauche jamais les éléments clés de l’interface utilisateur dans la disposition d’une application ou même de redistribuer l’interface utilisateur d’une application pour faire de l’espace pour le panneau d’entrée In-Place, puis le placer dans l’espace réservé. Le nouveau modèle de programmabilité prend en charge bien plus que le simple positionnement, mais les développeurs peuvent également personnaliser la zone d’entrée, le mode de correction et de nombreuses autres propriétés du panneau d’entrée pour personnaliser l’expérience de saisie de texte dans une application. Enfin, pour la première fois, une application peut recevoir l’entrée manuscrite de l’utilisateur, en plus du texte reconnu, associée aux insertions de texte à partir du panneau d’entrée. Cela permet de nouveaux scénarios d’application, notamment l’entrée manuscrite dans les journaux de suivi des modifications, et permet aux utilisateurs de modifier ou d’afficher l’entrée manuscrite dans l’application. Ces nouvelles fonctionnalités de programmabilité sont le résultat direct des commentaires reçus par Microsoft sur l’histoire du développeur du panneau d’entrée et représentent la première étape vers une intégration plus étroite des applications et du panneau d’entrée.
Afin de fournir ce modèle de programmabilité enrichi du panneau d’entrée, le mécanisme existant pour interagir par programmation avec le panneau d’entrée, l’objet PenInputPanel , est déprécié et remplacé par le nouvel objet TextInputPanel . En plus de fournir de nouvelles fonctionnalités de programmabilité, l’objet TextInputPanel fournit également une approche proche de toutes les fonctionnalités de programmation de l’objet PenInputPanel . L’objet TextInputPanel est inclus dans Windows Vista et le Kit de développement logiciel Windows Vista. L’objet TextInputPanel est uniquement compatible avec le panneau d’entrée Windows Vista et ne peut pas être utilisé avec le Panneau d’entrée Windows XP Service Pack 2 ou un volet d’entrée plus ancien. Les applications qui ont été précédemment écrites pour utiliser l’objet PenInputPanel continueront de fonctionner avec le panneau d’entrée Windows Vista. Toutefois, lors de l’écriture de nouvelles applications Tablette, les développeurs sont vivement encouragés à utiliser le nouvel objet TextInputPanel au lieu de l’objet PenInputPanel déprécié.
Chacune des options de programmabilité de l’objet TextInputPanel peut être appliquée par champ de texte. Pour ce faire, joignez une instance de l’objet TextInputPanel à l’aide de la propriété AttachedEditWindow. La propriété doit être définie sur le handle de fenêtre pour le champ de texte.
Notes
: Plusieurs des propriétés et méthodes décrites ci-dessous s’appliquent lorsque le panneau d’entrée est en mode d’interaction sur place et non quand le panneau d’entrée est en mode d’interaction flottant ou ancré. Le mode d’interaction sur place est le comportement du panneau d’entrée où le fait de placer le focus dans un champ modifiable entraîne l’affichage de l’icône du panneau d’entrée en regard du champ, et en appuyant sur l’icône du panneau d’entrée, le panneau d’entrée se développe. Les méthodes et propriétés qui s’appliquent uniquement lorsque le panneau d’entrée est en mode d’interaction sur place contiennent toutes « InPlace » dans le nom de la méthode ou de la propriété.
Contrôle de l’icône du panneau d’entrée et visibilité du panneau d’entrée
Le premier aspect du panneau d’entrée sur lequel les développeurs d’applications ont plus de contrôle dans Windows Vista est sa visibilité. À l’aide de l’objet TextInputPanel , il est possible de contrôler la visibilité du panneau d’entrée In-Place de trois manières. Avec une combinaison de propriétés et de méthodes, une application peut déterminer si le In-Place panneau d’entrée affiche, quand le panneau d’entrée In-Place s’affiche et s’il apparaît en premier comme icône du panneau d’entrée ou s’il affiche immédiatement développé. En combinant ces techniques de contrôle de la visibilité avec les techniques de contrôle du positionnement décrites dans la section suivante, les développeurs d’applications peuvent créer des points de lancement personnalisés et des flux de travail personnalisés à l’aide du panneau d’entrée In-Place dans une application.
Notes
Les propriétés et méthodes décrites dans cette section s’appliquent uniquement lorsque le panneau d’entrée est en mode d’interaction In-Place.
Tout d’abord et plus fondamentalement, il est possible d’empêcher la In-Place panneau d’entrée et l’icône du panneau d’entrée d’apparaître en définissant la propriété InPlaceVisibleOnFocus sur false. La définition de la valeur true rétablit la valeur par défaut du système qui s’affiche lorsque cela est possible, à condition qu’elle n’ait pas été désactivée par l’utilisateur ou l’stratégie de groupe. Cette option est utile pour les applications qui incluent des solutions de saisie de texte personnalisées en guise d’alternative au panneau d’entrée.
Deuxièmement, en définissant la propriété DefaultInPlaceState , un développeur peut spécifier l’état sur place, tel que spécifié par l’énumération InPlaceState , le panneau d’entrée In-Place s’affiche lorsque le focus est placé dans un champ de texte. La valeur par défaut du système est que le panneau d’entrée In-Place apparaisse dans l’état de pointage, sauf si le panneau d’entrée est déjà visible dans l’état développé, auquel cas le panneau d’entrée reste développé. Si vous définissez la propriété DefaultInPlaceStatesur InPlaceState_Expanded , le panneau d’entrée In-Place apparaît toujours développé, plutôt que l’icône du panneau d’entrée qui apparaît en premier, puis oblige l’utilisateur à appuyer sur l’icône du panneau d’entrée avant que le panneau d’entrée ne se développe. Les deux autres options sont InPlaceState_Auto, c’est-à-dire le comportement par défaut du système et InPlaceState_HoverTarget qui provoque toujours l’affichage de l’icône du panneau d’entrée. La possibilité de spécifier que le panneau d’entrée In-Place apparaît toujours développé est une nouveauté de l’objet TextInputPanel et non possible à l’aide de l’objet PenInputPanel . L’illustration suivante montre l’icône In-Place panneau d’entrée et les états développés du panneau.
En plus de pouvoir contrôler l’état sur place, il est également possible pour un développeur de déterminer l’état sur place à un moment donné en obtenant la propriété CurrentInPlaceState . CurrentInPlaceState est égal à DefaultInPlaceState lorsque le panneau d’entrée n’est pas visible, sauf lorsque DefaultInPlaceState est InPlaceState_Auto auquel cas le CurrentInPlaceState devient InPlaceState_HoverTarget. Les événements InPlaceVisibilityChanging / InPlaceVisibilityChanged peuvent être utilisés pour suivre l’état de visibilité du panneau d’entrée In-Place.
Enfin, un développeur peut forcer le In-Place panneau d’entrée à masquer ou à afficher à l’aide de la méthode SetInPlaceVisibility . Si le développeur a précédemment défini la propriété DefaultInPlaceState , le panneau d’entrée apparaît dans l’état spécifié lorsqu’il est forcé de s’afficher. Une application n’est autorisée à masquer ou à afficher le In-Place panneau d’entrée que lorsque le focus est actuellement dans la fenêtre à laquelle l’objet TextInputPanel est attaché et lorsque le panneau d’entrée n’est pas ouvert dans un autre mode d’interaction, par exemple ancré ou flottant. La possibilité de forcer le In-Place panneau d’entrée à masquer ou à afficher est également nouvelle avec l’objet TextInputPanel et n’est pas possible à l’aide de l’objet PenInputPanel .
Ces options donnent aux développeurs d’applications un contrôle précis sur le moment où le panneau d’entrée In-Place s’affiche et dans quel état. En personnalisant l’état sur place par défaut et en contrôlant la visibilité sur place indépendamment des changements de focus, un développeur d’application peut créer un flux de travail personnalisé lorsque le panneau d’entrée répond aux paramètres de l’application ou à une entrée utilisateur dans une application.
Positionnement absolu de l’icône du panneau d’entrée et du panneau d’entrée
La nouvelle fonctionnalité la plus attrayante trouvée dans l’objet TextInputPanel est peut-être le positionnement absolu du panneau d’entrée In-Place. Avec cette nouvelle fonctionnalité, un développeur d’applications peut s’assurer que le panneau d’entrée In-Place ne chevauche pas un ou plusieurs éléments visuels clés dans une disposition d’application. À l’aide de l’objet PenInputPanel , il était possible de positionner le In-Place panneau d’entrée par rapport à un champ de texte en fonction d’un décalage. Toutefois, le panneau d’entrée s’ajuste tout de même pour rester à l’écran. Pour la première fois dans Vista, une application peut positionner le In-Place Panneau d’entrée à une position absolue à l’aide des coordonnées d’écran. En outre, la responsabilité de conserver le panneau d’entrée à l’écran est laissée au développeur de l’application, ce qui supprime la possibilité que le panneau d’entrée se repositionne automatiquement, et apparemment de façon aléatoire.
Notes
Les propriétés et méthodes décrites dans cette section s’appliquent uniquement lorsque le panneau d’entrée est en mode d’interaction In-Place.
Les deux méthodes principales nécessaires pour positionner absolument le In-Place panneau d’entrée sont SetInPlacePosition et SetInPlaceHoverTargetPosition. La première est utilisée pour spécifier l’emplacement du panneau d’entrée In-Place et la seconde est utilisée pour spécifier l’emplacement de l’icône du panneau d’entrée pour le panneau d’entrée In-Place. Si une application choisit de définir uniquement l’emplacement de l’icône du panneau d’entrée et non l’emplacement du panneau d’entrée In-Place, le panneau d’entrée In-Place apparaît à l’emplacement par défaut déterminé par le système. De même, si une application repositionne le In-Place panneau d’entrée, mais pas l’icône du panneau d’entrée, l’icône du panneau d’entrée apparaît à l’emplacement par défaut. L’emplacement est spécifié dans les coordonnées de l’écran. Le point réel positionné est le coin supérieur gauche de l’icône du panneau d’entrée ou du panneau d’entrée sans peigne de correction développé. Lorsque le peigne de correction est développé, le point en cours de positionnement ne change pas. (Voir la figure 2 ci-dessous) Il n’existe aucune restriction quant à l’emplacement du panneau d’entrée In-Place et de l’icône de panneau d’entrée In-Place et il incombe aux applications appelant ces méthodes de les conserver à l’écran. Les deux méthodes sont synchrones, ce qui signifie que le positionnement se produit avant le retour de la méthode. Dans le cas où le panneau d’entrée est déjà ouvert en mode d’interaction flottant ou ancré, une tentative de positionnement du panneau d’entrée In-Place ou de l’icône In-Place panneau d’entrée échoue. En outre, les méthodes échouent si la fenêtre attachée à l’objet TextInputPanel n’a pas le focus actuellement.
Un appel à SetInPlacePosition ou SetInPlaceHoverTargetPosition n’entraîne pas automatiquement l’affichage du panneau d’entrée In-Place ou de l’icône du panneau d’entrée, il définit simplement la position pour la prochaine fois qu’ils seront affichés. L’appel de SetInPlaceVisibility peut être utilisé pour les forcer à s’afficher immédiatement.
Lors du positionnement du In-Place Panneau d’entrée, le calcul de la sortie de l’écran peut être un peu difficile. Pour faciliter ce processus, plusieurs propriétés de l’objet TextInputPanel peuvent être utilisées pour simplifier ce processus. Ensemble, ces propriétés et l’événement peuvent être utilisés pour déterminer la taille exacte du panneau d’entrée In-Place dans tous ses états :
- InPlaceBoundingRectangle : cette propriété fournit le rectangle englobant pour le panneau d’entrée In-Place lorsque la zone d’entrée la plus grande pour la langue d’entrée actuelle s’affiche. Si le pavé d’écriture ou le pavé de caractères sont déterminés pour la plus grande zone d’entrée, la hauteur du bouton Insérer est incluse. Elle n’inclut pas la hauteur du peigne de correction. Lorsque la In-Place panneau d’entrée augmente automatiquement, la paire d’événements InPlaceSizeChanging / InPlaceSizeChanged est déclenchée et la valeur de cette propriété est mise à jour pour inclure la zone d’écriture ou la ligne d’écriture supplémentaire.
- PopUpCorrectionHeight : cette propriété spécifie la hauteur du peigne de correction post-insertion lorsqu’il est positionné au-dessus du panneau d’entrée. Pour obtenir la pleine hauteur du panneau d’entrée In-Place avec le peigne de correction post-insertion apparu, ajoutez la hauteur de inPlaceBoundingRectangle à la fenêtre PopUpCorrectionHeight.
Comme alternative plus simple à la définition de la position absolue du panneau d’entrée In-Place et de l’icône du panneau d’entrée, une application peut simplement spécifier si le panneau d’entrée In-Place apparaît par défaut au-dessus ou en dessous d’un champ de saisie de texte. De cette façon, il est possible d’éviter les chevauchements d’éléments dans la disposition de l’application de manière plus souple. Pour ce faire, l’application définit PreferredInPlaceDirection surInPlaceDirection_Bottom ou InPlaceDirection_Top. La propriété est une préférence, car la In-Place Panneau d’entrée remplace la préférence définie par l’application lorsque cela est nécessaire pour conserver le panneau d’entrée à l’écran. La valeur par défaut du système consiste à placer le In-Place panneau d’entrée sous un champ de texte lorsque cela est possible et à le placer au-dessus. La définition de PreferredInPlaceDirectionsur InPlaceDirection_Auto restaure la valeur par défaut du système.
Ensemble, les propriétés, les méthodes et les événements de l’objet TextInputPanel donnent aux développeurs le contrôle nécessaire sur le In-Place panneau d’entrée pour pouvoir positionner intelligemment le panneau d’entrée In-Place et l’icône du panneau d’entrée dans une disposition d’application afin qu’ils n’interrompent pas le flux de disposition et, dans certains cas, puissent apparaître intégrés. Ce nouveau niveau de contrôle est une grande victoire pour la conception d’applications tablettes.
Accès aux trois zones du panneau d’entrée : bloc d’écriture, pavé de caractères et clavier
Le panneau d’entrée comporte trois zones d’entrée : le pavé d’écriture, le pavé de caractères et le clavier. À l’aide de l’objet TextInputPanel , une application peut spécifier la zone d’entrée par défaut qui s’affiche à l’utilisateur lorsque le panneau d’entrée s’ouvre. La main raison pour laquelle une application le fait est de coupler la zone d’entrée avec le type d’entrée d’un champ spécifique. Par exemple, le pavé d’écriture est probablement mieux adapté pour remplir un champ de commentaires, mais le clavier peut être plus pratique pour entrer un numéro de série de produit qui contient à la fois des chiffres et des lettres. Pour spécifier la zone d’entrée par défaut, une application définit la propriété DefaultInputArea sur l’une des trois zones d’entrée définies par l’énumération PanelInputArea . L’illustration suivante montre les trois zones d’entrée.
La zone d’entrée par défaut du système est le panneau d’écriture pour l’anglais, le Français, l’allemand, l’espagnol, l’italien, le portugais, le néerlandais et toutes les autres langues d’entrée latines. Pour les langues d’entrée d’Asie de l’Est, notamment le japonais, le chinois et le coréen, la zone d’entrée par défaut est le pavé de caractères. Toutefois, lorsque l’utilisateur modifie la zone d’entrée, il remplace la zone d’entrée par défaut pour la langue d’entrée actuelle et est stocké en tant que nouvelle valeur par défaut pour cette langue d’entrée. Le clavier est la zone d’entrée par défaut pour les champs de mot de passe, quelle que soit la langue d’entrée, sauf si la sécurité du mot de passe a été désactivée par l’utilisateur ou la stratégie de groupe. Dans tous les cas, la définition de la zone du panneau d’entrée par défaut remplace la valeur par défaut du système, sauf si le champ actuel est un champ de mot de passe ou que le module de reconnaissance d’écriture manuscrite pour la langue d’entrée actuelle ne prend pas en charge la zone d’entrée sélectionnée par programmation. La définition de la propriété DefaultInputArea sur InPlaceDirection_Auto restaure les paramètres par défaut du système.
Que la zone du panneau d’entrée par défaut ait été définie par programme ou non, l’utilisateur a la possibilité de modifier la zone actuelle du panneau d’entrée une fois que le panneau d’entrée est ouvert. Une fois que l’utilisateur a modifié la zone d’entrée actuelle, la sélection de l’utilisateur persiste jusqu’à ce que le panneau d’entrée se ferme ou que l’utilisateur modifie à nouveau la sélection. Une fois le panneau d’entrée fermé et rouvert, la zone d’entrée par défaut définie par programme réappantitait.
Étant donné que la zone actuelle du panneau d’entrée peut être différente de la zone du panneau d’entrée par défaut, une application peut interroger la propriété CurrentInputArea pour déterminer quelle zone d’entrée est actuellement visible. Si le panneau d’entrée n’est actuellement pas visible, la zone d’entrée actuelle est égale à la zone d’entrée par défaut. La propriété CurrentInputArea n’est jamais égale à PanelInputArea_Auto. Si defaultInputArea est égal à PanelInputArea_Auto, le CurrentInputArea est égal à la dernière zone d’entrée affichée ou la valeur par défaut système pour la langue d’entrée actuelle si le panneau d’entrée n’a jamais été affiché.
La principale différence entre la prise en charge de la zone d’entrée trouvée dans l’objet PenInputPanel et celle de l’objet TextInputPanel est le fait que l’application dispose désormais de la possibilité de définir la zone d’entrée par défaut sur le pavé de caractères, en plus du pavé d’écriture et du clavier.
À l’aide des propriétés ci-dessus, une application peut contrôler la zone d’entrée du panneau d’entrée affichée dans différents champs et optimiser l’expérience de saisie de texte de l’utilisateur. En outre, l’application peut maintenir la connaissance de la zone d’entrée actuelle et prendre des décisions conditionnelles en fonction de la zone d’entrée la mieux adaptée à la tâche utilisateur actuelle.
Informations détaillées sur le mode d’interaction du panneau d’entrée
En plus de pouvoir détecter la zone d’entrée actuelle du panneau d’entrée, il est également possible de détecter le mode d’interaction actuel : In-Place, Docked ou Floating. Il peut être important pour l’application de connaître le mode d’interaction actuel pour comprendre comment l’utilisateur interagit avec l’application ou parce que certaines méthodes et propriétés de l’objet TextInputPanel s’appliquent uniquement au mode d’interaction In-Place. Par exemple, dans l’application, le redistribue les éléments d’interface utilisateur existants, puis positionne l'In-Place panneau d’entrée sur une zone vide de ses interfaces utilisateur doit case activée pour s’assurer que le mode d’interaction actuel est en place avant d’effectuer des ajustements.
La propriété CurrentInteractionMode de l’objet TextInputPanel stocke le mode d’interaction actuel choisi par l’utilisateur. Les modes possibles sont définis par l’énumération InteractionMode comme suit :
InteractionMode_InPlace : dans le mode d’interaction In-Place, le panneau d’entrée apparaît en regard du champ d’entrée de texte qui a actuellement le focus. Par défaut, l’icône In-Place panneau d’entrée s’affiche lorsqu’un point d’insertion est placé dans un champ d’entrée de texte. En appuyant sur l’icône Panneau d’entrée, le panneau d’entrée se développe. Le panneau d’entrée In-Place n’est visible que lorsqu’un point d’insertion se trouve dans un champ modifiable.
InteractionMode_Floating : le mode d’interaction flottante est similaire au mode d’interaction InPlace, sauf qu’il n’est pas lié à un point d’insertion. Le panneau d’entrée flottant s’ouvre en appuyant sur l’onglet Panneau d’entrée qui apparaît par défaut sur le bord gauche de l’écran. Le panneau d’entrée flottant et l’onglet Panneau d’entrée peuvent être déplacés et repositionnés par l’utilisateur. En mode flottant, le positionnement et le contrôle du panneau d’entrée sont entièrement laissés à l’utilisateur.
InteractionMode_DockedTop : dans le mode d’interaction Docked-Top panneau d’entrée s’affiche en haut de l’écran et le bureau actif est redimensionné afin que le panneau d’entrée ne chevauche pas d’autres fenêtres ou éléments d’interface utilisateur. En mode ancré, le panneau d’entrée ne peut pas être glissé ou déplacé.
InteractionMode_DockedBottom : le mode d’interaction Docked-Bottom est identique au mode Docked-Top, sauf que le panneau d’entrée apparaît en bas de l’écran.
Lorsque le panneau d’entrée n’est pas visible, le mode d’interaction actuel est In-Place.
La publication du modèle d’interaction actuel est une autre façon pour l’objet TextInputPanel de fournir plus d’informations sur l’état du panneau d’entrée que dans n’importe quelle version précédente.
Informations détaillées sur le mode de correction du panneau d’entrée
Le dernier aspect du panneau d’entrée que l’objet TextInputPanel vous fournit des informations détaillées sur et le contrôle est le mode de correction. La connaissance du mode de correction aide les applications à déterminer la taille actuelle du panneau d’entrée. Contrôler la façon dont la correction post-insertion se développe dans une application est un moyen de personnaliser l’expérience de correction dans une application.
Le peigne de correction peut apparaître dans deux modes de base : pré-insertion et post-insertion. Le peigne de correction de pré-insertion est utilisé pour corriger le texte avant de l’insérer dans une application. Il est activé en appuyant sur le texte en attente qui s’affiche sous la base de référence dans le pavé d’écriture à mesure que l’utilisateur écrit. Le peigne de correction post-insertion est utilisé pour corriger le texte après son insertion dans une application. Il est activé en plaçant le point d’insertion dans ou en sélectionnant le texte précédemment inséré. Au-delà des deux modes de base, il existe plusieurs variantes sur la façon dont le peigne de correction post-insertion peut apparaître. Tout d’abord, il peut apparaître au-dessus ou au-dessous du panneau d’entrée et deuxièmement, il peut apparaître réduit ou développé. Dans l’état réduit, le peigne de correction post-insertion affiche uniquement une liste de remplacements. Dans l’état développé, il inclut à la fois les alternatives et une zone pour réécrire le mot.
La propriété CurrentCorrectionMode permet à une application de déterminer la configuration actuelle du peigne de correction. Les valeurs possibles de cette propriété telle que définie par les énumérations CorrectionMode sont : NotVisible, PreInsertion, PostInsertionCollapsed et PostInsertionExpanded. Lorsqu’aucun panneau d’entrée ou peigne de correction n’est visible, currentCorrectionMode est NotVisible.
Par défaut, le système affiche le peigne de correction post-insertion développé lorsque le sélectionne le texte correctable et le montre réduit lorsque le point d’insertion est placé dans du texte correctable. Une application peut spécifier l’emplacement où le peigne de correction post-insertion doit toujours s’afficher développé en définissant la propriété ExpandPostInsertionCorrection sur true. La valeur par défaut du système est false. Lorsque la propriété ExpandPostInsertionCorrection est utilisée conjointement avec l’interface IHandWrittenTextInsertion , un développeur d’application peut ajouter à moindre coût la prise en charge de la correction aux applications qui ne l’obtiendraient pas automatiquement.
Le suivi et le contrôle de l’état de correction du panneau d’entrée sont l’une des nombreuses nouvelles fonctionnalités de l’objet TextInputPanel qui rendent possible l’intégration plus étroite du panneau d’entrée et de l’application.
Notification d’événement avant et après l’événement
Un autre aspect de la programmabilité du panneau d’entrée qui est considérablement amélioré dans l’objet TextInputPanel est le modèle d’événement. Maintenant, au lieu de déclencher uniquement des événements signalant une modification de l’état du panneau d’entrée après la modification, des événements distincts sont envoyés avant et après la modification. Les événements signalant le début d’un événement contiennent des verbes de temps présent tels que « Change » ou « Inserting », tandis que les événements signalant la conclusion d’un événement contiennent des verbes de temps passés tels que « Modifié » ou « Inséré ».
Ce modèle d’événement permet à une application de réagir à une modification avant ou au fur et à mesure qu’elle se produit. Le panneau d’entrée ne peut pas continuer avec une modification ou reprendre après la modification jusqu’à ce que les gestionnaires d’événements pour tous les événements soient terminés. Ces événements sont synchrones et, de cette façon, une application peut retarder une modification jusqu’à ce qu’elle ait fini de réagir. Toutefois, le moment où un gestionnaire d’événements exécute le panneau d’entrée devient inaccessible pour l’utilisateur et peut sembler suspendu. Il est donc important que le gestionnaire d’événements fonctionne correctement. Toutefois, il n’est pas possible pour une application d’empêcher ou d’annuler un événement. Tous les paramètres d’événement sont en lecture seule. Voici une description des six paires d’événements de l’objet TextInputPanel :
- InPlaceStateChanging / InPlaceStateChanged : notification indiquant que l’état sur place est sur le point ou vient de passer du pointeur à développé ou inversement. Les paramètres sont le nouvel et l’ancien état sur place. Coïncidence avec une modification de la valeur de la propriété CurrentInPlaceState .
- InPlaceSizeChanging / InPlaceSizeChanged : indiqué lorsque la taille du panneau d’entrée In-Place est sur le point de changer ou a changé en raison d’un redimensionnement de l’utilisateur, d’une croissance automatique ou d’un changement de zone d’entrée. Les paramètres sont le nouveau et l’ancien rectangle englobant. Coïncidence avec une modification de la valeur de la propriété InPlaceBoundingRectangle .
- InputAreaChanging / InputAreaChanged : indique quand la zone d’entrée du panneau d’entrée est sur le point de changer ou a changé de vers l’autre des trois zones d’entrée possibles : bloc d’écriture, pavé de caractères ou clavier. Les paramètres sont la nouvelle et l’ancienne zone d’entrée. Coïncide avec une modification de la valeur de la propriété CurrentInputArea
- CorrectionModeChanging / CorrectionModeChanged : notification indiquant que le mode de correction est sur le point de changer ou a changé. Les modes de correction possibles sont les suivants : non visible, pré-insertion, après insertion réduite et post-insertion développée. Les paramètres sont le nouveau et l’ancien mode de correction. Coïncide avec une modification de la valeur de la propriété CurrentCorrectionMode .
- InPlaceVisibilityChanging / InPlaceVisibilityChanged : indique quand la visibilité du panneau d’entrée In-Place est sur le point de changer ou a changé. Les paramètres sont la nouvelle et l’ancienne visibilité. Une nouvelle visibilité de false signifie que le panneau d’entrée In-Place n’est pas ouvert, mais n’empêche pas le panneau d’entrée d’être visible en mode d’interaction flottant ou ancré.
- TextInserting / TextInserted : indique quand le texte est sur le point d’être inséré ou a été inséré à partir du panneau d’entrée. Le paramètre est un tableau d’objets InkDisp , chacun contenant une ligne de l’encre et du texte qui composent l’insertion. Pour plus d’informations sur cet événement, consultez la section suivante.
Ces événements fournissent aux applications des informations essentielles sur les modifications apportées au panneau d’entrée et leur permettent de réagir en conséquence. Là encore, la modification du modèle d’événement du panneau d’entrée représente une étape vers une meilleure interaction entre les applications et le panneau d’entrée.
Prise en charge de la collecte de l’entrée manuscrite et du texte dans le panneau d’entrée
Enfin, une nouvelle fonctionnalité très puissante de l’objet TextInputPanel est la possibilité d’obtenir l’objet manuscrit pour le texte entré via le panneau d’entrée à partir du panneau d’entrée au moment de l’insertion du texte dans une application. Il s’agit d’une fonctionnalité souvent demandée à des fins de suivi des modifications et de conservation des enregistrements. Il permet également aux applications d’utiliser l’entrée manuscrite dans leur interface utilisateur en tant qu’élément statique ou avec une surface d’entrée manuscrite personnalisée.
Pour recevoir l’objet InkDisp pour le texte entré via le panneau d’entrée, une application doit s’inscrire pour recevoir les événements TextInserting ou TextInserted générés par l’objet TextInputPanel . L’événement TextInserting est déclenché immédiatement avant que le texte ne soit inséré à partir du panneau d’entrée dans une application et le texte n’est pas inséré tant que tous les gestionnaires d’événements ne sont pas terminés. L’événement TextInserted se déclenche immédiatement après l’insertion du test. Le seul paramètre pour l’événement TextInserting et TextInserted est un tableau d’objets InkDisp qui comprend un objet InkDisp pour chaque ligne de texte insérée à partir du panneau d’entrée. Remarque : Le panneau d’entrée est inactif pendant l’exécution des gestionnaires d’événements et peut sembler suspendu à l’utilisateur. Il est donc important de rendre ces gestionnaires d’événements légers et de s’assurer qu’ils s’exécutent rapidement. En outre, une application ne doit pas créer de gestionnaire pour cet événement, sauf si elle a une utilisation spécifique pour les informations, car il y a un coût de performances associé à cette opération. Le panneau d’entrée marshale uniquement les données manuscrites s’il existe une application demandant les données. Sinon, le panneau d’entrée peut ignorer cette opération coûteuse. Les paramètres des événements TextInserting et TextInserted sont en lecture seule, ce qui signifie qu’il n’est pas possible pour les applications de modifier le texte inséré avant son insertion dans l’application.
Les possibilités de ce que les applications peuvent faire avec cette nouvelle fonctionnalité sont larges et il ne pourrait pas être plus simple à utiliser. Autoriser la collecte du texte et de l’encre reconnus par le biais du panneau d’entrée par les applications est une autre façon d’améliorer l’histoire des développeurs du panneau d’entrée dans Windows Vista.
Conclusion
Dans l’ensemble, l’histoire de programmabilité du panneau d’entrée tablet PC est considérablement améliorée avec l’introduction de l’objet TextInputPanel dans Windows Vista. En utilisant l’objet TextInputPanel , les développeurs d’applications disposent d’un plus grand contrôle et d’informations sur l’état du panneau d’entrée dans la version précédente. Par conséquent, les développeurs d’applications qui créent de nouvelles applications Tablet PC ou mettent à jour des applications existantes sont fortement encouragés à utiliser l’objet TextInputPanel au lieu de l’objet PenInputPanel désormais déconseillé. En outre, la prise en charge de nouvelles fonctionnalités telles que le positionnement absolu du panneau d’entrée et de l’icône du panneau d’entrée, et la possibilité pour l’application de recevoir à la fois du texte de reconnaissance et de l’entrée manuscrite via le panneau d’entrée permettent de nouvelles fonctionnalités et scénarios d’application. L’inclusion de ces fonctionnalités et de plusieurs autres sont en réponse directe aux commentaires des développeurs et marquent les premières étapes vers l’intégration complète du panneau d’entrée avec les applications Tablet PC. En fin de compte, l’extension de la fonctionnalité d’application Tablet PC est une grande victoire pour les développeurs d’applications et la plateforme Tablet PC.