Расширение формы - Shape extension

X расширение формы непрямоугольного окна
Окно круглых часов.
Окно круглых часов.
Оригинальный автор (ы)Фонд X.Org
Стабильный выпуск
1.1 / 2006; 14 лет назад (2006)

в X Window System, то X расширение формы непрямоугольного окна позволяет окна придавать произвольную, непрямоугольную форму.

Два хорошо известных апплета, которые используют расширение формы: часы, которые представляют собой простые круглые аналоговые часы, и xeyes, который показывает два поглядывать в глаза которые следуют за курсор на экране, как если бы они это смотрели. Большинство систем X имеют один или другой (или оба) в своих стандартных установках. Кроме того, некоторые оконные менеджеры используйте расширение формы для рисования непрямоугольных значков.

Выполнение

Приложения могут создавать только прямоугольные окна, но затем могут изменять свою форму, чтобы она была произвольной частью исходного прямоугольника. Оставшаяся часть прямоугольника не только прозрачна (показывает, что находится под окном); скорее, это вообще не часть окна. Например, если окно имеет форму с отверстием посередине, не только отверстие показывает то, что находится под окном, но и щелчок в отверстии считается щелчком в том, что находится под окном.

Окно прямоугольной формы с дырой посередине.

Приложения создают окна как обычно (с указанием ширины и высоты), но затем могут изменить форму окна, чтобы оно было подмножеством исходной области. отправив X сервер отображения либо список прямоугольников, либо растровое изображение из глубина цвета один (черно-белое растровое изображение). Точнее, клиент может запросить прямоугольники или растровое изображение, которые должны быть установлены в качестве новой формы, но также должны быть объединены различными способами (например, пересечены или добавлены) со старой формой. Третий способ изменить форму окна - использовать текущую форму окна или его части.

Расширение позволяет определять форму двух отдельных областей: области отсечения и ограничивающих областей. Эти две области определены даже для окон, не использующих расширение формы: область отсечения - это область, которая может использоваться для рисования, ограничивающая область - это общая площадь, покрытая окном (то есть область отсечения плюс граница). Расширение формы позволяет определять две независимые формы для этих двух областей.

Как отсечение, так и ограничение связаны в расширении формы с двумя областями: прямоугольной областью по умолчанию и, возможно, непрямоугольной клиентской областью, определяемой и изменяемой клиентом, как указано выше. Эффективная область, которая представляет собой фактическую форму окна, является пересечением этих двух областей. Это пересечение выполняется каждый раз, когда изменяется любая область: например, если клиентские области содержат части, которые находятся за пределами области по умолчанию, но затем область по умолчанию увеличивается, эффективная область будет включать эти части.

Смотрите также

внешняя ссылка