En el sistema de ventanas X , la extensión de forma de ventana no rectangular X permite que las ventanas tengan formas arbitrarias y no rectangulares.
![]() La ventana redonda en punto. | |
Autor (es) original (es) | Fundación X.Org |
---|---|
Lanzamiento estable | 1.1 / 2006 |
Dos conocidos applets que usan la extensión de forma son oclock , que es un simple reloj analógico redondo, y xeyes , que muestra dos ojos saltones que siguen el cursor en la pantalla como si lo estuvieran viendo. La mayoría de los sistemas X tienen uno u otro (o ambos) en sus instalaciones estándar. Además, algunos administradores de ventanas utilizan la extensión de forma para dibujar iconos no rectangulares.
Implementación
Las aplicaciones solo pueden crear ventanas rectangulares, pero luego pueden cambiar su forma para que sea una parte arbitraria del rectángulo original. El área restante del rectángulo no solo es transparente (muestra lo que está debajo de la ventana); más bien, no es parte de la ventana en absoluto. Por ejemplo, si una ventana tiene la forma de un agujero en el medio, no solo el agujero muestra lo que está debajo de la ventana, sino que un clic en el agujero se considera un clic en lo que está debajo de la ventana.
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/4/43/Xhole.png/350px-Xhole.png)
Las aplicaciones crean ventanas como de costumbre (especificando ancho y alto), pero luego pueden cambiar la forma de una ventana para que sea un subconjunto del área original. enviando al servidor de visualización X una lista de rectángulos o un mapa de píxeles de profundidad de color uno (un mapa de píxeles en blanco y negro). Más precisamente, un cliente puede solicitar que los rectángulos o el mapa de píxeles se establezcan como la nueva forma, pero también que se combinen de varias formas (p. Ej., Intersectados o agregados) con la forma anterior. Una tercera forma de cambiar la forma de una ventana es utilizando la forma actual de una ventana o una parte de ella.
La extensión permite definir la forma de dos regiones separadas: las regiones de recorte y de delimitación. Estas dos áreas se definen incluso para ventanas que no usan la extensión de forma: la región de recorte es el área que se puede usar para dibujar, la región delimitadora es el área total cubierta por la ventana (es decir, la región de recorte más el borde). La extensión de forma permite definir dos formas independientes para estas dos regiones.
Tanto el recorte como el delimitación están asociados, en la extensión de forma, a dos áreas: una región rectangular predeterminada y una región cliente posiblemente no rectangular, definida y modificada por el cliente como se especificó anteriormente. La región efectiva, que es la forma real de la ventana, es la intersección de estas dos áreas. Esta intersección se realiza cada vez que se cambia cualquiera de las regiones: por ejemplo, si las regiones del cliente contienen partes que están fuera de la región predeterminada, pero la región predeterminada se amplía, la región efectiva incluirá estas partes.