LINUX.ORG.RU

перенос в WinApi на Xlib


0

1

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

Никто не делает виртуальные ивентлупы для реализации жизненного приложения.

Ты смотришь на проблему не с той стороны

anonymous
()
Ответ на: комментарий от anonymous

жизненного приложения.

жизненного цикла приложения.

anonymous
()
Ответ на: комментарий от PolarFox

конечно пишут) если нельзя юзать ничего кроме

insensitive
() автор топика
Ответ на: комментарий от anonymous

приблизительно это выглядит так

 while ( XNextEvent() ) { ... } 

а там уж раздавать события по окнам а как получать события не для окон? и сработает ли это в других потоках? окна эти нужно где-то хранить?

insensitive
() автор топика
Ответ на: комментарий от Harald

щтобы избежать коллизии намеспейсов (ну, ему так кажется)

anonymous
()
Ответ на: комментарий от anonymous

WM — костыль для работы в x11-only среде, вполне логично, что он будет использовать нижний непортабельный уровень.

PolarFox ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.