anonymous
написал 6 марта 2004 года в 08:34 (1249 просмотров)
Ведет себя
неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.
А вот и не угадали! Не вопрос это, а опрос — интересно кому-нибудь, как создать окно произвольной формы в чистом Xlib’е? Я несколько дней рылся в Интернете и доках, НИГДЕ ни…чего по этому поводу не нашел, кроме замшелых спецификаций.
Но достигнув определенного уровня красноглазости, сегодня могу показать вам программу на 130 строк с комментариями, которая берет аргументом bitmap файл и рисует окошко по маске этого битмапа, даже если оно состоит из нескольких частей. Нормальное окошко, откликается на нормальные event’ы. Рисовать в нем можно, писать…
Так вот, если есть интерес, могу этот фай куды-нить запостать, поскольку добру пропадать негоже…
Good Luck,
UT
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
а закинуть в y-devel нельзя? И копию на мой адресс плз.
А при чем тут y-devel? Я и не подписан на него. Впрочем, твоего адреса я тоже не знаю, поскольку гостям профиля не доступны… Дискриминация, панимашь… :-)
Если хочешь, возьми его вот тут:
http://uncleteddy.front.ru/nonrectwindow.cc
а это — .xbm файл для тестирования (220К — большой!).
http://uncleteddy.front.ru/twothings.xbm
Good Luck,
UT
UT, расскажи на пальцах про принцип и дай плиз линки на эти спецификации. А там дальше сам разберусь.
Хочу додумацца как сделать констрлсы (по типу кнопочек и пр.) тоже произвольной формы. И потом напишем прогу без единого угла (я знаю где-то в германии дом такой есть, теперь будет и прога :) )
Это «стандартное» иксовое расширение SHAPE, про него написано в доках по Xlib’у в /usr/X11R6/lib/X11/doc/html в файлах начинающихся с XShape. А еще, в http://x.holovko.ru/Xlib/contents.html#Part2 и других местах.
Основная идея — разбить маску на пересекающиеся прямоугольные окна, и выбрать либо их пересечения, либо обЪединения. Но результат выглядит неплохо, если не злобствовать. Я сделал маску из нормальной фотографии, она рендерится медленно. А простые формы — рисуются со свистом.
Кстати, компилить ту прогу надо так
g++ nonrectwindow.cc -g -I /usr/X11R6/include -L /usr/X11R6/lib -lX11 -lXext -lm -o nonrectwindow
Я уже на сайте исправил.
Good Luck,
UT