Extension de forme - Shape extension

Extension de forme de fenêtre non rectangulaire en X
La fenêtre ronde des heures.
La fenêtre ronde des heures.
Auteur (s) original (s) Fondation X.Org
Version stable
1.1 / 2006 ; Il y a 14 ans ( 2006 )

Dans le système X Window , l' extension de forme de fenêtre non rectangulaire X permet de donner aux fenêtres des formes arbitraires et non rectangulaires.

Deux applets bien connues qui utilisent l'extension de forme sont oclock , qui est une simple horloge analogique ronde, et xeyes , qui montre deux yeux écarquillés qui suivent le curseur sur l'écran comme s'ils le regardaient. La plupart des systèmes X ont l'un ou l'autre (ou les deux) dans leurs installations standard. De plus, certains gestionnaires de fenêtres utilisent l'extension de forme pour dessiner des icônes non rectangulaires.

la mise en oeuvre

Les applications ne peuvent créer que des fenêtres rectangulaires, mais peuvent ensuite changer leur forme pour devenir une partie arbitraire du rectangle d'origine. La zone restante du rectangle n'est pas seulement transparente (montre ce qui se trouve sous la fenêtre); il ne fait pas du tout partie de la fenêtre. Par exemple, si une fenêtre est formée avec un trou au milieu, non seulement le trou montre ce qui se trouve sous la fenêtre, mais un clic dans le trou est considéré comme un clic dans ce qui se trouve sous la fenêtre.

Une fenêtre ayant un contour rectangulaire mais un trou au milieu.

Les applications créent des fenêtres comme d'habitude (en spécifiant la largeur et la hauteur), mais peuvent ensuite changer la forme d'une fenêtre pour qu'elle devienne un sous-ensemble de la zone d'origine. en envoyant au serveur d'affichage X soit une liste de rectangles, soit un pixmap de profondeur de couleur un (un pixmap en noir et blanc). Plus précisément, un client peut demander que les rectangles ou le pixmap soient définis comme la nouvelle forme, mais aussi à être combinés de diverses manières (par exemple, intersectés ou ajoutés) avec l'ancienne forme. Une troisième façon de changer la forme d'une fenêtre consiste à utiliser la forme actuelle d'une fenêtre ou d'une partie de celle-ci.

L'extension permet de définir la forme de deux régions distinctes: le découpage et les régions de délimitation. Ces deux zones sont définies même pour les fenêtres n'utilisant pas l'extension de forme: la zone de découpage est la zone qui peut être utilisée pour le dessin, la zone de délimitation est la surface totale couverte par la fenêtre (c'est-à-dire la zone de découpage plus la bordure). L'extension de forme permet de définir deux formes indépendantes pour ces deux régions.

Le découpage et la délimitation sont associés, dans l'extension de forme, à deux zones: une région rectangulaire par défaut et une région cliente éventuellement non rectangulaire, définie et modifiée par le client comme spécifié ci-dessus. La région effective, qui est la forme réelle de la fenêtre, est l'intersection de ces deux zones. Cette intersection est effectuée à chaque fois qu'une région est modifiée: par exemple, si les régions client contiennent des parties qui sont en dehors de la région par défaut mais que la région par défaut est ensuite agrandie, la région effective inclura ces parties.

Voir également

Liens externes