всем доброго! типичное оконное приложение на 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?