всем доброго! типичное оконное приложение на WinApi выглядит следующим образом:
int main()
{
    ...
    while ( result = ::GetMessage( &msg, NULL, 0, 0 ) )
    {
	if ( result == -1 )
		break;
        ...
        ::TranslateMessage( &msg );
	::DispatchMessage( &msg );
    }
    ...
}
каждое созданное окно обрабатывает свои сообщения в собственной оконное процедуре. в связи с этим реализованы такие объекты как EventLoop и Widget, что приводит к следующей структуре программы
int main()
{
    EventLoop loop;
    loop.exec();
}
т.е. запуск и основной жизненный цикл приложения можно пихнуть в реализацию виртуальной функции exec() у наследника EventLoop. так же можно реализовать и любой другой поток. вопрос в том, как такую архитектуру можно перенести на *nix с использованием Xlib?

