Je sais que l'affichage utilisant des normes telles que VGA peut être considéré comme une matrice de pixels au moins pour le système d'exploitation. Mais les écrans modernes incluent des contrôles d’interface utilisateur complexes tels que des boutons et des zones de texte.
Je ne sais pas si le système d'exploitation fait tout le travail ou est-ce quelque chose fourni par la technologie de la souris out of box.
La question qui se pose maintenant est la suivante: comment le système d’exploitation garde-t-il une trace des positions de ces contrôles afin de contrôler par programme.
display
mouse
operating-systems
Cholthi Paul Ttiopic
la source
la source
widget rendering
. Les widgets sont liés à leur logiciel par des événements, par exemple, un clic. Comment le positionnement des widgets est-il mis en œuvre? Comment le système d'exploitation détermine-t-il le widget devant recevoir l'événement à partir de la souris?Réponses:
Les coordonnées des boutons, les dimensions des boutons et les coordonnées du pointeur de la souris sont stockées dans la mémoire. Lorsque l'utilisateur appuie sur un bouton de la souris, le système d'exploitation compare la position du pointeur de la souris avec les positions des contrôles de l'interface utilisateur et détermine l'action appropriée.
Les normes d'affichage et les dessins ne sont pas liés, il s'agit d'une opération purement mathématique.
la source
Vous avez les coordonnées de l'écran et "Windows" (Rectangles). Ainsi, vous pouvez toujours savoir quel objet "possède" le pixel auquel se trouve votre pointeur. Il suffit de le parcourir récursivement à travers les structures à vérifier.
Windows peut être hiérarchique et en cascade. Par exemple. Les éléments de l'interface graphique ne sont que des sous-fenêtres dans ce contexte. Le système d'exploitation démarrera à partir d'une racine (qui contient une liste de toutes les fenêtres "de niveau racine") et pourra donc faire correspondre la position de la souris à tous les rectangles. Ensuite, il vérifie si le rectangle est au premier plan / a le focus, etc. Puis répète les mêmes vérifications avec les "Windows" (éléments graphiques) situés dans cette fenêtre. Finalement, il appelle simplement la fonction de gestionnaire d'événements associée à l'élément d'interface graphique de niveau le plus bas.
la source