Перейти к содержанию

Аналог PostMessage в Firefox


Рекомендуемые сообщения

Доброго времени суток.

Надеюсь, что угадал с рубрикой.

Пишу кроссплатформенную библиотеку, которая прикручивается к ff как компонент.

В основном потоке ff создает экземпляр объекта (компонент), который в свою очередь запускает в новом потоке свои расчеты. О процессе расчета и его результатах из созданного раннее потока должны приходить уведомления. (Таким образом достигается асинхронность выполнения и развязывается поток обработки сообщений для интерфейса ff /чтоб не "замирал"/ и расчетов).

В Windows все реализуется достаточно просто. При создании экземпляра в основном потоке, создается окно, указывается DefWndProc, задается сообщение WM_USER + n и пишется указанная функция обработки. Теперь создается поток, в нем запускаются расчеты, передается HWND созданного окна и как наступил момент оповещения - вызывается системный PostMessage на переданный указатель окна. Поскольку окно было создано в основном потоке, сообщения окну тоже будут обрабатываться в нем.

Сделано это было для того, чтоб ff не ругался, что к нему (к другим компонентам ff) обращаются НЕ из основного потока.

А теперь вопрос.

Как подобную штуку можно реализовать для linux.

Я пробовал примерно тоже самое. Создавал при помощи XLib окно, получал Widget окна через XtWindowToWidget, прикручивал ему обработчик XtAddEventHandler, посылал окну событие (например: keypress code=1) XSendMessage... А оно не ловится. Что делать ума не приложу. Обыскал все что можно в сети. Перерыл кучу man`ов.

Может вообще идеология построения (передачи оповещений) должна быть другой?

Может использовать какую-либо обертку для XLib?

Буду очень благодарен за любые ссылки по теме, за идеи, до которых я не додумался.

С уважением, DV.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...