Brevet FR2955186A1 — publié le 20110715

La présente invention concerne un dispositif de commande d'un système informatique, préférentiellement de type « micro-ordinateur-personnel », au moyen de dispositifs de pointage, notamment de type souris d'ordinateur. Les dispositifs de commande d'un système informatique consistant à déplacer au moyen d'une « souris », « boule » ou autre dispositif de pointage, un pointeur afin de désigner sur l'écran du système un objet, icône ou élément d'un menu, représentatif d'une fonction à exécuter, sont bien connus. Ces dispositifs de pointage de base, largement connus dans le domaine de la micro-informatique, ne concernent que l'utilisation individuelle d'un système informatique. Ils ne sont pas adaptés à un travail collaboratif utilisant un seul et même système informatique. Lorsque l'on souhaite interagir à plusieurs sur un même système, on est obligé d'utiliser à tour de rôle un seul et même dispositif de pointage. Certains systèmes peuvent se voir connecter plusieurs dispositifs de pointage. Mais n'étant prévus que pour une utilisation individuelle, ces dispositifs de pointage vont tous permettre le contrôle d'un seul et même pointeur sur l'écran. Leur utilisation nécessite donc une discipline pour qu'à un instant donné un seul de ces dispositifs soit utilisé. L'utilisation simultanée de deux dispositifs de pointage résulte généralement dans une somme vectorielle des vecteurs de déplacement induit par chaque pointeur. L'invention vise à résoudre ce problème du travail collaboratif à l'aide d'une pluralité de dispositifs de pointage par un dispositif de commande d'un système informatique comprenant une pluralité de dispositifs de pointage. Chaque dispositif est associé à un pointeur sur l'écran dont il permet le contrôle. Il y a donc autant de pointeurs que de dispositifs de pointage. Ces différents pointeurs permettent une utilisation collaborative du système informatique en utilisant une ou plusieurs applications simultanément. Elle est basée sur un module logiciel gérant une fenêtre transparente occupant l'intégralité de l'écran. C'est ce module qui trace et gère les différents pointeurs. Les évènements liés aux différents dispositifs de pointage lui sont naturellement adressés par le gestionnaire de fenêtres. Il les redistribue au système ou aux applications en fonction de la localisation du pointeur associé. L'invention concerne un dispositif de commande d'un système d'information comportant une pluralité de dispositifs de pointage qui lui sont connectés, ledit système d'information comportant un écran permettant l'affichage d'une interface graphique pilotable à l'aide desdits dispositifs de pointage, ladite interface comportant une hiérarchie d'éléments manipulables affichés à l'écran, caractérisé en ce qu'il comporte une application de gestion d'une pluralité de pointeurs comportant : - des moyens d'associer chacun desdits pointeurs à un ou plusieurs dispositifs de pointage ; - des moyens de capter les événements générés par lesdits dispositifs de pointage ; - des moyens pour mettre à jour le pointeur associé au dispositif de pointage ayant généré l'événement ; - des moyens pour transmettre l'événement reçu à l'élément manipulable concerné en fonction de la localisation dudit pointeur associé. Selon un mode particulier de réalisation de l'invention, les moyens de capter les événements générés par lesdits dispositifs de pointage consistent en une fenêtre transparente. Selon un mode particulier de réalisation de l'invention, ladite fenêtre transparente recouvre tout l'écran. Selon un mode particulier de réalisation de l'invention, l'application de gestion d'une pluralité de pointeurs gère exactement un pointeur par dispositif de pointage connecté au système. Selon un mode particulier de réalisation de l'invention, le dispositif comporte en 20 outre des moyens de rendre invisible un pointeur unique géré par le système d'exploitation du système d'information. L'invention concerne également un procédé de commande d'un système d'information comportant une pluralité de dispositifs de pointage qui lui sont connectés, ledit système d'information comportant un écran permettant l'affichage 25 d'une interface graphique pilotable à l'aide desdits dispositifs de pointage, ladite interface comportant une hiérarchie d'éléments manipulables affichés à l'écran, caractérisé en ce qu'il comporte par une application de gestion d'une pluralité de pointeurs les étapes suivantes : - une étape de captation d'un événement généré par un dispositif de pointage ; 30 - une étape d'identification du pointeur associé audit événement ; - une étape de mise à jour du pointeur associé au dispositif de pointage ayant généré l'événement ; - une étape de transmission de l'événement reçu à l'élément manipulable concerné en fonction de la localisation dudit pointeur associé. Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels : La Fig. 1 illustre les éléments graphiques typiques de l'interface graphique d'un système informatique ; La Fig. 2 illustre la hiérarchie des objets manipulables de l'interface graphique selon l'art antérieur ; La Fig. 3 illustre la hiérarchie des objets manipulables dans un exemple de réalisation de l'invention ; La Fig. 4 illustre l'algorithme de gestion d'un événement selon l'exemple de réalisation de l'invention. La Fig. 1 illustre les éléments graphiques typiques de l'interface graphique d'un système informatique. Cette interface graphique apparaît sur un écran et présente une surface affichable 1.1. Cette surface représente typiquement dans les systèmes actuels, tels que MacOS X (marque déposée), Windows (marque déposée) ou Linux (marque déposée), une représentation abstraite d'un bureau physique, un bureau virtuel. Sur ce bureau est représenté un pointeur 1.9 que l'utilisateur peut déplacer à sa guise à l'aide d'un périphérique de pointage. On peut citer comme exemple de périphérique de pointage connu, les « souris » d'ordinateur, les pavés tactiles (touchpad en anglais) courants sur les ordinateurs portables, les boules (trackball en anglais) ou encore les tablettes graphiques, la liste ne saurait être exhaustive. Ces périphériques permettent d'interagir avec les éléments du bureau virtuel. L'interaction typique est faite par déplacement du pointeur au-dessus du dessin représentant un élément d'interface et appui sur une touche du périphérique de pointage lorsque le pointeur est situé au-dessus de l'élément, c'est la fonction de sélection de l'objet. La Fig. 1 illustre certains de ces éléments. On peut voir une barre de menu 1.2 qui offre des menus 1.3 qui permettent un accès à un ensemble de fonctions du système ou d'une application active. Des icônes 1.10, c'est-à-dire des dessins représentant des objets, ici un disque dur, sont typiquement présents sur le bureau pour permettre une interaction avec l'objet physique qu'elles représentent. Les cadres 1.4 et 1.5 représentent des fenêtres. Ces fenêtres constituent un élément de base des systèmes graphiques actuels. Elles servent à représenter soit une application donnée, soit un document. À un instant donné, le système gère le fonctionnement d'applications lancées par l'utilisateur. Typiquement, chaque application gère l'affichage d'une ou plusieurs fenêtres donnant accès aux fonctions de l'application ou aux documents gérés par celle-ci. Typiquement l'une de ces fenêtres est dite active, les autres étant passives. La fenêtre active est la fenêtre avec laquelle l'utilisateur est en train d'interagir. Elle définit l'application dont elle dépend comme étant l'application active. L'utilisateur peut à tout moment changer la fenêtre active en déplaçant le pointeur sur une fenêtre passive et en la sélectionnant. Ces éléments graphiques forment une hiérarchie arborescente dont l'ébauche est donnée Fig. 2. Au sommet de cette hiérarchie, on trouve le gestionnaire de fenêtres 2.1. Dépendant de ce gestionnaire de fenêtres, on trouve tout d'abord le bureau 2.2, puis les différentes fenêtres du système 2.5 et 2.6. Du bureau dépendent la barre des menus 2.3 et les icônes de bureau 2.4. Chaque fenêtre gère ses propres contrôles comme l'ascenseur vertical 2.7 qui possède lui-même un pointeur 2.8. Cette hiérarchie est dépendante de la localisation à l'écran des différents éléments. On parle d'éléments englobants comme une fenêtre ou d'éléments inclus comme un contrôle au sein d'une fenêtre. Pour pouvoir interagir avec le pointeur, l'élément doit être au moins en partie visible sur l'écran. Un élément complètement caché par un ou des éléments venant le recouvrir ne peut pas interagir directement avec le pointeur. Il n'en fait pas moins partie de la hiérarchie des éléments du système. Lorsque l'on manipule le dispositif de pointage, celui-ci envoie au système d'information un événement. Cet événement est reçu par le gestionnaire de fenêtres pour traitement. Typiquement, un événement généré par un dispositif de pointage comprend une structure de données relatives à cet événement. On trouve dans cette structure de données généralement au moins les informations suivantes : un identificateur de périphérique, des valeurs de déplacement, un état des différents boutons. L'identificateur de périphérique identifie de manière unique dans le système le périphérique à l'origine de l'événement. Les valeurs de déplacement indiquent le mouvement imprimé au dispositif de pointage, typiquement selon l'axe horizontal et vertical. Dans un contexte de travail collaboratif utilisant un système d'information, il peut être avantageux que plusieurs utilisateurs puissent manipuler le système d'information de la manière la plus conviviale. Pour ce faire, l'invention propose de permettre la gestion d'une pluralité de pointeurs sur l'écran. Chaque pointeur est associé à un dispositif de pointage donné. Chaque pointeur peut naviguer sur l'intégralité de l'écran et manipuler le système et/ou les applications du système d'information. De cette façon, plusieurs utilisateurs peuvent aisément manipuler un même système d'information disposant d'un même écran, chacun interagissant avec le système à l'aide de son dispositif de pointage et du pointeur associé à l'écran. Il eut été techniquement possible de modifier le gestionnaire de fenêtres pour y ajouter la gestion de multiples pointeurs. Toutefois, ce gestionnaire est une partie intégrante du système d'exploitation et il ne peut donc pas être modifié sans l'accord des sociétés développant ces systèmes. L'invention propose une approche où la gestion des multiples pointeurs est opérée par une application dédiée. Cette application dédiée ne gère qu'une fenêtre, entièrement transparente. Cette fenêtre étant transparente, elle ne gêne pas la visibilité du système et des fenêtres des autres applications tournant sur celui-ci. Cette fenêtre définit une zone d'utilisation des différents pointeurs gérés par l'application. L'évolution de ces pointeurs étant limitée à cette fenêtre. Avantageusement, la fenêtre occupe tout l'écran pour permettre une utilisation totale du système. La hiérarchie des objets selon un exemple de réalisation de l'invention est représentée Fig. 3. Cette hiérarchie reprend celle de la Fig. 2 en y ajoutant la fenêtre transparente 3.9 de l'application de gestion multipointeurs. Comme nous l'avons vu, la zone recouverte par cette fenêtre transparente définit l'espace de l'écran où les multiples pointeurs sont actifs. Selon l'exemple de réalisation, cet espace recouvre l'intégralité de l'écran. Tous les autres objets de la hiérarchie, tels que le bureau, la fenêtre 1 ou la fenêtre 2 sont donc cachés au sens de leur interaction avec les pointeurs, car recouverts par la fenêtre transparente. Bien qu'ils soient visibles pour les utilisateurs, car justement la fenêtre transparente est transparente. De ce fait, tout événement résultant de la manipulation d'un dispositif de pointage connecté au système est automatiquement dirigé par le gestionnaire de fenêtres vers la fenêtre transparente qui peut le gérer. Cette fenêtre est programmée pour rester toujours au premier plan pour éviter qu'une fenêtre d'application puisse venir la recouvrir et puisse de ce fait recevoir directement un événement d'un dispositif de pointage du gestionnaire de fenêtres. Le gestionnaire de fenêtres gère l'empilement des fenêtres qui se recouvrent en attribuant à chaque fenêtre une coordonnée « Z » qui permet de connaître sa position selon un axe perpendiculaire aux axes « X » et « Y » de l'écran. Cette coordonnée de profondeur permet de contrôler la superposition des fenêtres, les fenêtres étant dessinées en fonction de ce paramètre. Le gestionnaire de fenêtres permet d'accéder et de modifier ce paramètre de profondeur pour chaque fenêtre, ainsi que de forcer pour une fenêtre une position au sommet de la hiérarchie. On peut s'assurer ainsi qu'une fenêtre est au-dessus de toutes les autres. Lorsqu'une fenêtre est créée, par exemple au lancement d'une application, celle-ci est généralement créée au sommet de la hiérarchie. De même, lorsque l'on agit sur une fenêtre et qu'on active une fenêtre initialement inactive, elle vient se positionner au sommet de la hiérarchie. Ces événements, ainsi que toute modification de la hiérarchie des fenêtres déclenche des événements, ou notifications, envoyés par le gestionnaire de fenêtres. Ces événements peuvent être utilisés par l'application de gestion multipointeurs pour restaurer la position au sommet de la hiérarchie de la fenêtre transparente. On s'assure ainsi que la fenêtre transparente reste tout le temps au sommet de cette hiérarchie pour lui permettre de recevoir tous les événements générés par les dispositifs de pointage. Dans le cas où le gestionnaire de fenêtres ne notifie pas des évolutions de la surface d'affichage, un mécanisme de surveillance périodique (polling en anglais) permet de contrôler la hiérarchie de profondeur des fenêtres gérées par le système. Pour cela, l'application de gestion multipointeurs utilise les fonctions du gestionnaire de fenêtres qui permettent de parcourir la hiérarchie des objets visuels affichés sur l'écran et d'accéder à leurs paramètres de profondeur. Cette surveillance est réalisée au moyen de fonctions de compteurs de temps (timer en anglais) du gestionnaire de fenêtres. Ceci permet d'interroger le gestionnaire de fenêtres sans ambiguïté sur les caractéristiques des fenêtres. En exploitant les fonctions de rappel du compteur de temps, l'application de gestion multipointeurs est ainsi assurée que toutes les opérations effectuées sur les autres applications au moyen des dispositifs de pointage sont dans un état stable, typiquement terminées. Ce compteur de temps correspond à la granularité d'envoi des signaux générés par les dispositifs de pointage. Ainsi, le pilotage des autres fenêtres par l'application de gestion multipointeurs est garanti. Les autres applications pilotées s'exécutent correctement selon leur fonctionnement habituel. Dans le fonctionnement normal du système, le gestionnaire de fenêtres gère le pointeur unique appelé pointeur système. Lorsqu'un dispositif de pointage génère un événement, celui-ci est traité par le gestionnaire de fenêtres qui met à jour le dessin du pointeur à l'écran, en particulier sa localisation, avant de passer l'événement à l'objet situé sous le nouvel emplacement du pointeur. La gestion de multiples pointeurs se fait, dans l'exemple de réalisation de l'invention, selon l'algorithme de la Fig. 4. L'utilisation d'un quelconque des dispositifs de pointage par un utilisateur provoque la réception, étape 4.1, d'un événement associé par le gestionnaire de fenêtres. Celui-ci, de manière classique, identifie que l'objet actif sous le pointeur unique géré par lui-même est la fenêtre transparente et lui passe l'événement, étape 4.2. Cette étape est une étape de captation de l'événement par l'application de gestion multipointeurs à l'aide de la fenêtre transparente maintenue en haut de la pile des objets affichés. Il est a noter que l'on aura avantageusement rendu le pointeur unique géré par le système invisible pour ne pas perturber l'utilisation du système. Ce pointeur unique n'étant plus utile. L'application de gestion multipointeurs gère une pluralité de pointeurs à l'écran. Chacun de ces pointeurs est associé à un dispositif de pointage connecté au système. Avantageusement, l'application peut être configurée pour gérer un nombre donné de pointeurs pouvant être différent du nombre de dispositifs de pointage effectivement connectés. Dans ce cas, un pointeur peut être associé à un ou plusieurs dispositifs de pointage. Un dispositif de pointage est associé à zéro ou un pointeur. Lorsque l'application gérant les multiples pointeurs reçoit un événement en provenance d'un des dispositifs de pointage connectés au système, elle analyse cet événement et lit l'identifiant du dispositif de pointage. À l'aide de cet identifiant, elle identifie le pointeur associé, c'est l'étape 4.3. Si aucun pointeur n'est associé à ce dispositif, elle ne fait rien. Elle met à jour l'affichage du pointeur associé à l'écran en fonction des données de déplacement contenues dans l'événement, étape 4.4. En fonction de la localisation du pointeur associé, elle identifie l'élément de la hiérarchie des objets localisés sous le pointeur et sous la fenêtre transparente, étape 4.5. Elle transmet alors l'événement à cet objet comme l'aurait fait le gestionnaire de fenêtres si l'application n'avait pas été présente, étape 4.6. L'objet en question peut être le bureau, ou l'une des fenêtres de l'application. De cette façon, grâce à l'application de gestion multipointeurs décrite, on peut gérer de manière transparente une pluralité de pointeurs. Cette pluralité de pointeurs permet une utilisation du système par plusieurs utilisateurs utilisant chacun son propre dispositif de pointage connecté au système. Chaque dispositif de pointage permet la manipulation indépendante d'un pointeur donné à l'écran. Cette solution est compatible avec les systèmes d'exploitation existants et ne nécessite pas de modification de ces systèmes. Avantageusement, les différents pointeurs gérés par l'application sont différents 5 en forme et/ou en couleur pour permettre une identification aisée des pointeurs par les utilisateurs. REVENDICATIONS1/ Dispositif de commande d'un système d'information comportant une pluralité de dispositifs de pointage qui lui sont connectés, ledit système d'information comportant un écran permettant l'affichage d'une interface graphique pilotable à l'aide desdits dispositifs de pointage, ladite interface comportant une hiérarchie d'éléments manipulables affichés à l'écran, caractérisé en ce qu'il comporte une application de gestion d'une pluralité de pointeurs comportant : - des moyens d'associer chacun desdits pointeurs à un ou plusieurs dispositifs de pointage ; - des moyens de capter les événements générés par lesdits dispositifs de pointage ; - des moyens pour mettre à jour le pointeur associé au dispositif de pointage ayant généré l'événement ; - des moyens pour transmettre l'événement reçu à l'élément manipulable concerné en fonction de la localisation dudit pointeur associé. 2/ Dispositif de commande selon la revendication 1, caractérisé en ce que les moyens de capter les événements générés par lesdits dispositifs de pointage consistent 20 en une fenêtre transparente. 3/ Dispositif de commande selon la revendication 2, caractérisé en ce que ladite fenêtre transparente recouvre tout l'écran. 25 4/ Dispositif de commande selon l'une des revendications 1 à 3, caractérisé en ce que l'application de gestion d'une pluralité de pointeurs gère exactement un pointeur par dispositif de pointage connecté au système. 5/ Dispositif de commande selon l'une des revendications 1 à 4, caractérisé en 30 ce qu'il comporte en outre des moyens de rendre invisible un pointeur unique géré par le système d'exploitation du système d'information. 6/ Procédé de commande d'un système d'information comportant une pluralité de dispositifs de pointage qui lui sont connectés, ledit système d'informationcomportant un écran permettant l'affichage d'une interface graphique pilotable à l'aide desdits dispositifs de pointage, ladite interface comportant une hiérarchie d'éléments manipulables affichés à l'écran, caractérisé en ce qu'il comporte par une application de gestion d'une pluralité de pointeurs les étapes suivantes : - une étape de captation d'un événement généré par un dispositif de pointage ; - une étape d'identification du pointeur associé audit événement ; - une étape de mise à jour du pointeur associé au dispositif de pointage ayant généré l'événement ; - une étape de transmission de l'événement reçu à l'élément manipulable concerné en fonction de la localisation dudit pointeur associé.