2012-04-09 4 views
1

У меня есть несколько приложений, каждый из которых имеет графический интерфейс из другой технологии.Менеджер уровня X11

мне нужно сделать это -

1. Create n layers, one for each application, onto which applications draw. 
2. Have a layer manager which can perform operations on each of these layers 
    (like re sizing, changing opacity etc.) and then combine them to form a 
    single layer. 

Может кто-то пожалуйста, дать представление о том, как я должен продолжать это? Какие API-интерфейсы могут помочь мне в этом? Я не могу понять, что я должен искать в Google.

Язык реализации: C++

Платформа: Linux

Кроме того, я хотел бы знать, если эти требования могут быть реализованы в платформе независимым образом?

ответ

1

Если я правильно понял ваш вопрос, вам нужен какой-то простой оконный менеджер.

Если да, старайтесь избегать использования xlib и используйте QX11EmbedContainer. Достаточно просто встраивать окна и формировать слои, просто показывая/скрывая конкретные контейнеры.

Это должно быть независимое от платформы решение (должно работать на разных аппаратных средствах, но не на операционной системе, отличной от Linux).


Поскольку вы уже используете QX11EmbedContainer, и есть запрос на использование Xlib только (с C++), вам нужно использовать функцию XReparentWindowDisplay. Это описано в главе 9.1 стандарта xlib (вы можете посмотреть его вверх here). Это должно быть довольно просто, как использовать его.

+0

Я использую QX11EmbedContainer только до сих пор. Но у вас есть определенное требование сделать это только на C++. Будет ли довольно сложно реализовать с помощью XLib? –

+0

@AmitTomar Хорошо, отредактированный ответ. Вам нужно использовать функцию XReparentWindowDisplay (которая является функцией xlib) –

+0

Спасибо. Это было полезно. Просто последнее сомнение. Я могу изменить размер контейнера (X11 или QXEmbed). Но возможно ли изменить размер окна приложения после того, как я его встроил (не со стороны приложения, а со стороны моего оконного менеджера)? –

 Смежные вопросы

  • Нет связанных вопросов^_^